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-sign/ncmm musician-vip/ncmm musician)- 支持细分命令独立调用,方便设置不同的运行频次(如每日运行签到,每月运行进阶任务),规避风控:
- 身份缓存风控前置:音乐人身份状态写入本地缓存,缓存命中非音乐人时直接跳过音乐人任务;缓存数据库不可用时不继续请求音乐人接口,避免普通账号误触发音乐人任务链路。
- 日常签到与云豆任务 (
ncmm musician-sign):每日运行,基于移动端 EAPI 完成音乐人身份确认、音乐人中心签到、周期/阶段任务列表刷新,并自动申领可领取的云豆奖励。 - 云豆领奖去重缓存:音乐人云豆领奖本地去重缓存,拦截重复领奖请求。
- 执行前后任务列表对比:
musician-sign会先显示执行前任务列表,再签到与领奖,最后显示执行后任务列表,任务状态统一展示为“已完成 / 未完成”。 - 黑胶会员进阶任务 (
ncmm musician-vip):每月或按需运行,自动查询 VIP 进阶任务进度(包括图文发布与有效播放量),支持使用enableVipNote和enableVipPlay精细化控制图文发布与接力刷歌任务。 - 兼容一键命令 (
ncmm musician):依次执行日常签到与 VIP 进阶任务,支持向下兼容。 - 多账号隔离与接力:支持配置独立的
fan1.json作为进阶任务刷歌账号,确保主账号(音乐人账号)与辅助账号的安全隔离。
- 支持细分命令独立调用,方便设置不同的运行频次(如每日运行签到,每月运行进阶任务),规避风控:
-
🎧 乐迷团任务 (
ncmm fansgroup)- 自动查询乐迷团任务进度,并按剩余进度执行未完成任务:
- 播放歌曲:从任务按钮参数中解析歌曲 ID,通过
weapi/feedback/weblog上报startplay事件完成播放任务,不等待整首歌播放结束。 - 发布图文笔记:复用
note配置中的标题、正文和图片池,按剩余次数发布图文动态,并可按配置自动删除。 - 分享歌曲:解析任务资源参数,按剩余次数提交分享进度。
- 点赞乐迷笔记:拉取乐迷团推荐内容,过滤本人和已点赞内容后按剩余次数点赞。
- 播放歌曲:从任务按钮参数中解析歌曲 ID,通过
- 任务状态只展示“已完成 / 未完成”,执行次数按
allProgress - currentProgress自动计算。
- 自动查询乐迷团任务进度,并按剩余进度执行未完成任务:
-
📝 笔记单独发布功能 (
ncmm note)- 将图文笔记发布与秒删逻辑,作为一个独立的公共服务,可单独执行。
- 支持通过顶级命令
ncmm note独立拉起发布。发布时会自动从图片链接池下载图片上传,并随机选择配置的标题与正文进行发布。 - 支持设置发布成功后自动秒删(5~30秒随机等待),保证个人主页干净整洁。该服务也被
musician与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 文件路径
main: "${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 时生效)
enableMain: false # 默认不启用主账号刷歌
enableSecondaries: true # 启用所有辅助账号刷歌
# 签到任务配置
sign:
enableMain: true # 启用主账号日常签到
enableSecondaries: true # 启用所有辅助账号日常签到
enableVipTask: true # 是否开启黑胶 VIP 会员任务
yunbeiTask:
enableViewVipCenter: true # 浏览会员中心任务开关
enableLikeComment: true # 点赞评论和动态任务开关
enableListenIndie: true # 探索小众歌曲任务开关
enableReserve: true # 预约领云贝任务开关
enableFollowArtist: true # 关注歌手任务开关
enableLikeSong: true # 红心歌曲任务开关
enableCollectSong: true # 收藏歌曲任务开关
enablePublishNote: true # 发布图文动态任务开关
enablePlayDailyRecommend: false # 是否启用云贝签到中的日推歌曲播放任务开关
# 批量任务执行配置
# 若命令行没有指定任何具体任务(例如运行 ncmm task),则会执行 task 中所有配置为 true 的任务。
# 若命令行指定了任意具体任务(例如运行 ncmm task --sign --playids),则仅会执行这些被命令行明确开启的任务,而忽略其他未指定的任务。
task:
# 是否在批量执行中包含日常一键签到
sign: true
# 是否在批量执行中包含播放指定歌曲任务
playids: true
# 是否在批量执行中包含音乐人日常签到任务(每日)
musician-sign: true
# 是否在批量执行中包含音乐人VIP进阶任务(每月)
musician-vip: false
# 是否在批量执行中包含自动发布/删除图文笔记任务
note: false
# 是否在批量执行中包含乐迷团任务
fansgroup: true
# 乐迷团任务配置 (音乐合伙人的乐迷团)
fansgroup:
# 是否使用 accounts.main 执行乐迷团任务
enableMain: true
# 是否使用 accounts.secondary 执行乐迷团任务
enableSecondaries: true
# 乐迷团发布笔记后是否自动删除(留空则继承 note.autoDelete 配置)
# autoDeleteNote: true
# 模拟播放日推干扰配置
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
# 音乐人任务配置
musician:
# 是否启用主账号执行音乐人任务(日常签到、领云豆、发笔记及接力刷播放量)
enableMain: true
# 是否启用所有辅助账号执行音乐人任务
enableSecondaries: false
# 音乐人身份状态的本地缓存时间(单位:天),默认永久有效。
# 设置为 0 代表永久有效;设置为 -1 可关闭缓存。
# 该缓存是 musician-sign 的风控前置:缓存命中非音乐人时直接跳过;
# Badger 数据库不可用时不会继续请求音乐人接口。
identityCacheDays: 0
# 是否在VIP进阶任务中自动发布笔记(默认开启)
enableVipNote: true
# 是否在VIP进阶任务中自动接力刷播放量(默认开启)
enableVipPlay: true
# 播放任务配置 (专门用于进阶任务的接力刷歌)
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)
进行歌曲播放前,必须执行登录操作以保存登录凭证。
[!IMPORTANT] 多账号管理与自动回写逻辑 (v1.1.2+):
- 默认身份:所有的登录子命令(扫码、手机号、Cookie 导入、CookieCloud 同步)**默认将账号作为辅助账号(Secondary)**处理,防止误覆盖主号。
- 主账号登录:必须显式传入
-m或--main参数(例如ncmm login qrcode -m),才会登录并保存为主账号(Main)。- 配置自动回写:登录成功后,程序会自动将新账号的 Cookie 路径写入/追加至本地
config.yaml配置文件的accounts节点下。如果是主账号,更新accounts.main;如果是辅助账号且该路径不在accounts.secondary中,会自动追加进去。- 自动添加昵称注释:回写时,程序将通过 YAML AST 语法树分析,自动在对应的账号配置行后添加
# 昵称: 用户的实际昵称注释,用于直观管理区分。同时,会完整保留其他未改动账号的历史注释。- 文件名智能推导:
- 主账号:路径由
accounts.main决定(若配置文件中没有该项,则默认保存为${HOME}/.ncmm/cookie.json)。- 辅助账号:优先根据原始输入推导文件名。如
cookie导入中通过-f <文件名>.txt导入,推导为<文件名>.json;使用phone <手机号>登录,推导为<手机号>.json;扫码(qrcode)或cookiecloud同步无原始输入,则默认以fan_<UID>.json形式自动命名。- 所有的相对路径都会自适应拼装至全局
--home目录下。
💡 顶级通用登录 Flag
所有登录子命令均支持以下通用 Flag(可以加在子命令后):
-m/--main(Bool): 是否作为主账号登录。默认false,即默认作为辅助(刷歌)账号登录。
二维码扫码登录 (qrcode)
ncmm login qrcode [-m] [-t 超时时间] [-d 图片输出目录] [-l 二维码纠错等级]
# 示例 1:作为辅助账号登录(默认),二维码图片保存在当前目录
ncmm login qrcode
# 示例 2:作为主账号登录(显式传入 -m)
ncmm login qrcode -m
-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)# 示例 1:作为辅助账号登录(控制台交互提示输入验证码)
ncmm login phone 188xxxx8888
# 示例 2:作为主账号登录并提供密码
ncmm login phone 188xxxx8888 -m -p "YourPassword"
-p/--password(String): 登录账号密码。不提供该参数时,系统将使用验证码登录。--countrycode(Int): 国家及地区代码,默认86(中国大陆)。-t/--timeout(Duration): 登录操作的超时时间,默认10m(10分钟)。
Cookie 直接导入 (cookie)
支持自动识别 Header 字符串、JSON 数组、Netscape 文件等多种 Cookie 格式,并可将解析出的标准化 JSON 格式 Cookie 写入到指定输出 file,且自动登记回写至配置文件中:
# 1. 导入 Cookie 字符串(默认作为辅助账号,自动另存为 fan_<UID>.json 并自动追加到 config.yaml)
ncmm login cookie 'MUSIC_U=xxxx; __csrf=yyyy;'
# 2. 显式作为主账号导入 Cookie 字符串(保存至主账号路径,默认为 cookie.json,并更新至 config.yaml)
ncmm login cookie 'MUSIC_U=xxxx; __csrf=yyyy;' -m
# 3. 从外部 Cookie 文本文件导入主账号(保存至主账号路径,默认为 cookie.json)
ncmm login cookie -f ./cookie.txt -m
# 4. 从外部文件导入辅助账号(不指定 -o,系统会根据输入文件名自动另存为 fan1.json,并自动回写追加到 config.yaml)
ncmm login cookie -f ./fan1.txt
# 5. 导入辅助账号并手动指定输出的 Cookie 文件名(例如导入为 my_fan.json,相对路径自适应拼装至 --home)
ncmm login cookie -f ./my_fan.txt -o my_fan.json
-f/--file(String): 存放 Cookie 的输入文件路径。如果指定此参数,将从该文件中读取 Cookie。-o/--output(String): 保存解析后的 JSON Cookie 文件名。- 自动保存(无需手动指定
-o):如果您使用-f ./fan1.txt导入,系统会自动为您另存为fan1.json;若直接传入 Cookie 字符串导入,主账号默认保存为cookie.json,辅助账号默认保存为fan_<UID>.json。 - 手动保存:如果您想给导入的 Cookie 起个别名,也可以用
-o强行指定文件名(例如-o fan2.json)。 - 存放目录:如果您填写的是相对路径(如
fan1.json),系统会自动将它保存到您通过--home参数指定的运行工作目录下。
- 自动保存(无需手动指定
--format(String): 手动指定导入 Cookie 文件的格式(支持json、netscape或header),不指定则程序会自动探测并尝试三种格式。
CookieCloud 同步 (cookiecloud)
ncmm login cookiecloud -u <UUID> -p <密码> -s <服务器地址> [-m]
-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)
该命令用于一键自动化完成网易云音乐人的日常日常任务(日常签到、周期/阶段任务领云豆)与黑胶会员“进阶任务”(musician),从而保持或获取黑胶会员权益。
# 1. 在默认系统家目录工作区执行日常音乐人日常与进阶任务
ncmm musician
# 2. 配合 --home 在指定的隔离工作目录下执行日常音乐人任务(自动加载 run/config.yaml 读取辅助账号接力刷播)
ncmm --home run musician
💡 运行流程与原理
- 检测音乐人状态:优先读取本地音乐人身份缓存;缓存命中非音乐人时直接跳过,缓存未命中时调用移动端 EAPI 身份接口并写入缓存。
- 第一阶段:日常任务:先拉取周期/阶段任务列表展示执行前状态,再调用
/api/creator/user/access完成音乐人中心签到,随后刷新任务列表并领取可领取云豆,最后展示执行后状态。 - 第二阶段:VIP进阶任务:若进阶任务天数未达标,自动调用公共的 Note 笔记服务发布图文笔记,并在成功后自动删除。
- 有效播放次数任务:若进阶任务中“有效播放次数”未达标,程序将自动调用本地播放逻辑:
- 多辅助号接力刷播:程序会自动从配置的
accounts.secondary辅助号池中依次读取 Cookie 文件。主账号用于查询任务状态,辅助号池用于执行播放任务。 - 自动额度分摊与上限回退:若某个辅助号在播放过程中触发了本地今日随机上限,程序会自动计算该账号已贡献的有效主歌播放量,将剩余未完成的播放额度回退,并自动重新分配给下一个可用的辅助账号(例如从
fan1.json自动转移接力到fan2.json)继续完成,实现全自动化接力,直至任务完全达标或所有辅助号均达上限。 - 混听风控与本人过滤:在每个账号刷歌时,支持掺杂网易云每日推荐歌曲(占比 30% 可配)。程序会在任务启动时自动拉取一次日推列表(通常 30 首)并缓存在内存中,在每一轮(Round)播放开始前重新随机抽选对应占比 of 日推 ID 并与主歌洗牌打乱,既完美模拟了真实用户在列表中随机挑选播放的行为,又避免了频繁拉取接口触发反作弊系统。并且程序会自动拦截歌手/DJ本人歌曲的播放,如果发现播放歌池中含有当前听歌账号本人的作品,会自动跳过,避免无效自刷被平台惩罚。
- 多辅助号接力刷播:程序会自动从配置的
💡 音乐人签到接口实现说明
musician-sign已从旧版 WEAPI 音乐人签到实现切换为移动端 EAPI 链路,核心接口包括:/api/nmusician/workbench/musician/role/get:确认当前账号是否为音乐人。/api/creator/user/access:完成音乐人中心签到,成功依据为code=200 && data=true。/api/nmusician/workbench/mission/cycle/list:获取周期任务列表,包含音乐人中心签到任务。/api/nmusician/workbench/mission/stage/list:补充阶段任务列表。/api/nmusician/workbench/mission/reward/obtain/new:领取云豆奖励,成功依据为code=200。
- EAPI 通用请求字段使用 Cookie 中的
deviceId/sDeviceId,默认os=iOS、verifyId=1、e_r=true,并沿用项目内 EAPI 加解密能力。 - 统一请求层已支持 EAPI 加密响应内部 gzip 解压,并按真实 URL 域名设置
Host请求头,兼容interface3.music.163.com音乐人接口。 - 云豆领奖成功后会写入本地缓存,缓存 key 按账号 Cookie 文件、
userMissionId和period区分,默认保留 45 天,避免重复领奖调用。
💡 musician-sign 运行日志示例
[musician sign] >>>>>> 开始主账号音乐人日常签到 (.ncmm/cookie.json) <<<<<<
👉 检查音乐人身份...
✅ 已认证音乐人 | 用户ID: 436078691 | 音乐人ID: 124014713
👉 [第一阶段] 开始执行音乐人日常任务 (日常签到与云豆领奖)...
👉 [deviceId] 使用 Cookie 中的设备 ID: YD-xxxxxxxx
👉 音乐人任务列表(执行前)...
- 任务: 音乐人中心签到 | 未完成 | 进度: 0/0 | 云豆: 1
- 任务: 发布一条歌曲MV | 未完成 | 进度: 0/0 | 云豆: 5
👉 开始音乐人日常签到...
✅ 音乐人日常签到成功
🎉 成功领取 [音乐人中心签到]云豆奖励:+1
👉 音乐人任务列表(执行后)...
- 任务: 音乐人中心签到 | 已完成 | 进度: 1/1 | 云豆: 1
- 任务: 发布一条歌曲MV | 未完成 | 进度: 0/0 | 云豆: 5
[musician sign] 所有音乐人日常签到任务执行完毕!
💡 多辅助号接力刷播运行日志示例
以下为 ncmm musician 运行时的真实多账号接力日志(敏感的 UID、数字和昵称已脱敏混淆):
[musician] 处理播放任务...
[musician] 当前进度: 120/200, 今日尚缺有效播放: 80 次
[musician] >>>>>> 分摊任务开始: 选用账号 (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] 账号 (run/fan1.json) 播放完成,实际贡献主歌有效上报数: 21 次
[musician] >>>>>> 分摊任务开始: 选用账号 (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] ✅ 经过多个辅助账号的接力刷歌,主账号的播放任务已圆满达标!
5. 乐迷团任务 (ncmm fansgroup)
该命令用于执行当前账号已加入乐迷团的日常任务,也可以通过 ncmm task --fansgroup 或配置 task.fansGroup: true 由批量任务入口自动执行。
# 1. 使用默认配置中的乐迷团账号执行
ncmm fansgroup
# 2. 指定单个 Cookie 文件执行
ncmm fansgroup --cookie-file run/fan1.json
# 3. 配合 --home 在指定工作目录下执行
ncmm --home run fansgroup
# 4. 通过批量任务入口只执行乐迷团任务
ncmm --home run task --fansgroup
💡 运行流程与原理
- 账号选择:命令行传入
--cookie-file时只执行该账号;否则根据fansGroup.enableMain和fansGroup.enableSecondaries读取accounts.main/accounts.secondary。 - 任务状态查询:自动拉取乐迷团详情、加入状态和任务列表,日志中按“已完成 / 未完成”展示当前进度。
- 按剩余进度执行:每项任务执行次数按
allProgress - currentProgress计算,例如发布图文笔记 (0/2)会发布 2 次,(1/2)只补 1 次。 - 播放任务:解析任务按钮中的
songIds,直接上报weapi/feedback/weblog的startplay事件;网页侧点击播放即可完成的任务,不需要等待整首歌曲播放完成。 - 图文、分享、点赞任务:图文任务复用
note配置发布并按fansGroup.autoDeleteNote/note.autoDelete自动删除;分享任务提交分享进度;点赞任务从乐迷团推荐内容中过滤本人和已点赞帖子后执行。
💡 运行日志示例
[task] >>> 开始执行 [乐迷团任务] <<<
[fansgroup] 开始处理账号 (./fan1.json)
[fansgroup] 当前账号: uid=1024****68 nickname="粉丝一号"
[fansgroup] 查询粉丝团详情...
[fansgroup] 粉丝团: 音乐合伙人的乐迷团 (boardId=13827903)
[fansgroup] 已加入:Joined=true, Level=1 (萌新乐迷)
[未完成] 播放歌曲 (0/2)
[未完成] 发布图文笔记 (0/2)
[已完成] 分享歌曲 (1/1)
[未完成] 点赞乐迷笔记 (0/5)
[fansgroup] 处理播放任务 [播放歌曲](剩余 2/2)
触发 startplay,选择歌曲 3387115952
已上报 startplay (1/2)
触发 startplay,选择歌曲 3357361025
已上报 startplay (2/2)
[fansgroup] 处理发布笔记任务 [发布图文笔记](剩余 2/2)
[1/2] 准备发布动态:"分享好听的歌"
[1/2] 动态发布成功,id=37652846861
删除动态成功
[2/2] 准备发布动态:"分享好听的歌"
[2/2] 动态发布成功,id=37652859862
删除动态成功
[fansgroup] 处理点赞任务 [点赞乐迷笔记](剩余 5)
[1/5] like success
...
[fansgroup] 点赞完成:5/5
6. 笔记单独发布 (ncmm note)
该命令用于单独发布图文动态/笔记。该服务也同时被 musician 和 sign 任务内部直接调用。
ncmm note [--cookie-file <cookie文件路径>]
💡 使用示例
# 1. 使用默认配置中的主账号发布图文笔记(在系统默认家目录下运行)
ncmm note
# 2. 指定额外的 Cookie 文件路径发布
ncmm note --cookie-file run/cookie.json
# 3. 配合 --home 在指定的隔离工作目录下发布
ncmm --home run note
7. 多账号运行目录最佳实践 (--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节点,后续登录时系统会自动帮我们回写补全。 -
第二步:登录/导入主账号 主账号为网易云音乐人账号。我们必须显式提供
-m参数,以便让程序将其作为主账号处理并根据accounts.main的路径(或默认的cookie.json)保存:# 示例 1:以扫码形式登录主账号(推荐) ncmm --home run login qrcode -m # 示例 2:使用 Cookie 导入主账号 ncmm --home run login cookie 'MUSIC_U=xxxx...' -m登录成功后,主账号的 Cookie 路径(例如
cookie.json)与对应昵称注释会自动回写并绑定在run/config.yaml的accounts.main下。 -
第三步:登录/导入各辅助账号 辅助账号为刷播放量的粉丝小号。所有的登录子命令默认即登录为辅助账号,无需特别指定。 我们只需使用
-f导入(或直接登录),程序会自动根据输入文件名推导目标.json文件名并保存,同时自动追加路径回写至run/config.yaml中的accounts.secondary配置列表中,无须手动编辑配置文件:# 示例 1:导入小号 fan1.txt,系统会自动推导并保存为 fan1.json 并回写配置 ncmm --home run login cookie -f run/fan1.txt # 示例 2:导入小号 fan2.txt ncmm --home run login cookie -f run/fan2.txt # 示例 3:如果希望手动强制另存为特定文件名,依然可以使用 -o 指定 ncmm --home run login cookie -f run/other.txt -o another_fan.json每一次导入/登录成功后,
config.yaml中都将自动增加对应行的# 昵称: xxx注释,帮助直观辨别各账号。 -
第四步:一键运行签到与黑胶进阶任务
# 执行日常一键签到(会根据 sign 配置自动对主账号及所有辅助账号轮询签到) ncmm --home run sign # 执行每日音乐人签到与云豆领取(推荐每日自动运行) ncmm --home run musician-sign # 执行黑胶会员进阶任务(包含图文发布与辅助号接力刷播,可按需或每月自动运行) ncmm --home run musician-vip # 兼容一键执行上述日常与进阶任务 ncmm --home run musician
📝 版本更新记录
📌 v1.1.5
-
✨ 新增功能
- 拆分音乐人相关命令,分为日常签到云豆任务、月度VIP进阶任务两个独立指令,保留原命令做兼容,支持分频次调度。
- 实现音乐人身份缓存,按账号隔离存储,减少无效请求、提升多账号环境安全性。
- 新增音乐人 VIP 进阶任务子项开关,可单独控制图文笔记发布、辅助号接力刷歌功能启停。
- 新增音乐人云豆领奖本地去重缓存,避免重复请求领奖接口。
-
🏗️ 架构与规范优化
- 合并冗余的音乐人笔记子命令,统一归属至全局
ncmm note笔记命令。 - 统一配置项、命令行参数、顶层命令的命名风格。
- 统一请求层支持 EAPI 加密响应内部 gzip 解压。
- 合并冗余的音乐人笔记子命令,统一归属至全局
-
💫 体验优化
- 签到类任务关闭时,控制台输出清晰的跳过提示,避免用户误判为功能异常
- 调整
musician-sign音乐人签到控制台日志输出逻辑,按照「执行前任务列表 → 签到 → 领奖 → 执行后任务列表」闭环展示。
-
🐞 Bug 修复
- 修复
musician-sign音乐人签到接口失效问题,切换为移动端 EAPI 接口,统一完成身份校验、签到、任务刷新及云豆领取流程。
- 修复
📌 v1.1.4
-
✨ 新增功能
- 新增乐迷团自动化任务
ncmm fansgroup,支持独立命令执行,也可通过批量任务入口ncmm task --fansgroup或配置项自动触发。 - 任务会根据配置筛选主账号/辅助账号,自动查询乐迷团任务完成进度,并按剩余次数补齐任务。
- 实现播放、图文发布、分享、点赞全类型乐迷团任务自动化,图文内容可依据配置规则自动删除。
- 新增乐迷团自动化任务
-
🏗️ 架构优化
- 日常签到模块瘦身解耦与服务化重构
- 将原本臃肿庞大的
sign核心业务进行模块化拆分,解耦为职责单一的细分子服务(如黑胶 VIP 任务、云贝中心日常任务),大幅提升代码可维护性与扩展性。 - 重新定位
sign为普通账号日常签到,彻底移除其内所有跟音乐人相关的任务逻辑与账号身份校验,使业务边界更加清晰。
- 将原本臃肿庞大的
- 音乐人模块全局重命名与重构
- 将原
musician-vip模块与命令全局更名为musician。 - 将日常音乐人任务(日常签到与云豆领奖,从原
sign中拆出)与 VIP 进阶任务统一规范为两阶段顺序执行。 - 将原本位于
sign节点下的音乐人身份缓存参数identityCacheDays迁移并移至musician控制参数下,实现配置概念的深度一致。
- 将原
- 配置文件自动向下兼容迁移
- 启动时若读取到旧版配置文件,程序会自动迁移重构,提供零感平滑升级体验。
- 日常签到模块瘦身解耦与服务化重构
-
💫 体验优化
- 任务开关与跳过状态日志精细化
- 确保即便所有任务开关全部为
false,也能正常打印并告知每个任务的跳过状态。 - 差异化提示跳过来源:在批量执行(
task)时,精确区分任务是因为“命令行未指定”还是“配置文件已关闭 (task.xxx = false)”。 - 增加账号级与配置级细分跳过提示:当单独执行子任务(
musician/sign/playids)因enableMain、enableSecondaries关闭或对应账号未配置时,在控制台打印详实的提示日志,方便快速定位未执行缘由。
- 确保即便所有任务开关全部为
- 任务开关与跳过状态日志精细化
-
🐞 Bug 修复
- 移除 note.go 中冗余的自定义解析逻辑,统一依托底层 Cookie 加载机制,修复编译异常报错。
📌 v1.1.3
-
✨ 新增功能:
- 新增黑胶 VIP 任务打卡总开关
enableVipTask,配置文件中默认开启,支持多账号轮询。 - 新增一整套黑胶 VIP 会员日常任务自动化链路,可一键打卡并自动申领成长值:
- 黑胶乐签打卡:对接底层 EAPI 打卡接口,并重构任务状态判定逻辑,前置拦截签到流程,跳过列表已完成过滤,解决因服务端缓存误判导致的漏签、签到失效问题。
- 红心 3 首 VIP 歌曲:随机拉取热门 VIP 歌单执行红心操作,经过随机时延后自动取消红心,在满足打卡要求的同时,避免改动用户原有收藏歌单。
- 浏览停留模拟:支持查看AI调音大师、浏览云贝中心、分享单曲到站外等跳转行为,模拟客户端真实停留时长。
- 免费领福利打卡:对接新版权益中心 EAPI,自动拉取常驻免费商家券池并领取首张优惠券,完成福利打卡,适配当前版本规则。
- 任务执行完毕后,自动调用 EAPI 一键申领接口,统一领取黑胶 VIP 任务对应的全部成长值奖励。
- 新增黑胶 VIP 任务打卡总开关
-
💫 体验优化:
- 请求参数脱敏:移除接口中硬编码的设备和隐私字段。
- 日志友好回显:移除模拟页面加载日志中冗长的跳转链接,精简控制台输出内容。
📌 v1.1.2
- ✨ 新增功能:
- 配置文件全面支持多源加载,核心配置项兼容本地文件 / 远程链接,支持单路径或 YAML 数组格式。
- 多账号登录配置自动回写:登录成功后,自动将 Cookie 路径写入 / 追加至
config.yaml配置文件。 - 账号智能注释:自动为配置文件添加用户昵称注释,直观区分多个辅助账号。
- 智能文件命名:辅助账号自动生成规范命名文件,无参数时自动兜底命名。
- 主账号显式登录:新增命令行参数,可指定登录主账号,防止误覆盖原有主账号。
- 💫 体验优化:
- 播放任务支持高容错运行,单源加载失败不影响整体任务执行。
- 新增网络超时限制,防止无效链接导致程序卡死。
- 完善笔记发布图片多源与智能探测机制,支持本地图片、直链及包含链接的文本列表。
- 优化笔记发布图片下载逻辑,支持随机重试,提升发布成功率。
- 配置文件无感自动升级:启动时自动兼容旧版配置字段,完整保留文件格式与用户自定义注释。
- 云贝预约领奖流程优化:支持在奖励领取成功后自动检查并进行新活动预约。
- 优化日推模拟听歌任务:将后台并发播放改为前台串行执行,放在账号任务的最后执行,避免多账号间日志交错混乱。
- 优化云贝领奖流程:在领取完云贝任务奖励后,再次自动获取并展示该账号下各任务的最终完成状态。
📌 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 学习探讨之用,请勿用于任何商业用途或违反网易云音乐服务条款的行为。对于使用本项目带来的任何账号封禁、数据丢失等不良后果,由使用者自行承担,本项目不提供任何连带保证。
🎖️ 鸣谢
👥 贡献者
| 贡献者 | 说明 |
|---|---|
| crossgg | 乐迷团任务 |
📦 参考项目
| 项目 | 说明 |
|---|---|
| chaunsin/netease-cloud-music | 网易云音乐 API |
| crossgg/netease-cloud-music | 网易云音乐人任务 |
| 所有依赖的开源项目 |
Documentation
¶
There is no documentation for this package.