本文最后更新于 2020-07-02【1349 天前】,文中所描述的信息可能已发生改变,请谨慎使用。如有问题或建议,欢迎在文章底部留言参与讨论!

引言

论坛里之前有大佬做了一个windows的界面软件可以刷听歌数量来达到快速升级的目的,用起来挺爽的,即使是每天只需要打开软件登陆打卡就行,但我总是忘记,为了达到全自动的目的,我动手做了一个python脚本,可以放在服务器上运行,从此不用再去管它,每天它都会自动去打卡听完300首歌,并且可以多账号使用(理论上可以达到几百个),每天会向微信发送消息汇报任务进度。

一、总体介绍

这个项目可以做到的功能有:

  1. 每天自动登陆听完300首歌
  2. 每天自动向你的微信推送听歌任务进度

这个项目分为Python客户端和API接口(服务器),一共两个项目,各有三种部署方法。Python项目的部署最简单的是云函数法,API项目的部署最简单的是直接复制项目法

自己搭建API和申请Server酱并不是并须的,没有的话项目也可以运作,只是开发者觉得自己搭建API比较安全,用别人的API别人悄悄加后门你都不知道,当然开发者的API已经公开并且所有代码都开源了,肯定是没有后门的,大家可以拿去用。至于Server酱是为了让你每天知道进度以及项目有没有出问题,也不是必须要加的。

所以你想快速使用的话,可以直接看部署Python项目的云函数法和后面的部分,部署API项目可以不看。

当你成功运作项目后如果想学习自己搭建API接口再回来看API这一部分。

无论采取哪一种方式部署,都要看配置账号这一部分,很简单却也很重要!!!

更多内容请看其他事项


二、部署Python项目的三种方法

① 云函数

全民升级时代来了!项目支持了云函数!!!

什么是云函数?就是可以让你没有服务器、本地电脑不用下载Python也可以使用这个项目,而且还是白嫖

既解决了很多人部署的麻烦,也给了那些被劝退的朋友回来的勇气,十分钟便可以全部弄完。

1. 进入云函数

这里拿腾讯云的云函数做个案例,没有的可以免费开通一下,地址:https://console.cloud.tencent.com/scf/list-create?rid=1&ns=default

2. 新建函数

函数名随意,运行环境选Python 3.6,创建空白函数,然后下一步

新建函数

3. 上传代码

确保环境为python 3.6,执行方法改为:index.main,提交方式一定要选本地文件夹,然后从GitHub项目克隆Zip压缩包,解压成文件夹,然后点击这个上传把文件夹上传进来,完了后点击下面的高级设置。

4. 高级设置

内存用不了太大,64MB就够了,超时时间改为最大的900秒,然后点击最下面的完成。

5. 配置账号

自己改下init.config里的账号密码以及Server酱密匙,用到多账号的也要配置account.json,做完后点击保存并测试。如果你的配置没有错,稍等几分钟便可以看到结果,在此期间不要刷新页面。结果会在自行日志里。

6. 设置定时

点击左边的触发管理,然后新建触发器,触发周期为自定义,表达式就是每天的什么时候做任务,我选择的早上8点30分,可以自行修改,填好后点击提交即可,到此你的每日听歌项目便部署完成,感谢使用!!


② 本地使用

本地部署需要电脑下载并安装配置好Python

1. 下载项目

克隆项目到本地

git clone https://github.com/ZainCheung/netease-cloud.git

或者fork本项目到你的仓库进行克隆

又或者在项目仓库直接下载ZIP压缩包,这些都是可以的

2. 安装依赖

需要安装的依赖目前只有一个request,如果运行报错缺少什么模块就给什么模块加进requirements.txt
pip install -r requirements.txt

3. 配置账号见后文

4. 启动程序

程序需要python3的运行环境,如果没有请自行下载安装配置,,启动程序前一定要先配置账号,然后再启动程序
python main.py

③ 服务器部署

推荐使用宝塔面板,在宝塔应用商店里面有一个Python项目管理器,下载安装,并选择3.0以上版本,推荐3.7.2版本.

1. 下载安装Python项目管理器

2. 新建项目

这里的netease-cloud就是这个项目的文件夹,我给放在了/www/wwwroot/路径下了,可见我这里下载安装的是3.7.2版本的python框架选择Python,启动方式也为Python,启动文件选择main.py端口不用填,勾选安装模块依赖,是否要开机启动自己随意咯,然后确定。

3. 确定运行状态

这时候项目就开始在运行了,就可以去项目在文件夹的路径,找到run.log即可查看运行日志

部署前也要记得先配置,然后再部署


