18 行 Python 代码将 spotify 歌单导入网易云音乐 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhangolve
V2EX    音乐

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

  •  
  •   zhangolve 2016 年 8 月 9 日 9987 次点击
    这是一个创建于 3518 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    图片的话,不知可不可以批量导入或者支持长截图,那样的话可以写个程序生成吧我想
    lada05
        21
    lada05  
       2018 年 12 月 20 日
    @CEBBCAT #20 主要不知道,它怎么处理截图呢
    如果粗暴的 ocr 的话,那写到记事本再截个图,理论上也可以
    要找时间测试一下……
    zhangolve
        22
    zhangolve  
    OP
       2018 年 12 月 21 日
    @CEBBCAT 我没什么想法了。因为后来我也不怎么用 spotify 了。
    不过要说这个脚本的作用,当初给一个网友一次性导了几百首,也算发挥了他历史性的作用了,哈哈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1524 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 16:39 PVG 00:39 LAX 09:39 JFK 12:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86