V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
zjyd
V2EX  ›  全球工单系统

网易云音乐歌单里面的歌又神秘消失

  •  
  •   zjyd · 2017-07-27 21:26:59 +08:00 · 8300 次点击
    这是一个创建于 2458 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每次听到喜欢的歌都会点下❤,放在默认的“我喜欢的音乐”歌单里面,就这么慢慢了攒了一百多首。5 月 5 号的时候突然就消失的剩下几首了,联系云音乐小秘书几天没人回,检查登录记录没什么问题,没辙,就凭回忆再凑上别的歌,凑凑也又几十首,不过英文歌多半没找回。然鹅,就在一小时前,打开网易云音乐,又 TM 剩下几首,我这也是心累,真有写了两年日记,趁我我不在偷偷的撕了,然后给我一摞新本子的感觉。 http://i4.eiimg.com/1949/78cac8d7ecec9fc5.jpg

    28 条回复    2017-08-13 10:21:26 +08:00
    wisej
        1
    wisej  
       2017-07-27 21:51:57 +08:00 via Android   ❤️ 1
    可是一加?๑乛◡乛๑
    aalska
        2
    aalska  
       2017-07-27 23:09:21 +08:00   ❤️ 1
    所以这就是我用 QQ 音乐的理由
    CEBBCAT
        3
    CEBBCAT  
       2017-07-27 23:28:17 +08:00 via Android
    网易云音乐 - 左侧会员中心 - 拉到底端 - 帮助于反馈 - 联系云音乐客服
    CEBBCAT
        4
    CEBBCAT  
       2017-07-27 23:29:40 +08:00 via Android   ❤️ 1
    这是上一次客服提示我的,也提示给你好了:
    您好,您好 ,歌单恢复需要您提供以下内容:1.所删歌单的名字; 2.所需恢复歌单中歌曲的大概数量; 3.误删歌单的时间段。 温馨提醒:已经下架的歌曲将不在可恢复列表内。
    我的答复是:
    [歌单恢复请求]
    1. 名称:“我喜欢的音乐”
    2. 650 首左右
    3. 删除时间应为 7 月 1 日下午五点至 7 月 3 日之间,删除后未进行增删操作
    weakish
        5
    weakish  
       2017-07-28 00:00:19 +08:00   ❤️ 2
    > 我这也是心累,真有写了两年日记,趁我我不在偷偷的撕了,然后给我一摞新本子的感觉。

    自己应该抄一份。
    网易云并没有 SLA,不应该这么相信它。
    另外,好像网易云音乐的歌单最多只能保存 1000 首( web 界面)到 10000 首(客户端),
    不知道现在改了没有。
    也就是说这日记本可能还有页数限制。

    最简单的,把喜欢的音乐都下载下来,这也顺便解决了版权问题之类音乐下架的问题。

    或者,如果本地硬盘空间不足,可以记录歌曲的元信息。
    网易云的 api 虽然不开放,不过 GitHub 上有很多库。
    基于这些库写脚本很方便。

    如果你的机子上有 python 3.6 的话,可以试试这个脚本:

    https://github.com/weakish/fm163

    基本用法是:

    python fm163.py -D http://我喜欢的音乐的网址

    然后通过

    python fm163.py -j

    导出为 json 格式

    文件在 `~/.fm163`: songs_id.json 是音乐的 id,meta.json 则包括歌名、专辑名、作者等等。

    以后喜欢了新音乐,定期跑上面两个命令更新。
    我是把`~/.fm163`用 git 管理,同时备份到远程,防止万一脚本改乱了把历史都清了。

    当初写这个脚本是为了下载音乐,
    因为下载网易云音乐的脚本不少,但没找到保存完整的元信息的,所以自己写了个。
    现在网易云的 api 变了,无法下载了,但是保留元信息的功能还可以用。
    zjyd
        6
    zjyd  
    OP
       2017-07-28 08:10:06 +08:00 via Android
    @wisej 一加 3😁
    zjyd
        7
    zjyd  
    OP
       2017-07-28 08:14:53 +08:00 via Android
    @CEBBCAT 谢谢,以前在知乎看到有问题联系网易云小秘书,也就联系小秘书不过没人回,没想到要真正的是小 云客服 😓
    zjyd
        8
    zjyd  
    OP
       2017-07-28 08:24:34 +08:00 via Android
    @weakish 非常感谢!因为自己常听的歌不是很多,流量也够用,且对大厂充满信任(使用合规合法),所以没有考虑那么到,终归看来还是自己的硬盘靠谱啊。
    gam2046
        9
    gam2046  
       2017-07-28 09:22:40 +08:00
    @weakish 在 dockers 里跑了一下没成功 python:3.6alpine-3.6。

    python fm163.py -D playlist_url

    Error encountered to access file /root/.fm163/history
    errno 2: No such file or directory.
    Traceback (most recent call last):
    File "fm163.py", line 338, in main
    download(arguments.playlist_id, arguments.D, arguments.H)
    File "fm163.py", line 198, in download
    history: SortedSet = load_history()
    File "fm163.py", line 132, in load_history
    with history_db().open(mode="rb") as history_file:
    File "/usr/local/lib/python3.6/pathlib.py", line 1161, in open
    opener=self._opener)
    File "/usr/local/lib/python3.6/pathlib.py", line 1015, in _opener
    return self._accessor.open(self, flags, mode)
    File "/usr/local/lib/python3.6/pathlib.py", line 387, in wrapped
    return strfunc(str(pathobj), *args)
    FileNotFoundError: [Errno 2] No such file or directory: '/root/.fm163/history'

    然后手动创建目录 mkdir /root/.fm163.history 再次运行 提示

    rror encountered to access file /root/.fm163/history
    errno 21: Is a directory.
    Traceback (most recent call last):
    File "fm163.py", line 338, in main
    download(arguments.playlist_id, arguments.D, arguments.H)
    File "fm163.py", line 198, in download
    history: SortedSet = load_history()
    File "fm163.py", line 132, in load_history
    with history_db().open(mode="rb") as history_file:
    File "/usr/local/lib/python3.6/pathlib.py", line 1161, in open
    opener=self._opener)
    IsADirectoryError: [Errno 21] Is a directory: '/root/.fm163/history'

    于是乎删除 history 目录,但是保留 /root/.fm163/ 再次运行
    FileNotFoundError: [Errno 2] No such file or directory: '/root/.fm163/history'

    所以 是我的姿势不对么
    natforum
        10
    natforum  
       2017-07-28 09:49:40 +08:00
    那是我给你取消的,我看你不怎么喜欢听
    zjyd
        11
    zjyd  
    OP
       2017-07-28 09:56:45 +08:00
    @natforum #10 你再这样我只能自己唱歌给自己听了
    annielong
        12
    annielong  
       2017-07-28 10:39:31 +08:00
    早就证明了云服务都不怎么可靠,本地的才可靠
    denonw
        13
    denonw  
       2017-07-28 11:23:42 +08:00
    顺路安利下自己写的一个脚本, 同步网易云音乐歌单到 qq 音乐 https://github.com/Denon/syncPlaylist
    CEBBCAT
        14
    CEBBCAT  
       2017-07-28 12:06:37 +08:00   ❤️ 1
    @zjyd
    楼主你用贴图库当正文图床过一段时间图片时会被删除滴……我帮你传到 Imgur 了:

    @weakish #5
    之前还没想过备份这件事儿,经你一提醒倒是觉得有必要了,况且还有这么方便的脚本;可有一个小问题:Json 格式的该要怎么导回去?查了一圈没找到 Json 到.kwl 或者.kgl 的转换器(这二者是网易云音乐支持导入的歌单的格式)
    @denonw #13
    真巧!我刚找到一个 QQ 音乐到网易云音乐的转换网站: http://144.48.7.239:5000/convert.html ( https://github.com/comwrg/xMusicWeb
    CEBBCAT
        15
    CEBBCAT  
       2017-07-28 12:08:51 +08:00
    @CEBBCAT #14
    忘了说,我十有八九是被降权了,楼上各位收不到我的恢复提醒也不要担心,但愿你们能收到我文中的信息吧

    我能怎么办?我也很无奈啊...
    Antidictator
        16
    Antidictator  
       2017-07-28 12:15:22 +08:00   ❤️ 2
    @zjyd @weakish @denonw 楼上有人找你


    @CEBBCAT 不用谢:)
    CEBBCAT
        17
    CEBBCAT  
       2017-07-28 12:41:21 +08:00
    @Antidictator #16
    我就要给你发铜币
    FanWall
        18
    FanWall  
       2017-07-28 12:55:12 +08:00
    网易云产品一生黑:一年份的有道云笔记因为某个客户端版本的 BUG 全部丢失,立刻找客服,客服跟我说服务器上没有备份了。这有什么资格做云服务?

    而且它的年费会员比印象还贵,从此印象一生推
    denonw
        19
    denonw  
       2017-07-28 13:48:45 +08:00
    @CEBBCAT 他这个只是导出歌单然后再导入吧,还是有点不一样的。
    connie1027
        20
    connie1027  
       2017-07-28 15:10:26 +08:00
    我会说我之前辛辛苦苦建的歌单都不翼而飞了吗,我一首歌一首歌又听了遍,再加入的歌单!!!
    weakish
        21
    weakish  
       2017-07-28 20:54:49 +08:00
    @gam2046 是我的问题。出错信息`FileNotFoundError`显示我漏掉了文件不存在的情形。最新的 commit 修复了这个问题。pull 后把 `~/.fm163`删掉重新跑应该可以正常运行。
    weakish
        22
    weakish  
       2017-07-28 21:21:33 +08:00   ❤️ 1
    @CEBBCAT 网易云音乐只支持从别人那里导歌单,并不支持将自己的歌单导入导出。

    需要根据导出、保存的单曲 id ( songs_id.json ),通过单曲添加的方式变相「导入」。

    这里有网易云音乐添加单曲到歌单的 api,不知道好不好用:

    https://github.com/sqaiyan/netmusic-node/blob/master/app.js#L241

    这部分代码没有写,涉及到 api 接口请求频率的问题,还要伪装自己的身份的问题。
    目前 fm163 并不涉及账户,因此最坏的情况也就是网易把 ip 封掉,
    如果要写,必须涉及账号,万一非法请求被网易检测到,可能会封账号,
    要把风险降到最低,需要写滴水不漏的代码,包括异常情况下要和网易云音乐的客户端表现一样。
    关键是网易云音乐的 api 还老是变来变去。。。
    secondwtq
        23
    secondwtq  
       2017-07-29 09:10:12 +08:00
    我记得网易云的歌要是直接下架了(搜索都搜不到,不是灰掉),歌单里面的也会悲剧
    F0nebula
        24
    F0nebula  
       2017-07-29 19:09:54 +08:00
    @weakish #5
    报错
    >>> python3.6 -VV
    Python 3.6.1 (default, Mar 22 2017, 06:17:05)
    [GCC 6.3.0 20170321]
    8660 ~/Downloads/fm163
    >>> uname -srvpio
    Linux 4.10.0-28-generic #32-Ubuntu SMP Fri Jun 30 05:32:18 UTC 2017 x86_64 x86_64 GNU/Linux
    8661 ~/Downloads/fm163
    >>> python3.6 fm163.py -D 455717860
    Error encountered to access file /tmp/tmp7mzj5bzu
    errno 18: Invalid cross-device link.
    Traceback (most recent call last):
    File "fm163.py", line 365, in main
    download(arguments.playlist_id, arguments.D, arguments.H)
    File "fm163.py", line 235, in download
    save_meta(meta)
    File "fm163.py", line 172, in save_meta
    json_dump(record, meta_db())
    File "fm163.py", line 108, in json_dump
    serialize(thing, path, "w", serialize_with_json)
    File "fm163.py", line 97, in serialize
    os.replace(temporary_file_path, path)
    OSError: [Errno 18] Invalid cross-device link: '/tmp/tmp7mzj5bzu' -> '/home/f_nebula/.fm163/meta.json'


    然后
    --- /home/f_nebula/Downloads/fm163/fm163.py~
    +++ /home/f_nebula/Downloads/fm163/fm163.py
    @@ -78,7 +78,7 @@
    # temporary_file_handler: int = handler
    # temporary_file_path: str = path
    # temporary_file_handler, temporary_file_path = tempfile.mkstemp(dir=Path.cwd(), text=True)
    - handler, p = tempfile.mkstemp(text=True)
    + handler, p = tempfile.mkstemp(dir=".", text=True)
    temporary_file_handler: int = handler
    temporary_file_path: str = p
    xcodebuild
        25
    xcodebuild  
       2017-07-29 22:45:11 +08:00
    我的也消失了。。。
    zjyd
        26
    zjyd  
    OP
       2017-07-30 00:46:17 +08:00 via Android
    @codefalling 我的已经通过云客服找回了,不过考虑到消失过两次,现在开了个会员,把歌曲全部下载到本地了。
    asdwddd
        27
    asdwddd  
       2017-07-30 12:45:29 +08:00
    嘿嘿 有人还用着网易的记帐软件...
    weakish
        28
    weakish  
       2017-08-13 10:21:26 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2751 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 05:47 · PVG 13:47 · LAX 22:47 · JFK 01:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.