最近,网易云音乐越来越多的歌曲变灰了,许多我以前喜欢听的音乐都消失在云端,非常可惜。最近我还是想听回以前的歌曲,于是只能使用有那些歌曲版权的QQ音乐,麻烦的是,QQ音乐没有我在网易云音乐的歌单,两个软件之间互相切歌也是在太麻烦了。

由于不想重复造轮子,这么基本的想法应该有人跟我感同身受。上网摸索了一段时间,终于找到一个基于Python的开源项目 Denon/syncPlaylist:
​​

这是一个使用爬虫技术搭建的两端同步软件,它可以从网易同步歌单到QQ音乐,也可以从QQ音乐同步歌单到网易云音乐,非常方便。

想要实现这样的同步功能,一般都需要提供账号密码,普通软件让人恨不放心,因为你不知道它会不会把你的账号密码上传到软件作者自己的服务器,从而窃取你的账号。但使用这个项目你就不需要有这个困扰,因为它是开源项目,源代码全透明公开,不存在上传账号密码的操作。下面我们直接基于项目的Python源代码进行迁移操作。

1.下载源代码

你可以在项目的原网站点击 Clone or download—Download zip 下载完整源代码:
​https://github.com/Denon/syncPlaylist​​​​​​

如果网络不允许,没关系,关注文章最下方的Python实用宝典公众号,后台回复 ​网易QQ音乐迁移​ 即可获得完整源代码。

2.安全检查

为了让大家放心使用作者的源代码,我们要对他的代码进行简单的分析,确保没有任何的请求发送账号密码到任何除网易和QQ之外的服务器中。

检索源代码中所有的url,看看有没有非qq或者网易的域名:

Python 将网易云歌单迁移到QQ音乐_python


发现了一个陌生域名,不过没关系,这个是作者放着用来下载phantomjs的链接,phantomjs是一个用于爬虫的无头浏览器,在本项目中没有安全威胁。


Python 将网易云歌单迁移到QQ音乐_python_02

这是作者用于QQ登录的逻辑(真的是一行注释都不写啊我X),看了XPATH,和现在的QQ官网依然对应正确,登录逻辑没有太大的问题。

再仔细瞧瞧其他的py文件,如果看到了任何奇怪的东西都要注意。我扫了一遍,非常安全,如果你不信的话可以自己多看看几遍。

3.迁移歌曲

接下来,我们基于这个项目的源代码演示如何将网易云音乐的歌曲迁移到QQ音乐上。注意,你得确保你的电脑已经安装了Python的运行环境,如果没有的话推荐阅读这篇文章(由于该项目用的是Python2,推荐安装anaconda,能够在Python2和Python3之间创建环境自由切换)​​​​

3.1 配置账号

在 config.json[account, password] 添加qq账户(account) 和 密码(password)

Python 将网易云歌单迁移到QQ音乐_网易云音乐_03

3.2 找到你想要移植的歌单

比如我想移植我喜欢的音乐:

Python 将网易云歌单迁移到QQ音乐_json_04

然后复制地址输入到config.json中:

Python 将网易云歌单迁移到QQ音乐_python_05

3.3 找到你想传入的QQ歌单

比如我想放到QQ的“我喜欢”歌单:

Python 将网易云歌单迁移到QQ音乐_json_06

Python 将网易云歌单迁移到QQ音乐_json_07


没错,这要先进入QQ音乐官网登录后,找到我的音乐——点击“我喜欢 ” ,才能拿到歌单地址,和刚刚一样,将​链接​放入config.json的目标歌单中:


Python 将网易云歌单迁移到QQ音乐_python_05

3.4 开始迁移

然后在当前文件夹中打开终端

windows: win+R 输入CMD;

macOS: command+空格 输入终端;

打开终端后安装依赖,以下命令会自动安装 requirements.txt 中的依赖:

pip install -r requirements.txt

然后运行命令:

python run.py

等待后即可完成音乐的迁移。

看起来简单,但在这个过程中,由于环境不一样,你们可能会遇到各种各样的问题(最典型的是Python版本问题,该项目用的版本是Python 2),如果有问题,欢迎在下方留言区留言,我们都会耐心解答的!

如果你喜欢今天的Python 教程,请持续关注Python实用宝典


Python实用宝典 (pythondict.com)

不只是一个宝典

欢迎关注公众号:Python实用宝典

Python 将网易云歌单迁移到QQ音乐_python_09