README.md 11.3 KB
Newer Older
Z
Zain 已提交
1 2
## 网易云音乐升级

Z
Zain 已提交
3
调用官方接口,每天自动刷完300首歌,一个平均耗时为2分钟左右。放在服务器运行即可不需要人工干预,每天自动听歌做任务,向你的微信发送任务通知。
Z
Zain 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

<p align="center">
    <a href="https://github.com/ZainCheung"><img alt="Author" src="https://img.shields.io/badge/author-ZainCheung-blueviolet"/></a>
    <img alt="PHP" src="https://img.shields.io/badge/code-Python-success"/>
    <img src="https://visitor-badge.glitch.me/badge?page_id=ZainCheung.netease-cloud"/>
</p>

## 项目结构

```
|-- 项目文件夹
    |-- 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`:运行日志

## 快速开始

Z
Zain 已提交
40 41 42 43 44 45 46 47 48 49
**全民升级时代来了!项目支持了云函数!!!**

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

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

使用方法请看下面的 “云函数” 。

### 下载项目

Z
Zain 已提交
50 51 52 53 54 55 56 57 58 59 60 61
克隆项目到本地

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

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

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

### 安装依赖

Z
Zain 已提交
62 63
> 需要安装的依赖目前只有一个`request`,如果运行报错缺少什么模块就给什么模块加进`requirements.txt`中

Z
Zain 已提交
64 65 66 67
```bash
pip install -r requirements.txt
```

Z
Zain 已提交
68 69
### 启动程序

Z
Zain 已提交
70
> 程序需要`python3`的运行环境,如果没有请自行下载安装配置,,启动程序前一定要先配置账号,然后再启动程序
Z
Zain 已提交
71 72 73 74 75

```
python main.py
```

Z
Zain 已提交
76 77 78 79 80 81 82 83 84 85 86 87
### 配置账号

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

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

```bash
# setting.config(UTF-8)
```

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

Z
Zain 已提交
88 89 90 91
------



Z
Zain 已提交
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
#### 账号

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

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

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

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

Z
Zain 已提交
109 110 111 112
------



Z
Zain 已提交
113 114 115 116 117 118 119 120 121 122 123 124 125
#### 设置

```bash
[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](https://github.com/ZainCheung/netease-cloud-api)

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

Z
Zain 已提交
126 127 128 129 130 131 132
------



##### MD5


Z
Zain 已提交
133 134 135 136 137 138 139 140 141
```bash
# 密码是否需要MD5加密,如果是明文密码一定要打开
# true  需要, 则直接将你的密码(明文)填入password,程序会替你进行加密
# false 不需要, 那就自己计算出密码的MD5,然后填入上面的password内
md5Switch = false
```

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

Z
Zain 已提交
142 143 144 145 146 147
------



##### 多账号

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

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

Z
Zain 已提交
157 158 159 160 161 162
------



##### 微信提醒

Z
Zain 已提交
163 164 165 166 167 168 169
```bash
# Server酱的密匙,不需要推送就留空,密匙的免费申请参考:http://sc.ftqq.com/
sckey = SCU97783T70c13167b4daa422f4d419a765eb4ebb5ebc9********
```

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

Z
Zain 已提交
170 171 172 173
------



Z
Zain 已提交
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
### 配置多账号

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

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

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

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

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

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

Z
Zain 已提交
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270
## 云函数

### 1. 进入云函数

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

### 2. 新建函数

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

![新建函数](https://s1.ax1x.com/2020/06/29/Nhgyod.png)

### 3. 上传代码

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

![](https://s1.ax1x.com/2020/06/29/NhWswF.png)

### 4. 高级设置

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

![](https://s1.ax1x.com/2020/06/29/Nh251x.png)

### 5. 配置账号

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

![](https://s1.ax1x.com/2020/06/29/NhR62t.png)

### 6. 设置定时

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

![](https://s1.ax1x.com/2020/06/29/NhWZIH.png)

## 服务器部署

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

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

![](https://s1.ax1x.com/2020/06/28/Ngr2K1.png)

### 2. 新建项目

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

![](https://s1.ax1x.com/2020/06/28/Ng6lE6.png)

![](https://s1.ax1x.com/2020/06/28/NgsKz9.png)

### 3. 确定运行状态

![](https://s1.ax1x.com/2020/06/28/Ng6egJ.png)

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

Z
Zain 已提交
272
部署前也要记得先配置,然后再部署
Z
Zain 已提交
273

Z
Zain 已提交
274 275 276 277
## 日志

程序运行中生成的所有记录都会保存在日志文件中,第一次克隆项目时,不会看到`run.log`日志文件,而在程序第一次运行时才会生成

Z
Zain 已提交
278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335
## 效果演示

使用前可以看到是**9027**

![使用前](https://s1.ax1x.com/2020/06/27/N6YGQg.png)

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

![使用后](https://s1.ax1x.com/2020/06/27/N6tWuQ.png)



## 微信提醒

先看一下效果

![微信提醒](https://s1.ax1x.com/2020/06/28/NgSrAx.png)

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

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

## 其他

#### 1. Server酱

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

Server酱的官网地址:[http://sc.ftqq.com/](http://sc.ftqq.com/)

#### 2. MD5

制作时选择32位小写

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

#### 3. 修改main.py

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

```python
for i in range(1,3):
```

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

```
time.sleep(30)
```

#### 4. 可用性

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

#### 5. 初衷

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

Z
Zain 已提交
336 337 338
## 声明

本项目的所有脚本以及软件仅用于个人学习开发测试,所有`网易云`相关字样版权属于网易公司,勿用于商业及非法用途,如产生法律纠纷与本人无关。