Skip to content

纯粹不想手动转(结果花了比手动转还要长的时间写这个)Anyway 手动肯定性价比低

Notifications You must be signed in to change notification settings

peggywashington/interplayer

Repository files navigation

Interplayer

这是什么:
  把网易云/qq/酷狗/酷我的歌单转移到虾米的半自动化小程序。

为什么做这个:
  直接原因是我有上百个歌单,谁想重复无意义劳动,顺便还能学selenium;
  间接原因是网易云是大猪蹄子;
  根本原因是某人。

为什么自动化了还是有这么多手动步骤:
  因为。。都说了是半自动化!
  并且我只是为了自己方便,所以怎么性价比高怎么来。

如果遇到了奇怪的问题:
  都是因为我懒得写代码处理 已知的错误都已处理

环境准备:  

  1. 软件环境:python3/chrome+chormedriver85
  2. Python包依赖:参见requirements.txt,需安装seleniumbrowser_cookie3

使用流程:  

  1. 使用Chrome浏览器登录虾米音乐账号,使浏览器保存账号登录后的cookie(重要),程序将借助cookie登录网站
  2. 手动获取源歌单的链接,在与transfer_main.py同级的目录下创建playlist_urls.txt,将歌单链接存入文件中,每行一个链接
  3. 现在仅支持自动获取网易云的歌单链接,若要玩耍此功能,同样先用Chrome浏览器登录网易云,然后把transfer_main.py中的url_src_playlists = playlist_loader.from_file()改为url_src_playlists = playlist_loader.from_netease(driver)
  4. 运行transfer_main.py
  5. 别问为什么这么繁琐,懒得写命令行接口

Q&A:
Q:怎么获取源歌单的链接
A:浏览器打开源音乐网站,打开到主页或者歌单页(比如网易云的主页链接是 https://music.163.com/#/user/home?id=<你的userid> 可以不登录,也就是说也可以导入别人的歌单),f12开console,给个适配网易云的实例(已倒序):
  pl=[]
  for(playlist in $$(".msk")){pl.push($$(".msk")[playlist].href);}
  pl.reverse() //倒序
  JSON.stringify(pl)

Q:什么?你要从qq/酷狗/酷我导入?
A:源的歌单链接仍旧自己获取,放到pl_links中,剩下的我可能会写,其实很方便的啦 可以导入了

Q:什么?你要导入到别的地方?
A:自己写吧886 ps:已知咪咕网页版无导入功能


可能会产生的问题(以下皆已处理完成):
P:提示“导入失败”
S:虾米曲库中没有该歌单的任意一首歌。每一个失败的歌单信息都会打印并且记录在fail_log中。

P:提示“创建失败”
S:八成是歌单有特殊字符,删掉字符后手动按下“导入歌单”即可。

P:提示“正在帮你”
S:八成是源歌单原本就为空。每一个失败的歌单信息都会打印并且记录在fail_log中。

P:提示“系统错误”
S:检查一下代码中自己的虾米userid有没有替换上。没错的话,一般只重新运行一下main.py即可,记得把pl_links中已经导入的链接删掉然后重新运行。会打印头一个未成功的歌单信息并且记录在fail_log中。

P:提示“操作频繁”
S:实测大概导入60个之后会出现,等着吧,过段时间再继续,这个一段时间八成不是分钟级的,微笑。会打印头一个未成功的歌单信息并且记录在fail_log中。



2020.10.20
微调
等大佬写新的使用说明中



2020.10.12
错误处理完成
等大佬传牛逼功能中



2020.10.11
源=网易云/qq/酷狗/酷我 完成 增加部分错误处理



2020.10.10 基本功能完成
源=网易云



2020.10.9
关键技巧:cookie自动登录
xiami部分完成度70% netease部分未开始

About

纯粹不想手动转(结果花了比手动转还要长的时间写这个)Anyway 手动肯定性价比低

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages