README
¶
🎵 ncmm
ncmm 是一个专门为网易云音乐人设计的命令行助手工具,基于 Go 语言(Go 1.25.0+)开发。
本项目旨在帮助网易云音乐人一键完成日常签到、自动执行黑胶 VIP 进阶任务(包括图文笔记自动发布与秒删、多粉丝号接力刷播放量等),帮助音乐人轻松获取并维持黑胶会员权益。工具严格遵循防风控设计,支持多账号安全隔离、播放量分摊回退、日推歌曲混听干扰以及本人播放拦截等安全策略。
🚀 核心功能
- 🔑 账号登录管理 (
ncmm login)- 扫码登录 (
qrcode):在终端命令行直接渲染并打印二维码字符,同时在本地生成二维码图片,用户使用手机网易云音乐 APP 扫码即可快捷登录。 手机号登录 ((⚠️ 存在风控,不建议使用)phone):支持使用短信验证码(发送验证码并在终端交互输入)或账号密码进行登录。- Cookie 导入 (
cookie):支持从文本或文件导入 Cookie。具备对 JSON 数组格式、Netscape 文本格式以及传统 HTTP Header 格式 Cookie 的自动识别和解析能力。 - CookieCloud 同步 (
cookiecloud):通过配置 CookieCloud 的服务器地址、UUID 和密码,自动拉取并过滤同步网易云音乐的 Cookie。
- 扫码登录 (
[!WARNING] 关于登录风控的重要提示 网易云音乐对非官方 IP/客户端的手机验证码和密码登录限制极其严苛,在非官方客户端登录极易高频触发图形滑块验证,甚至导致账号被保护性限制。强烈推荐使用 Cookie 导入/同步 (cookie/cookiecloud),以此保障账号安全与程序稳定。
-
🎵 模拟歌曲播放 (
ncmm playids)- 针对指定的
songId歌曲池(支持命令行参数直接传入,或从外部文本文件批量读取),通过接口请求与时延等待来模拟播放:- 获取播放链接:调用
SongPlayerV1接口获取歌曲的流媒体 URL。 - 模拟音频拉取:首次播放某首歌曲时,真实请求 CDN 地址拉取音频数据至内存以模拟完整流量交互;单次运行中相同的歌曲再次播放时直接读取内存记录,避免重复下载以节省网络带宽。
- 真实时长等待:前台展示进度条,程序会真实等待(
time.Sleep)该首歌曲对应的完整时间。 - 播放动作上报:歌曲播放结束后,调用网易云音乐的
WebLog接口,发送播放行为日志。 - 随机播放间隔:每首歌曲播放完毕后,在配置的
gap-min到gap-max秒范围内随机休眠,再开始下一首。
- 获取播放链接:调用
- 针对指定的
-
📊 每日播放目标控制与本地进度存储
- 播放状态和进度记录在本地嵌入式 Badger 数据库中。
- 随机每日上限:每天首次启动时,系统在配置文件设定的
[daily_min, daily_max]区间内随机生成一个今日播放目标并存入数据库。当天的多次运行将复用这一目标。 - 限额自增与达标退出:每播放成功一首,本地已播计数自增;当今日播放数量达到随机目标上限时,程序将自动跳过并退出,防止每日播放次数恒定。
- 单次运行目标:支持通过
[run_min, run_max]参数设定单次运行的播放歌曲数。
-
📅 每日任务签到与云贝任务一键闭环 (
ncmm sign)- 一键完成多种端签到与任务奖励申领:
- 多日常签到:自动完成音乐人日常签到(申领云豆奖励)、黑胶 VIP 会员签到(一键领取可领成长值)及云贝中心每日签到。
- 云贝做任务打卡套件:通过模拟真机前台操作与精心设计的防风控时延,自动打卡多项云贝日常任务并自动领取云贝奖励:
- 浏览会员中心:触发浏览任务并在前台随机浏览 15~25 秒自动打卡。
- 点赞评论/动态:自动点赞 10 个热门评论,在 3~10 秒随机延迟后取消点赞,避免账号被风控封禁。
- 探索小众歌曲:严格串行播放 10 首推荐小众歌曲。先批量拉取歌曲详情,每首播放
31~50秒后依次调用凭证分配接口和听歌上报接口,完美匹配官方风控模型。 - 关注歌手:关注首位热门歌手,3~10 秒后自动取消关注。
- 收藏歌曲:自动添加指定曲目至首个个人歌单,3~10 秒后从歌单中删除该歌曲(取消收藏)以避嫌。
- 红心歌曲:对第一首日推单曲进行红心,3~10 秒后自动取消红心。
- 预约领云贝 :自动查询状态,未预约则自动预约,已预约则自动领取云贝奖励。
- 精细化控制开关:支持在配置文件中通过独立配置项,选择性开启或关闭每一项具体做任务分支。
- 一键完成多种端签到与任务奖励申领:
-
🎖️ 音乐人黑胶会员进阶任务 (
ncmm musician-vip)- 自动查询进阶任务进度,按需执行并加速任务达标:
- 图文笔记发布:若笔记发布天数未达标,自动调用公共的 Note 笔记服务发布图文笔记,并在成功后自动删除。
- 播放量达标任务:若播放次数未达标,自动调用本地
playids的真实模拟播放与上报逻辑。播放过程严格遵守防风控的随机每日上限机制,降低封号风险。 - 多账号隔离:支持配置独立的
fan1.json作为进阶任务刷歌账号的 Cookie,确保主账号(音乐人账号)与辅助账号的安全隔离。
- 自动查询进阶任务进度,按需执行并加速任务达标:
-
📝 笔记单独发布功能 (
ncmm note)- 将图文笔记发布与秒删逻辑,作为一个独立的公共服务,可单独执行。
- 支持通过顶级命令
ncmm note独立拉起发布。发布时会自动从图片链接池下载图片上传,并随机选择配置的标题与正文进行发布。 - 支持设置发布成功后自动秒删(5~30秒随机等待),保证个人主页干净整洁。该服务也被
musician-vip与sign(云贝签到任务) 共享调用。
-
📁 灵活的
--home多账号工作目录机制- 支持通过全局参数
--home指定运行目录,自适应实现配置、Cookie、数据库、日志等多账号隔离:- 自动加载配置:未指定
-c/--config时,若--home目录中存在config.yaml,将自动加载它。 - 独立会话隔离:每个工作目录拥有独立的
cookie.json、Badger 数据库和日志文件,互不干扰。 - 登录路径自适应:在
ncmm login cookie -o <文件名>导出 Cookie 时,若输出路径为相对路径,将自动基于--home目录进行拼装,极大简化了多账号脚本的管理。
- 自动加载配置:未指定
- 支持通过全局参数
⚙️ 配置文件说明 (config.yaml)
默认配置文件路径为 ~/.ncmm/config.yaml(支持在运行时通过 -c 或 --config 指定)。配置字段如下:
# 配置文件版本
version: 1.0
# 顶级多账号管理
accounts:
# 音乐人主账号 Cookie 文件路径
primary: "${HOME}/.ncmm/cookie.json"
# 辅助刷量账号 Cookie 列表
secondary:
- "${HOME}/.ncmm/fan1.json"
- "${HOME}/.ncmm/fan2.json"
# log 日志模块配置
log:
# 应用名称
app: ncm
# 日志输出格式: text / json
format: text
# 日志级别: debug < info < warn < error
level: info
# 日志是否输出到标准输出 (控制台)
stdout: false
# 滚动日志配置
rotate:
# 日志文件保存路径
filename: "${HOME}/.ncmm/log/ncm.log"
# 单个日志文件最大大小 (单位: MB)
maxsize: 100
# 日志文件保留天数
maxage: 7
# 日志文件保留最大数量
maxbackups: 3
# 日志打印是否使用本地时间
localtime: true
# 日志文件是否启用 gzip 压缩
compress: true
# 网络模块配置
network:
# 是否开启 resty 调试日志输出
debug: false
# 全局请求超时时间
timeout: 60s
# 网络请求失败重试次数
retry: 3
# 全局自定义 User-Agent
user_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36"
# 本地数据存储 (主要记录播放状态进度)
database:
# 缓存驱动类型,目前仅支持 badger
driver: badger
# 缓存目录路径
path: "${HOME}/.ncmm/database/badger/"
# playids 播放指定歌曲配置 (原生独立播放)
playids:
# 每日播放目标随机下限 (每天首次启动时在此范围内随机生成当日目标)
daily_min: 50
# 每日播放目标随机上限
daily_max: 200
# 单次运行目标下限 (为 0 表示单次不设限,直到跑完今日剩余播放目标)
run_min: 0
# 单次运行目标上限
run_max: 0
# 歌曲与歌曲之间的静默间隔最小值 (单位: 秒)
gap_min: 10
# 歌曲与歌曲之间的静默间隔最大值 (单位: 秒)
gap_max: 30
# 默认歌曲 ID 列表(逗号分隔的字符串,与命令行 ids 采用并集去重合并)
ids: ""
# 默认歌曲 ID 文件路径(与命令行 ids-file 采用并集去重合并;支持本地路径或 http/https 远程链接)
idsFile: ""
# 独立播放账号控制(命令行参数未指定 --cookie-file 时生效)
enablePrimary: false # 默认不启用主账号刷歌
enableSecondaries: true # 启用所有辅助账号刷歌
# 签到任务配置
sign:
enablePrimary: true # 启用主账号日常签到
enableSecondaries: true # 启用所有辅助账号日常签到(增加其账号活跃度防风控)
identityCacheDays: 0 # 账号身份本地缓存天数
yunbeiTask:
enableViewVipCenter: true # 浏览会员中心任务开关
enableLikeComment: true # 点赞评论和动态任务开关
enableListenIndie: true # 探索小众歌曲任务开关
enableReserve: true # 预约领云贝任务开关
enableFollowArtist: true # 关注歌手任务开关
enableLikeSong: true # 红心歌曲任务开关
enableCollectSong: true # 收藏歌曲任务开关
enablePublishNote: true # 发布图文动态任务开关
enablePlayDailyRecommend: false # 是否启用云贝签到中的日推歌曲播放任务开关
# 模拟播放日推干扰配置
mixPlay:
enabled: true # 是否在模拟播放中掺杂日推歌曲作为干扰
dailyRecommendRatio: 0.3 # 日推混听干扰占比 (如 0.3 表示 30% 日推)
countTarget: false # 混听的日推歌曲是否计入播放目标(若为 false,则每日/单次目标仅统计主歌,日推只起风控干扰作用,不占任务额度;若为 true,则日推也算在目标数内)
# note 笔记发布公共配置
note:
# 笔记标题列表。每次发布图文笔记时会从中随机选择一个作为标题(若有 titlesFile 则会进行并集合并)
titles:
- "今日音乐分享"
- "音乐人的日常"
- "分享好听的歌"
- "每日歌单推荐"
# 动态发布标题列表文件路径 (支持本地路径与远程 http/https 链接,会与 titles 并集合并)
titlesFile: "https://tinyurl.com/4pjvv5j7"
# 笔记文字内容。每次发布时会从中随机选择一条作为正文(若有 messagesFile 则会进行并集合并)
messages:
- "分享一首好听的歌~"
- "音乐是最好的陪伴"
- "今天也要好好听歌呀"
- "用音乐记录生活"
# 动态发布文本列表文件路径 (支持本地路径与远程 http/https 链接,会与 messages 并集合并)
messagesFile: "https://tinyurl.com/457fuy38"
# 图片 URL 链接池。每次发布时会从中随机挑选一个 URL 进行下载并上传
imageUrls:
- "https://tinyurl.com/mruxfba5"
# 动态类型: 35=普通动态, 39=图文笔记
type: 39
# 是否在笔记发布成功后自动删除(秒删),以保持个人主页整洁。默认开启
autoDelete: true
# 音乐人黑胶会员进阶任务配置
musicianVip:
# 播放任务配置 (专门用于进阶任务的接力刷歌)
play:
# 进阶任务专属覆盖的歌曲 ID(留空继承 playids.ids,支持并集去重合并)
ids: ""
# 进阶任务专属覆盖的歌曲 ID 文件路径(留空继承 playids.idsFile,支持并集去重合并)
idsFile: ""
# 进阶任务单次运行的播放歌曲随机目标下限 (为 0 则继承 playids.run_min)
run_min: 0
# 进阶任务单次运行的播放歌曲随机目标上限 (为 0 则继承 playids.run_max)
run_max: 0
# 两首歌曲之间的最小随机等待间隔(秒,为 0 则继承 playids.gap_min)
gap_min: 0
# 两首歌曲之间的最大随机等待间隔(秒,为 0 则继承 playids.gap_max)
gap_max: 0
🛠️ 编译与安装
在项目根目录下执行以下命令进行编译:
go build -o ncmm.exe main.go
提示:在 Linux / macOS 等类 Unix 平台下,请编译为 ncmm:go build -o ncmm main.go。
📖 命令行使用说明
0. 全局通用参数
ncmm 命令支持以下全局通用参数,可以跟在主命令或任意子命令后:
-c/--config(String):指定配置文件config.yaml的路径。若未指定,且配置了--home,程序将自动尝试加载--home目录下的config.yaml;若仍未找到,默认尝试加载${HOME}/.ncmm/config.yaml;若该文件不存在,则会使用程序内置的默认配置值。--home(String):指定数据存储的家目录。默认值为当前用户的系统家目录(${HOME})。该家目录将用于存放运行日志(log/)、Cookie 状态文件(cookie.json)以及本地 Badger 数据库(database/)。通过配合不同--home路径,可以极简、安全地实现多账号数据物理隔离。--debug(Boolean):开启命令行调试模式。开启后,日志会强制输出到标准输出(Stdout),日志级别临时设为debug,并输出底层的网络请求调试信息。
1. 账号登录 (ncmm login)
进行歌曲播放前,必须执行登录操作以保存登录凭证(Cookie 数据默认存放在家目录下的 cookie.json 中)。
二维码扫码登录 (qrcode)
ncmm login qrcode [-t 超时时间] [-d 图片输出目录] [-l 二维码纠错等级]
# 示例:5分钟超时,二维码图片保存在当前目录
ncmm login qrcode -t 5m -d ./
-t/--timeout(Duration): 扫码等待和状态轮询的超时时长,默认5m(5分钟),可填10m、30s等。-d/--dir(String): 保存临时二维码图片qrcode.png的目录路径,默认当前工作目录。登录成功或超时后该文件会自动清理。-l/--level(Int): 二维码纠错等级(0-> 7%,1-> 15% 默认,2-> 25%,3-> 30%)。
手机号登录 (phone) (⚠️ 存在高风控拦截风险,不推荐)
phone)# 短信验证码登录 (不指定密码时会自动发送验证码,并在控制台交互提示输入验证码)
ncmm login phone 188xxxx8888
# 密码登录
ncmm login phone 188xxxx8888 -p "YourPassword"
-p/--password(String): 登录账号密码。不提供该参数时,系统将使用验证码登录。--countrycode(Int): 国家及地区代码,默认86(中国大陆)。-t/--timeout(Duration): 登录操作的超时时间,默认10m(10分钟)。
Cookie 直接导入 (cookie)
支持自动识别 Header 字符串、JSON 数组、Netscape 文件等多种 Cookie 格式,并可将解析出的标准化 JSON 格式 Cookie 写入到指定输出 file:
# 1. 导入 Cookie 字符串并默认保存至 cookie.json (对应主账号)
ncmm login cookie 'MUSIC_U=xxxx; __csrf=yyyy;'
# 2. 从外部 Cookie 文本文件导入(不指定 -o 时,系统会自动保存为 cookie.json)
ncmm login cookie -f ./cookie.txt
# 3. 导入辅助账号 Cookie 文件(不指定 -o,系统会根据输入文件名自动另存为 fan1.json)
ncmm login cookie -f ./fan1.txt
# 4. 手动指定输出的 Cookie 文件名(例如将本地的 my_fan.txt 导入为配置文件中声明的 fan1.json)
ncmm login cookie -f ./my_fan.txt -o fan1.json
# 5. 配合 --home 指定工作目录导入辅助账号(以下命令会自动将 fan1.txt 解析并保存到 run/ 文件夹下的 fan1.json 中)
ncmm --home run login cookie -f ./fan1.txt
-f/--file(String): 存放 Cookie 的输入文件路径。如果指定此参数,将从该文件中读取 Cookie。-o/--output(String): 保存解析后的 JSON Cookie 文件名。- 自动保存(无需手动指定
-o):如果您使用了-f ./fan1.txt导入,系统会自动为您另存为fan1.json。如果什么文件都没传(例如从命令行直接导入),默认保存为cookie.json(对应主账号)。 - 手动保存:如果您想给导入的 Cookie 起个别名,也可以用
-o强行指定文件名(例如-o fan2.json)。 - 存放目录:如果您填写的是相对路径(如
fan1.json),系统会自动将它保存到您通过--home参数指定的运行工作目录下,无需担心它生成到其他地方。
- 自动保存(无需手动指定
--format(String): 手动指定导入 Cookie 文件的格式(支持json、netscape或header),不指定则程序会自动探测并尝试三种格式。
CookieCloud 同步 (cookiecloud)
ncmm login cookiecloud -u <UUID> -p <密码> -s <服务器地址>
-u/--uuid(String): CookieCloud 账户的 UUID,必填。-p/--password(String): CookieCloud 账户的密码,必填。-s/--server(String): CookieCloud 服务器端点地址,默认http://127.0.0.1:8088。-t/--timeout(Duration): 请求 CookieCloud 服务器的超时时长,默认30s。-H/--headers(String): 请求 CookieCloud 时的自定义 HTTP 头部信息,格式为key1=value1,key2=value2。
2. 模拟播放 (ncmm playids)
该命令用于模拟播放指定歌曲列表。
ncmm playids --ids <songId列表> [--ids-file <文件>] [--num <播放数量>] [--gap-min <秒>] [--gap-max <秒>] [--daily-min <下限>] [--daily-max <上限>]
📌 参数说明
| 参数/Flag | 说明 | 默认值 |
|---|---|---|
--ids |
逗号分隔的歌曲 ID 列表 | 空 |
--ids-file |
从文本文件或远程网络 URL 读取歌曲 ID 列表(每行一个 ID,支持 # 注释,支持本地路径及 http:///https:// 远程链接) |
空 |
--num |
本次运行最大播放的歌曲数量(0 表示播到今日目标上限为止) |
0 |
--gap-min |
歌曲切换之间的最小随机等待间隔(秒) | 配置项 gap_min / 10 |
--gap-max |
歌曲切换之间的最大随机等待间隔(秒) | 配置项 gap_max / 30 |
--daily-min |
当天首次启动时,随机目标的最小歌曲数限制 | 配置项 daily_min / 50 |
--daily-max |
当天首次启动时,随机目标的最大歌曲数限制 | 配置项 daily_max / 200 |
--run-min |
单次运行的最小歌曲数量设定 | 配置项 run_min / 0 |
--run-max |
单次运行的最大歌曲数量设定 | 配置项 run_max / 0 |
💡 使用示例
# 1. 播放指定的多个歌曲 ID(在默认系统家目录下的 .ncmm 工作区运行)
ncmm playids --ids 3373818852,3373845775
# 2. 从歌曲 ID 列表文件读取并播放
ncmm playids --ids-file ./songs.txt
# 3. 调试播放:只播放 1 首,且无等待间隔
ncmm playids --ids 3373818852 --num 1 --gap-min 0 --gap-max 0
# 4. 配合 --home 在指定的隔离工作目录下运行播放任务(自动加载 run/config.yaml 并在该目录下轮询辅助账号进行播放)
ncmm --home run playids --ids 3373818852,3373845775
songs.txt 文件示例:
# 这是一行注释,系统会自动跳过
3373818852
3373845775
3. 每日任务签到 (ncmm sign)
该命令用于一键执行每日的多项任务签到,包含:音乐人签到、云豆领取、云贝中心日常签到与做任务自动打卡、VIP 乐签及成长值领取。
# 1. 在默认系统家目录工作区执行日常一键签到与云贝任务打卡
ncmm sign
# 2. 配合 --home 在指定的隔离工作目录下执行日常一键签到与做任务(自动加载 run/config.yaml 轮询该目录下的所有账号)
ncmm --home run sign
💡 运行流程
- 音乐人签到:自动调用
/api/creator/user/access完成音乐人中心签到。 - 领取云豆:自动拉取当前的音乐人任务列表,并自动对所有“已完成未领取”状态的任务领取对应的云豆奖励。
- 云贝日常签到:自动执行云贝中心每日签到。
- 云贝做任务(前置查询与串行执行):
- 自动查询当前账号的待完成任务列表。
- 依次串行执行未完成的浏览、点赞、小众歌曲听歌、关注歌手、红心、收藏歌曲、预约等任务,并在每项任务打卡成功后自动一键申领云贝。
- 特别针对“探索小众歌曲”任务,每首歌曲模拟听歌播放 31~50 秒,交替调用云贝凭证分配与听歌记录上报接口,避免触发系统的防作弊检测。
- VIP 乐签及成长值:若是 VIP 会员,则自动进行每日黑胶乐签,并一键领取当前可领取的成长值奖励。
💡 运行日志示例
[sign] >>>>>> 开始主账号签到 (run/cookie.json) <<<<<<
[当前账号信息] Uid: 1024****01 | 等级: 黑胶·伍 (Lv.5)
--- 音乐人任务 ---
✅ 音乐人签到成功
--- 云豆任务 ---
✅ 云豆领取成功: 任务="每日听歌15分钟", 奖励=20云豆
--- 云贝任务 ---
✅ 云贝签到成功
👉 成功获取云贝任务列表:
- 任务: 浏览会员中心 | 状态: 未完成 | 奖励: 100 云贝
- 任务: 探索小众歌曲 | 状态: 未完成 | 奖励: 150 云贝
- 任务: 点赞评论、动态 | 状态: 已完成 | 奖励: 200 云贝
👉 正在检查 [预约领云贝] 状态...
ℹ️ 当前预约状态: [上次奖励已领,新活动已预约],无须做预约或领奖操作
👉 开始执行 [浏览会员中心] 任务...
⏳ 已模拟触发浏览会员中心任务,随机浏览 21 秒...
✅ 浏览会员中心模拟结束
👉 开始执行 [探索小众歌曲] 听歌任务...
👉 已拉取到 10 首推荐小众歌曲,开始依次串行听歌打卡...
⏳ 正在听第 1/10 首小众歌曲: ID=3389465125 , 歌名=旧游记 (模拟播放 42秒)...
🎉 [听歌打卡 1/10] 成功申请云贝分配凭证
✅ [听歌打卡 1/10] (歌曲 ID: 3389465125) 听歌完毕,成功上报
...
✅ 探索小众歌曲 10 首打卡完毕
👉 重新获取任务列表并领取奖励...
🎉 成功领取云贝 [浏览会员中心] 任务奖励,获得云贝: 100
🎉 成功领取云贝 [探索小众歌曲] 任务奖励,获得云贝: 150
--- VIP签到 ---
✅ VIP乐签成功, 获得经验=10
✅ 黑胶成长值已一键领取成功
4. 音乐人黑胶会员进阶任务 (ncmm musician-vip)
该命令用于自动化完成网易云音乐人黑胶会员的“进阶任务”(musician-vip),从而保持或获取黑胶会员权益。
# 1. 在默认系统家目录工作区执行日常黑胶进阶任务
ncmm musician-vip
# 2. 配合 --home 在指定的隔离工作目录下执行日常黑胶进阶任务(自动加载 run/config.yaml 读取辅助账号接力刷播)
ncmm --home run musician-vip
💡 运行流程与原理
- 检测音乐人状态:拉取进阶任务列表
/api/nmusician/workbench/special/right/vip/info获得当前进度。 - 图文笔记发布任务:若进阶任务中“发布图文动态”天数未达标,程序会自动:
- 从
config.yaml配置文件中的imageUrls中随机挑选一个外网图片地址并将其下载。 - 上传图片资源(
/api/nos/token/alloc和 CDN 上传)。 - 随机选择一条
messages配置文字,发布图文笔记(/api/event/publish)。 - 笔记发布成功后,程序会在 10 秒后自动删除该动态(
/api/event/delete),保持个人主页的整洁。
- 从
- 有效播放次数任务:若进阶任务中“有效播放次数”未达标,程序将自动调用本地播放逻辑:
- 多辅助号接力刷播:程序会自动从配置的
accounts.secondary辅助号池中依次读取 Cookie 文件。主账号用于查询任务状态,辅助号池用于执行播放任务。 - 自动额度分摊与上限回退:若某个辅助号在播放过程中触发了本地今日随机上限,程序会自动计算该账号已贡献的有效主歌播放量,将剩余未完成的播放额度回退,并自动重新分配给下一个可用的辅助账号(例如从
fan1.json自动转移接力到fan2.json)继续完成,实现全自动化接力,直至任务完全达标或所有辅助号均达上限。 - 混听风控与本人过滤:在每个账号刷歌时,支持掺杂网易云每日推荐歌曲(占比 30% 可配)。程序会在任务启动时自动拉取一次日推列表(通常 30 首)并缓存在内存中,在每一轮(Round)播放开始前重新随机抽选对应占比的日推 ID 并与主歌洗牌打乱,既完美模拟了真实用户在列表中随机挑选播放的行为,又避免了频繁拉取接口触发反作弊系统。并且程序会自动拦截歌手/DJ本人歌曲的播放,如果发现播放歌池中含有当前听歌账号本人的作品,会自动跳过,避免无效自刷被平台惩罚。
- 多辅助号接力刷播:程序会自动从配置的
💡 多辅助号接力刷播运行日志示例
以下为 ncmm musician-vip 运行时的真实多账号接力日志(敏感的 UID、数字和昵称已脱敏混淆):
[musician-vip] 处理播放任务...
[musician-vip] 当前进度: 120/200, 今日尚缺有效播放: 80 次
[musician-vip] >>>>>> 分摊任务开始: 选用账号 (run/fan1.json), 本次需刷总数(含日推): 30 首, 尚缺主歌有效数: 80 次 <<<<<<
[2026-06-04 16:30:00] [playids] 当前账号:uid=1024****68 昵称="粉丝一号"
[2026-06-04 16:30:00] [playids] 今日风控目标: 已完成=50首, 今日随机上限=80首
[2026-06-04 16:30:00] [playids] 正在调用接口获取歌曲详情...
[2026-06-04 16:30:01] [playids] 启用混听干扰风控:自动拉取辅助账号每日推荐...
[2026-06-04 16:30:02] [playids] 混听风控设置:成功获取到 30 首可用日推,每轮将随机选出 9 首掺杂播放
[2026-06-04 16:30:02] [playids] 播放任务启动:本次目标刷播=30首, 今日已播累计=50首, 今日随机上限=80首
[2026-06-04 16:30:02] [playids] ====== 开始第 1 轮播放 (本轮共 30 首) ======
[2026-06-04 16:30:02] [playids] 正在播放:第1/30首,第1轮第1首,songId=1934****66, 歌名="歌曲A", 时长=4m10s
[2026-06-04 16:30:02] [playids] 开始拉取资源:songId=1934****66
[2026-06-04 16:30:05] [playids] 拉取完成:songId=1934****66, 来源=CDN, 已耗时=3.25s, 补等待=4m10s
[2026-06-04 16:30:05] [playids] 播放进度: 0s/4m10s (0%) ...
...
[2026-06-04 16:34:15] [playids] 播放进度: 4m10s/4m10s (100%) [====================]
[2026-06-04 16:34:15] [playids] 播放上报成功:songId=1934****66, 上报时长=250s
[2026-06-04 16:34:15] [playids] 本首结果:第1/30首,成功,songId=1934****66, 歌名="歌曲A"
...
[2026-06-04 16:45:10] [playids] 播放上报成功:songId=3381****72, 上报时长=120s
[2026-06-04 16:45:10] [playids] ⚠️ 触发今日风控随机播放总上限 (80首),优雅退出当前运行
[2026-06-04 16:45:10] [playids] 本次实际运行总上报数: 30,成功: 30
[musician-vip] 账号 (run/fan1.json) 播放完成,实际贡献主歌有效上报数: 21 次
[musician-vip] >>>>>> 分摊任务开始: 选用账号 (run/fan2.json), 本次需刷总数(含日推): 50 首, 尚缺主歌有效数: 59 次 <<<<<<
[2026-06-04 16:45:11] [playids] 当前账号:uid=1024****69 昵称="粉丝二号"
[2026-06-04 16:45:11] [playids] 今日风控目标: 已完成=0首, 今日随机上限=120首
[2026-06-04 16:45:11] [playids] 正在调用接口获取歌曲详情...
[2026-06-04 16:45:12] [playids] 启用混听干扰风控:自动拉取辅助账号每日推荐...
[2026-06-04 16:45:13] [playids] 混听风控设置:成功获取到 30 首可用日推,每轮将随机选出 15 首掺杂播放
[2026-06-04 16:45:13] [playids] 播放任务启动:本次目标刷播=50首, 今日已播累计=0首, 今日随机上限=120首
[2026-06-04 16:45:13] [playids] ====== 开始第 1 轮播放 (本轮共 50 首) ======
...
[musician-vip] ✅ 经过多个辅助账号的接力刷歌,主账号的播放任务已圆满达标!
5. 笔记单独发布 (ncmm note)
该命令用于单独发布图文动态/笔记。该服务也同时被 musician-vip 和 sign 任务内部直接调用。
ncmm note [--cookie-file <cookie文件路径>]
💡 使用示例
# 1. 使用默认配置中的主账号发布图文笔记(在系统默认家目录下运行)
ncmm note
# 2. 指定额外的 Cookie 文件路径发布
ncmm note --cookie-file run/cookie.json
# 3. 配合 --home 在指定的隔离工作目录下发布
ncmm --home run note
6. 多账号运行目录最佳实践 (--home)
在多账号运作或需要使用多个辅助号为自己(音乐人主账号)刷播放量的场景下,推荐使用 --home 构建如下目录结构:
run/
├── config.yaml # 多账号公共/专用配置文件(配置了顶级 accounts 以及 sign/mixPlay)
├── cookie.json # 主账号 cookie(网易云音乐人主号,由 login cookie 生成)
├── fan1.json # 辅助账号 1 cookie(用于帮主账号刷播放量,隔离存储)
├── fan2.json # 辅助账号 2 cookie(用于接力帮主账号刷播放量,隔离存储)
├── database/ # Badger 数据库存放目录(按账号 UID 隔离数据,无冲突风险)
└── log/
└── ncm.log # 运行日志
💡 多账号实战操作示例:
-
第一步:创建工作目录并放入配置文件 在本地建立文件夹
run/,并将模板config.yaml复制进去,根据需要配置顶级的accounts节点,加入主账号和各辅助账号的文件路径。 -
第二步:导入/登录主账号 主账号为网易云音乐人账号,登录结果会默认输出至
run/cookie.json:# 以扫码形式登录主账号 ncmm --home run login qrcode # 或使用 Cookie 导入主账号 ncmm --home run login cookie 'MUSIC_U=xxxx...' -
第三步:导入/登录各辅助账号 辅助账号为刷播账号。我们使用
-o参数分别将 Cookie 输出重定向为fan1.json、fan2.json... (输入文件可以是外部导出的 Cookie 文本,且-o使用相对路径时将自适应基于--home目录):ncmm --home run login cookie -f run/fan1.txt -o fan1.json ncmm --home run login cookie -f run/fan2.txt -o fan2.json -
第四步:一键运行签到与黑胶进阶任务
# 执行日常一键签到(会根据 sign 配置自动对主账号及所有辅助账号轮询签到) ncmm --home run sign # 执行黑胶会员进阶任务(会自动读取 accounts.secondary 下的全部辅助账号,为首选主账号接力分摊播放量) ncmm --home run musician-vip
📝 版本更新记录
📌 v1.1.1
- ✨ 新增功能:
- 云贝任务全覆盖与精细化控制:补全解耦全部 8 项云贝日常任务,新增独立配置开关,支持单任务启用 / 禁用与延迟时间自定义。
- 云贝任务集成动态发布:支持自动调用公共 Note 服务完成图文笔记发布与自动秒删。
- 云贝任务集成日推播放:新增后台播放任务,异步播放每日推荐曲目。
- 提供独立
ncmm note命令,可单独使用图文发布、秒删功能,支持多账号共用。
- 💫 体验优化:
- 重构小众歌曲探索任务:随机模拟听歌时长,交替完成凭证申请与打卡上报;强化流程日志,实时展示歌曲、播放时长等状态。
- 业务机制全面优化:前置任务状态校验,自动跳过已完成项;互动任务新增随机延迟取消逻辑。
📌 v1.1.0
- ✨ 新增功能:
- 上线音乐人多账号任务套件:新增
ncmm sign命令,支持主 / 辅助账号自动轮询,批量完成多端签到与任务领取,涵盖音乐人签到、云豆 / 云贝签到、黑胶 VIP 乐签等场景。 - 云贝任务全自动打卡:支持自动浏览会员中心、评论点赞 / 取消点赞、关注歌手、每日推荐红心、歌曲收藏 / 取消收藏等多项操作。
- 音乐人黑胶会员进阶任务:新增
ncmm musician-vip命令,支持任务进度检测、辅助账号接力刷播放量、自动发布图文笔记。 - 多辅助账号播放额度接力:主账号播放额度不足时,由辅助账号池分摊任务;单账号达到每日上限后,任务自动流转至下一账号。
- 新增混听风控过滤机制:自动混入辅助账号推荐曲目打乱播放规律,并拦截歌手本人作品,防范违规自刷行为。
- 多终端独立 UA 配置:支持为不同终端单独自定义请求标识,移除代码内固定配置。
- 音乐人身份本地缓存:配置缓存身份信息,拦截非音乐人账号的无效请求。
- 上线音乐人多账号任务套件:新增
- 💫 体验优化:
- 日志体系优化:清理冗余底层日志,重新划分日志分类,提升内容可读性。
- 🐞 Bug 修复:
- 修复特定场景下音乐人签到、黑胶乐签接口调用失败问题,完善签到状态判断逻辑。
- 修复登录态过期后,Cookie 更新与保存的边缘异常问题。
📌 v1.0.0
- ✨ 新增功能:
- 完成项目基础架构搭建:基于 Go 语言落地核心框架,搭建模块化目录结构。
- 支持多方式账号登录:包含扫码登录、手机号密码 / 短信验证码登录、批量导入 Cookie、CookieCloud 自动同步。
- 实现歌曲模拟播放能力:通过
playids命令解析流媒体地址、模拟播放并上报听歌数据,支持自定义随机等待间隔。 - 播放限额与进度存储:集成本地嵌入式数据库,可设置每日播放下限,运行达标后自动停止,规避平台风控。
- 全局自定义 UA 配置:支持在配置文件统一设置请求标识,提升请求隐蔽性。
- 💫 体验优化:
- 新增 CDN 音频缓存:首次播放从 CDN 加载音频流,同次运行内重复播放读取跳过下载,减少带宽消耗。
- 优化播放休眠逻辑:细化进度展示与静默等待的计算规则,运行表现更自然。
⚠️ 免责声明
本项目仅供学术研究和 Golang 学习探讨之用,请勿用于任何商业用途或违反网易云音乐服务条款的行为。对于使用本项目带来的任何账号封禁、数据丢失等不良后果,由使用者自行承担,本项目不提供任何连带保证。
🎖️ 鸣谢
| 项目 | 说明 |
|---|---|
| chaunsin/netease-cloud-music | 网易云音乐 API |
| crossgg/netease-cloud-music | 网易云音乐人任务 |
Documentation
¶
There is no documentation for this package.