- 命令行输入
pip install -r requirements.txt
- 创建Spotify app(如没有)
- 替换
config.yml
里的所有值,说明如下:client_id
: Spotify app的Client IDclient_id
: Spotify app的Client secretredirect_uri
: Spotify app的Redirect URIs中任意一个cover_image_path
: 新歌单封面图路径,如未改变默认值(DESIRED_SPOTIFY_PLAYLIST_COVER_IMAGE_PATH)则取用网易云歌单的封面图,因Spotify封面图大小限制,如自定义/网易云封面图大小超过256KB则降级用repo里的"assets/netease.png"netease_playlist_id
: 想要迁移的网易云音乐歌单id,可通过网易云音乐Web端歌单链接拿到,比如链接为https://music.163.com/playlist?id=123456789&userid=xxxxxxxx,歌单id就是123456789
- 命令行输入
python cli.py
- 浏览器弹窗提示登录Spotify
- 等待运行即可,命令行会显示进度,Spotify无版权的歌曲也会在命令行提示(详见下方)
由于之前版本经常会出现名字完全不同的歌也被加到Spotify里,现加入year search query filter缩小搜索范围(大幅减少,不代表完全没有了),但由于网易云音乐歌曲的收录时间可能和Spotify不同,这样会导致很多歌Spotify明明有,但是程序说没有。个人认为这样比不加year search query filter好处理,因为后者不易察觉,前者只需手动再加一次就好了,以下两种类型的歌曲最容易触发“无版权”:
其余无版权歌曲大概率是Spotify真没版权
为避免unicode exception,非英文的无版权歌曲会用字母提示
虽然用的是Spotipy库,但之前写过一个适用于所有OAuth 2.0 app获取access token的基类,只需替换OAuth2Client.py
中的AUTHORIZATION_ENDPOINT
和ACCESS_TOKEN_ENDPOINT
即可,详见这篇博客 (不过抱歉是全英文的,因为本人是留学生在美国找工作所以就写了英文博客2333)