三、部署API接口的三种方法

建议新手使用自动托管方式,可以完全不需要编程基础即可搭建api接口,推荐使用网站:https://glitch.com/

这个网站是国外的,名气也很大,在上面托管网站的有几百万,免费使用,缺点就是速度没有国内的服务器快,还有就是如果没有访问了,一定时间后会进入休眠,等待下一次请求到来后需要等待几秒的解冻时间。不过这些对这个项目并没有什么影响,所以可以放心部署。

API项目地址:https://github.com/ZainCheung/netease-cloud-api

下面三种方法,第一种第二种最简单但速度慢,而且需要你有网站账号,第三种访问速度快但需要你有服务器,大家自己取舍,但基本上有服务器了都想自己搭建吧,大家随意

① fork项目并从GitHub导入

  1. fork这个API项目到你的仓库
  2. 打开网站注册并登陆,新建项目,选择从GitHub导入,地址为本项目的git地址
  3. 修改你的glitch项目名,例如:netease-test
  4. 那么你的接口名为“项目名.glitch.com”:https://netease-test.glitch.me/
  5. 访问你的接口看到欢迎页面即部署成功

使用这种方式部署网站接口,0成本且快速可用,且不用担心环境部署运维等问题,当然如果有条件用自己的服务器搭建也是可以的。

1. fork项目

感谢Star

2. 导入项目

2-1. 填入 git地址

地址在你的Github项目的clone按钮里,要用https

2-2. 改自己项目名

2-3. 获得API地址

又或者

② 直接复制项目

或者可以直接复制一份这个API项目成为你的项目,进入开发者的api服务器: https://glitch.com/edit/#!/netease-cloud-api 选择右上角的 Remix to Exit,即可成为你自己的项目,你便可以对代码进行修改,自定义你的域名。

获得API地址

又或者

③ 服务器部署

部署到服务器,对于新手还是比较建议安装宝塔面板,然后就可以在浏览器中进行界面化操作,免得有的人不会Linux的命令行。

1. 下载PHP

确保下载了PHP,版本不要太老就行

2. 添加网站

填入你提前在你的域名运营商解析的域名,可以是子域名比如,api.xxxxxx.com,写个网站备注,然后根目录选择到下载的项目路径,FTP不创建,数据库不创建默认utf-8就行,程序类型PHP,版本选择下载的版本,提交即可运行你的网站.

运行网站

这里演示域名为test.com,然后在浏览器里输入你的网站地址,看到欢迎页面即为部署成功

四、配置账号

为了保护账号信息,所有的账号密匙都打上了*号,使用时请换成自己的账号

打开init.config文件,进行配置

# setting.config(UTF-8)

第一句注释是为了声明编码格式,请不要删除该行注释


1. 账号

[token]
# 网易云音乐账号(手机号/网易邮箱)
account = 150********

# 密码,明文/MD5,建议自己去MD5在线加密网站给密码加密,然后填到下面
# 明文例如:123456abcd
# MD5例如:efa224f8de55cb668cd01edbccdfc8a9
password = bfa834f7de58cb650ca01edb********

token区域下存放个人账号信息,account存放网易云账号,password存放密码

注意,这里密码填写类型与后面的md5开关相关联,具体见后面介绍

2. 设置

[setting]
# 开关的选项只有 True 和 False
# 打卡网站的网址,如果失效请提issue:https://github.com/ZainCheung/netease-cloud-api/issues/new
api = https://netease-cloud-api.glitch.me/

api是指提供接口的服务器地址,这里提供一个Demo,源码也已经全部开源,如有对项目存在疑问欢迎查看源码,项目地址:ZainCheung/netease-cloud-api

另外想快速拥有一个一模一样的api服务并且使用自己定义的域名,那么可以按照上面项目的教程自己快速搭建


2-1. MD5

# 密码是否需要MD5加密,如果是明文密码一定要打开
# true  需要, 则直接将你的密码(明文)填入password,程序会替你进行加密
# false 不需要, 那就自己计算出密码的MD5,然后填入上面的password内
md5Switch = false

md5开关,如果自己不会加密md5,那么将这个开关置为true,并且将你的密码(明文)填入password,程序会为你加密。如果已经知道密码的md5,则将这个开关置为false,将md5填入上面的password内

自己制作MD5时一定要是32位小写!!!


2-2. 多账号

# 是否开启多账号功能,如果打开将会忽视配置文件里的账号而从account.json中寻找账号信息
# 如果选择使用多账号,请配置好account里的账号和密码,即account和password,而sckey不是必需的,如果为空则不会进行微信推送
# 介于账号安全着想,account.json中的密码必须填写md5加密过的,请不要向他人透露自己的明文密码
peopleSwitch = false

