V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhangolve
V2EX  ›  音乐

18 行 Python 代码将 spotify 歌单导入网易云音乐

  •  
  •   zhangolve · 2016-08-09 15:01:06 +08:00 · 9043 次点击
    这是一个创建于 2810 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近一直在用 Spotify 在线听歌, Spotify 的好处在于能够发现更多好听的歌曲。然而,它的订阅实在是太贵了,因此也就不能够离线下载,而虽然我在用 Spotify ,但是也没有抛弃网易云音乐,用它来下载歌曲也很不错,网易云音乐的评论区也往往欢乐多多,因此,我就有了这个想法,想要将 Spotify 的歌单转到网易云音乐歌单。 思路

    上网 google 了一番之后,发现确实有很多的中文用户乃至于外国用户在纠结着怎样导出 Spotify 的歌单甚至是下载整个歌单的歌曲。我首先找到了 Exportify 这个网站,它是能够通过接入 Spotify 的 API 来将 Spotify 的歌单找到并支持导出为 CSV 格式的文件。

    而我们知道,网易云音乐也是支持导入歌单的,但仅限于酷狗或酷我的歌单,而酷狗的歌单文件是.kgl 格式的,因此如果要想将 Spotify 歌单转到网易云音乐歌单,我们就首先需要将这种 CSV 格式的文件转成 kgl 格式的文件。

    本来我是想着用 JS 的,因为最近一段时间都在用 JS ,但是从操作文件的角度上讲,我觉得 Python 还是更有优势的。虽然 Python 已经很久没用了,但是还是想尝试一下。

    完整的过程: http://hktkdy.com/2016/08/09/201608/spotify-to-easenet/

    任何意见或建议,欢迎指出。

    第 1 条附言  ·  2016-08-11 16:11:33 +08:00
    已经更新: https://github.com/zhangolve/Spotifylist-to-gkl
    这次能够直接将 csv 文件转 kgl 了,但是仍然需要网页服务得到 csv 文件以及手动将歌单导入到网易云音乐。
    22 条回复    2018-12-21 15:41:01 +08:00
    mzeht
        1
    mzeht  
       2016-08-09 15:27:55 +08:00
    这个标题取名很有技巧
    TimePPT
        2
    TimePPT  
       2016-08-09 16:00:30 +08:00
    你这 python 只是 json 转 xml 吧,整个导入功能也没实现啊。
    以及, python 做 csv 转 xml 也不麻烦啊,你用个网页三方工具粘贴转换再复制出来功夫代码都写完了
    zhangolve
        3
    zhangolve  
    OP
       2016-08-09 16:06:57 +08:00
    @TimePPT 不知道你有没有点进链接看我的全文。第一,我做的是 json 转 kgl ,第二,从 csv 到 json 的过程我的确没有实现。第三,我 python 确实不熟,不晓得 csv 转 xml ,如果你能够实现,我文中说了,也请指出并提供方案。
    TimePPT
        4
    TimePPT  
       2016-08-09 16:17:46 +08:00   ❤️ 1
    @zhangolve 看了原文才发的评论啊, kgl 文件本质不就是 xml 么?
    zhangolve
        5
    zhangolve  
    OP
       2016-08-09 16:22:35 +08:00
    @TimePPT OK,谢谢,仔细想了一下你说的,的确是个挺好的思路。我会试试的。
    ps 不过那样肯定就不是 18 行 python 喽。。。
    TimePPT
        6
    TimePPT  
       2016-08-09 16:26:27 +08:00
    @zhangolve 代码多少无所谓,实现整个功能意义更大,这个需求是典型的 workflow (不是 Alfred 那个 workflow 哦),如果能一次实现,之后的操作成本会降很多。
    等实现出 demo 后可以考虑运行效率。

    作为一个死 pm ,经常遇到后台技术不给加统计后台功能,都是我自己用 python 写了脚本取各种接口数据本地做格式转换与分析的,所以这块比较有感触。
    zhangolve
        7
    zhangolve  
    OP
       2016-08-09 16:38:30 +08:00 via Android
    @TimePPT 学习了。其实还可以直接调用 Spotify API 获取 XML 文件,这样就连第一步都省了。只是我 Python 就是个现学现用,况且 Spotify 是要科学上网的,都是坑啊。如果能够实现,就能够像你说的那样了。
    TimePPT
        8
    TimePPT  
       2016-08-09 16:44:16 +08:00
    @zhangolve 互相学习^_^
    如果能直接获取 xml 的话是最好的了,根据网易云导入的要求做下修改应该就能导入了。
    ilukechern
        9
    ilukechern  
       2016-08-10 09:02:12 +08:00
    为什么要先转 json 格式呢? Python 本身就有 csv 包。
    zhangolve
        10
    zhangolve  
    OP
       2016-08-10 10:14:37 +08:00
    @ilukechern 这个问题楼上已经有人指出,会修改的。
    JesseLexin
        11
    JesseLexin  
       2016-12-09 10:54:54 +08:00
    我尝试之后,发现绝大多数的 gkl 列表都会导入失败。目前,我的 10 多个 spotify 列表,只有一个成功导入了网易 -_-!!!
    zhangolve
        12
    zhangolve  
    OP
       2016-12-09 11:00:29 +08:00
    @JesseLexin 网易云音乐里面的曲库数目不全,如果发现库里面没有对应的歌曲,就容易造成导入失败。我之前也遇到过这个问题,我的解决是对 gkl 文件进行手动编辑,先删除一半的歌曲试试,这样导,总之还是稍微麻烦点。
    wswj
        13
    wswj  
       2016-12-26 19:45:43 +08:00
    @zhangolve 我发现把& , #这类符号去掉就可以成功导入了。 starred 歌单的 500 多首歌,到了网易云只剩下 280 首, weekly 的歌相对小众点, 30 首还剩下 10 首...
    暂时看还是只能用 spotify 为主
    zhangolve
        14
    zhangolve  
    OP
       2016-12-26 20:19:27 +08:00
    @wswj 恩,感谢反馈。 这个可能 @JesseLexin 也需要吧 。
    CEBBCAT
        15
    CEBBCAT  
       2018-06-12 23:45:49 +08:00
    2018,网易导入歌单文件功能关闭了,楼主有什么解决的方法吗?
    lada05
        16
    lada05  
       2018-12-20 19:22:47 +08:00
    @CEBBCAT #15 同问,你现在有方法了吗?或者还有哪个中文在线音乐流服务,支持导入 歌手-歌名 这种格式歌单的?
    CEBBCAT
        17
    CEBBCAT  
       2018-12-20 19:34:27 +08:00
    @lada05 #16 我那时候应该是没找到
    lada05
        18
    lada05  
       2018-12-20 19:41:21 +08:00
    @CEBBCAT #17 网易云音乐支持“截图导入歌单”的,你试过吗?
    截图的缺陷是,一屏幕就那么大,每次顶多导个 10 首左右,麻烦,所以我还没试……
    lada05
        19
    lada05  
       2018-12-20 19:41:52 +08:00
    @CEBBCAT #17 忘记链接了:
    网易云音乐怎么截图导入歌单
    https://jingyan.baidu.com/article/ad310e800e9c371849f49ea2.html
    CEBBCAT
        20
    CEBBCAT  
       2018-12-20 20:40:53 +08:00
    @lada05 #18
    原来出了这么个功能,我之前都不知道。我等会试试看看能不能抓到包(极有可能鸽)

    图片的话,不知可不可以批量导入或者支持长截图,那样的话可以写个程序生成吧我想
    lada05
        21
    lada05  
       2018-12-20 21:31:00 +08:00
    @CEBBCAT #20 主要不知道,它怎么处理截图呢
    如果粗暴的 ocr 的话,那写到记事本再截个图,理论上也可以
    要找时间测试一下……
    zhangolve
        22
    zhangolve  
    OP
       2018-12-21 15:41:01 +08:00
    @CEBBCAT 我没什么想法了。因为后来我也不怎么用 spotify 了。
    不过要说这个脚本的作用,当初给一个网友一次性导了几百首,也算发挥了他历史性的作用了,哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2801 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:17 · PVG 10:17 · LAX 19:17 · JFK 22:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.