ncmp(NetEase Cloud Music Partner/网易云音乐合伙人)
基于 Python 的网易云音乐-音乐合伙人任务脚本,支持本地运行和 GitHub Actions 自动执行。
- 全自动完成音乐合伙人日常任务
- 完成每日5个基础任务
- 完成每日7个额外评分任务
- 便捷的部署方式
- 支持本地手动运行
- 支持 GitHub Actions 自动执行
- 完善的通知机制
- Cookie 失效自动发送邮件提醒
- 一次配置持续使用
- 支持自动登录账号并刷新Cookie,基于NeteaseCloudMusicApi
如果你从来没有接触过GitHub Actions以及Cookies相关的网络知识,请戳ncmp 使用指北。
- 登录网易云音乐网页版
- 打开浏览器开发者工具(F12)
- 切换到 Network(网络)选项卡
- 刷新页面,在请求中找到 cookie 中的
MUSIC_U
和__csrf
值
为了让Cookie自动刷新功能正常工作,您需要创建一个具有特定权限的GitHub Personal Access Token (PAT)。以下是详细步骤:
- 登录您的 GitHub 账号
- 访问 Token设置页面
- 点击"Generate new token" > "Fine-grained tokens" or "Generate new token (classic)"
- 在"Note"字段给您的Token起一个描述性名称,如"NCMP Cookie Refresh"
- 设置 Token 有效期
您只需要为 Token 配置最小必要的权限。 如果使用 Fine-grained tokens (更精细的权限控制):
- 选择只对您的ncmp仓库有效
- 将 "secrets" 设为 "Read and write"
如果使用 Generate new token (classic):
如果是公开仓库,选择以下权限:
repo
>public_repo
(仅访问公开仓库)codespace
>codespace:secrets
如果是私有仓库,选择以下权限:
repo
(完整的仓库访问,包括私有仓库)codespace
>codespace:secrets
- 滚动到页面底部,点击"Generate token"
- 立即复制生成的token(离开页面后将无法再次查看)
- 将复制的token添加到您fork的ncmp仓库的GitHub Secrets中,命名为
GH_TOKEN
在仓库的Secrets中添加以下内容:
NETEASE_PHONE
: 您的网易云音乐账号手机号- 网易云音乐账号密码(2选1,强烈建议使用MD5加密密码)
NETEASE_PASSWORD
: 明文密码NETEASE_MD5_PASSWORD
: MD5加密密码
GH_TOKEN
: 刚才创建的GitHub Token
- 确保仓库中
.github/workflows/refresh_cookie.yml
工作流已启用 - 您可以在Actions页面手动运行"Cookie Refresh"工作流测试配置是否正确
支持所有提供 SMTP 服务的邮箱,以下是常见邮箱的配置示例:
-
Gmail (推荐)
{ "notify_email": "[email protected]", "email_password": "YOUR_APP_SPECIFIC_PASSWORD", "smtp_server": "smtp.gmail.com", "smtp_port": 465 }
注意:Gmail 需要开启两步验证并使用应用专用密码
-
QQ邮箱
{ "notify_email": "[email protected]", "email_password": "YOUR_AUTH_CODE", "smtp_server": "smtp.qq.com", "smtp_port": 465 }
注意:需要在QQ邮箱设置中开启SMTP服务并获取授权码
-
克隆仓库到本地:
git clone https://github.com/ACAne0320/ncmp.git cd ncmp
-
安装依赖:
pip install -r requirements.txt
-
复制并编辑配置文件:
cp config/setting.example.json config/setting.json
-
编辑
config/setting.json
,填写以下配置:{ "Cookie_MUSIC_U": "YOUR_MUSIC_U_COOKIE", "Cookie___csrf": "YOUR_CSRF_TOKEN", "notify_email": "[email protected]", "email_password": "YOUR_APP_SPECIFIC_PASSWORD", "smtp_server": "smtp.gmail.com", "smtp_port": 465, "wait_time_min": 15, "wait_time_max": 20, "score": 3 // 评分策略:1=1-2分,2=2-3分,3=3-4分(默认),4=固定4分 }
-
运行测试脚本确认配置正确:
python tests/test_auto_score.py
-
运行主程序:
python main.py
-
Fork 本仓库到你的 GitHub 账号
-
配置 GitHub Secrets: 在你 fork 的仓库中,进入 Settings -> Secrets and variables -> Actions,添加以下配置:
MUSIC_U
:网易云音乐 MUSIC_U CookieCSRF
:网易云音乐 CSRF TokenNOTIFY_EMAIL
:邮箱地址(可选)EMAIL_PASSWORD
:邮箱密码(可选)SMTP_SERVER
:smtp.gmail.com(可选)SMTP_PORT
:465(可选)WAIT_TIME_MIN
:最小等待时间(可选,默认15)WAIT_TIME_MAX
:最大等待时间(可选,默认20)SCORE
:评分策略(可选,默认3)
-
启用 GitHub Actions:
- 进入仓库的 Actions 页面
- 点击 "I understand my workflows, go ahead and enable them"
- Actions 将会按照预设时间自动运行(默认北京时间1点)
- 目前仅对 Gmail/QQ邮箱 进行了验证,其他邮箱可能需要自行测试
- 邮箱密码为授权码,而非邮箱登录密码
- 任务提交默认添加了 15-20 秒的等待时间,避免被检测异常
- 建议使用 GitHub Actions 的定时任务功能,避免遗漏每日任务
- 网易云音乐的 Cookie 两周左右就会过期,建议配置邮箱以便及时收到失效通知
- Cookie 自动刷新使用了该仓库的登陆API,如果害怕隐私泄露,可以自行fork该仓库并本地部署,将代码中刷新cookie的请求链接替换即可
- 本项目仅供学习交流使用
- 不得用于商业用途
- 使用本脚本产生的一切后果由使用者自行承担
使用过程中如果有任何问题或者建议,欢迎在Issues中提出,或者联系我
如果觉得这个项目对你有帮助,欢迎给个 Star 支持一下~