这个开关是为那些拥有多账号或者准备带朋友一起使用的朋友准备的,正如注释所说,如果你有多个账号,都想使用这个服务,那么可以打开peopleSwitch置为true,那么配置文件里的账号就会被程序忽略,直接读取account.json中的账号信息,关于account.json的配置在后面。


2-3. 微信提醒

# Server酱的密匙,不需要推送就留空,密匙的免费申请参考:http://sc.ftqq.com/
sckey = SCU97783T70c13167b4daa422f4d419a765eb4ebb5ebc9********

Server酱,是一个可以向你的微信推送消息的服务,并且消息内容完全自定义,使用之前只需要前往官网,使用GitHub登陆,扫码绑定微信,便可以获得密匙,从此免费使用Server酱


3. 配置多账号

第一次打开account.json,内容会是这样

[
    {
        "account": "ZainCheung@163.com",
        "password": "10ca5e4c316f81c5d9b56702********",
        "sckey": "SCU97783T70c13167b4daa422f4d419a765eb4ebb5ebc9********"
    },
    {
        "account": "150********",
        "password": "bfa834f7de58cb650ca01edb********",
        "sckey": "SCU97783T70c13167b4daa422f4d419a765eb4ebb5ebc9********"
    },
    {
        "account": "132********",
        "password": "f391235b15781c95384cd5bb********",
        "sckey": "SCU97783T70c13167b4daa422f4d419a765eb4ebb5ebc9********"
    }
]

可见里面是一个数组文件,成员为账号对象,对象有三个属性,分别是账号、密码、Server酱密匙。

不同的账号对应不同的密匙,在做完这个账号的任务后会给这个密匙绑定的微信发送消息提醒,如果留空则不提醒,留空也请注意语法,记得加双引号,列举一个正确的案例

[
    {
        "account": "ZainCheung@163.com",
        "password": "10ca5e4c316f81c5d9b56702********",
        "sckey": ""
    },
]

可见这里的sckey为空,那么完成任务后便不会发送消息提醒,如果不确定是否成功可以查看日志


五、效果演示

使用前可以看到是9027

使用前

使用后是9327首,刚好涨了300首

使用后

微信提醒

微信提醒依赖于Server酱,这是个很奈斯的工具,个人开发的一个项目,对所有人保持免费开放,需要使用GitHub登陆,然后绑定微信,拿到你的密匙,填入到配置文件的sckey中,或者多账号文件account.json

提示的内容也可以自行修改,main.py文件的第143行左右的diyText函数里的content为提示内容,里面可以自定义提示内容,比如你不是考研党就把考研那一行删去,以及每日一句,,等等,如有需要尽情改。

看一下效果:

微信提醒


六、下载地址

Python项目地址:https://github.com/ZainCheung/netease-cloud

api接口项目地址:https://github.com/ZainCheung/netease-cloud-api

api的Demo演示地址:https://netease-cloud-api.glitch.me/

api在线服务器:https://glitch.com/edit/#!/netease-cloud-api


七、查看日志

只有本地部署和服务器部署才会生成日志文件,而用云函数搭建的不会有这个run.log文件,如需查看日志可以查看云函数内置的日志。

日志文件记录了程序运行的状况,程序运行中生成的所有记录都会保存在日志文件中,第一次克隆项目时,不会看到run.log日志文件,而在程序第一次运行时才会生成,下面看一下我在服务器上的日志:

日志

可以看到我打卡了不止一个账号,还有我朋友的号,这个就用到了多账号配置,如果你有个小迷妹,你可以帮她带着一起用,又或者你想像我一样放在服务器上使用,那么就配置一下吧

八、其他事项

1. Server酱

一定要绑定微信才会有效果

Server酱的官网地址:http://sc.ftqq.com/

2. MD5

制作时选择32位小写!!!

在线“制作”MD5:https://tool.chinaz.com/tools/md5.aspx

比较建议大家使用MD5,因为别人即使知道了你的MD5,也很难还原你的密码,相对而言要安全很多,而原密码在你制作MD5时就被隐藏起来了,只有你一个人知道密码

3. 修改听歌次数

如果你的等级比较高,然后使用这个发现每次都没有听满300首,那么你可以修改程序main.pystart函数(165行左右)的打卡次数,将3改大点,比如改到6就可以打卡6次

for i in range(1,3):

如果你嫌打卡速度慢了,可以修改休眠时间,30秒改为10秒之类的,请自行调试

time.sleep(30)

4. 可用性

可能有人会说,直接使用网页或者电脑程序每天打卡不就好了,干嘛还要脚本。是的,使用网站和程序确实可以做到一样的效果,不过我懒啊,还总是忘事,所以就让它彻底全自动化,可能也有不少人愿意像我这样折腾一番,然后就可以坐享其成一劳永逸,每天坐等微信提醒就行。

5. 初衷

使用网易云也有挺久了,听的歌也挺多,但总是会听重复的歌,而重复的歌又不算进等级里去,所以还是很想升级的。


九、常见问题

    1. 确保自己的账号密码都没有问题,却总是提示检查账号密码怎么回事?
      答:很有可能是当前的API不可用了,默认API使用的人较多,,而且大多都挤在一个时间段用了,,导致平台反应不过来,本身就是国外站,速度比较慢,大家可以分开点做任务,下午晚上都是可以的,不然这个API就会被挤挂掉了,还是建议大家自己搭建API,这样自己访问速度也会快很多。
      大家部署完API记得在 init.config文件中更改 api地址为自己部署的地址,比如你的域名是api.test.com或者api.glitch.me等等。
    1. 已经换了API,还是报错检查账号密码?
      答:如果确定API可以用,但依旧提示账号密码有问题,还请检查一下配置文件的账号密码以及md5Switch有没有选对,密码的MD5一定要是32位小写,已经有人因为没注意这个而出错的了。
      并且 init.config文件中要更改 api地址为自己部署的地址。
    1. 打卡完成后为什么歌曲累计播放没有涨或者涨幅很小?
      答:打卡完成后听歌数量并不会立刻更新,建议等待半小时或者更多一段时间,由于官方计数规则限制,只有从未听过的歌曲才计入总数,所以如果你的播放量本来就很高,建议加大打卡的循环次数,教程见其他事项第三条。
    1. 自己用服务器搭建的API,首页能打开,但点击检查没反应?
      答:API一定要用PHP部署,如果是纯静态是没有任何作用的,建议新手或者小白使用前两种部署方式,有能力者使用第三种。
    1. 使用多账号报错怎么办?
      答:在确保其他配置没有问题的情况下,检查一下account.json里面的格式是否正确,账号与账号之间要有逗号,具体格式参考项目里的案例。
    1. 使用这个会影响我的听歌风格吗?
      答:刷的歌都来自您的每日推荐歌单,不影响。
    1. 使用这个我的账号安全吗?
      答:从技术上来说,在配置文件中填写的账号密码无论是自行加密还是让程序加密(MD5其实不是加密,只是一种摘要算法,用来防止文件信息等被篡改),最终API接口收到的都是MD5,假设你使用的是网上随便找的API,即使别人改过代码,保存了你的账号信息,想要通过彩虹表暴力破解,也是大费周章还只能搞到简单的密码,至于大神级别的Hack可能毫无压力,但人家大神也不稀罕做这些,所以说安全性基本上没有问题。
    1. 其他报错
    2. {"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"module 'index' has no attribute 'main_handler'"}
      答:这个是通过云函数部署报的错,原因是没有改执行方法,请看云函数部署那一节的图片内容。
    3. 在您选择的文件夹里面找不到netease-cloud-master/index.py文件
      答:重新去GitHub下载最新的项目。
还有其他问题可以到GitHub提Issue或者在吾爱帖子下提问题,遇到程序报错可以截图或者复制报错信息。

十、项目结构

|-- 项目文件夹
    |-- LICENSE
    |-- README.md
    |-- account.json
    |-- init.config
    |-- main.py
    |-- requirements.txt
    |-- run.log

LICENSE:开源许可证

README.md:项目自述文件

account.json:账号存放文件

init.config:配置文件

main.py:主程序

requirements.txt:依赖清单

run.log:运行日志

十一、声明

请不要找我代挂账号,如果使用我的api请使用md5摘要密码,本项目的所有脚本以及软件仅用于个人学习开发测试,所有网易云相关字样版权属于网易公司,勿用于商业及非法用途,如产生法律纠纷与本人无关。

本文转载自 https://www.52pojie.cn/thread-1208644-1-1.html



推荐使用:阿里云 云翼计划学生优惠、ECS、轻量应用等产品与服务【 点击注册

本文作者:Quanyin Tang

本文链接:网易云音乐多账号全自动升级,彻底解放双手 - https://www.imtqy.com/netease-music-sign.html

版权声明:如无特别声明,本文即为原创文章,仅代表个人观点,版权归 Quanyin 所有,未经允许禁止转载,经授权转载请注明出处!