⚙️ 配置文件说明 (config.yaml)
August 4, 2026 · View on GitHub
默认配置文件路径为 ~/config.yaml(支持在运行时通过 -c 或 --config 指定)。配置字段说明如下:
# 配置文件版本
version: 1.1.13
# 顶级多账号管理
accounts:
# 音乐人主账号 Cookie 文件路径
main: "./cookie.json"
# 辅助账号 Cookie 列表
secondary:
- "./fan1.json"
- "./fan2.json" # 不要的账号可以删除或者前面加#注释
# 每个 Cookie 对应的移动端 X-antiCheatToken(从各自的移动端抓包获取,每个设备/账号唯一)
# 目前需要 antiCheatToken 的任务有:dailySongShare 和 vipMemberGift(领取)。
# 同时需要移动端 Cookie 和匹配的移动端 UA。没有配置 token 的账号会自动跳过需要该 token 的任务。
# iphone/ipad的UA填在network.user_agent.eapi; Android的UA两个都要填network.user_agent.xeapi、network.user_agent.eapi。
antiCheatTokens:
"./cookie.json": ""
# "./fan1.json": ""
# ncmm task 批量任务执行配置总开关。
# 若命令行没有指定任何具体任务(例如运行 ncmm task),则会执行 task 中所有配置为 true 的任务。
# 若命令行指定了任意具体任务(例如运行 ncmm task --sign --playids),则仅会执行这些被命令行明确开启的任务,而忽略其他未指定的任务。
task:
# 是否在批量执行中包含日常一键签到
sign: true
# 是否在批量执行中包含播放指定歌曲任务
playids: true
# 是否在批量执行中包含音乐人日常签到任务(每日)
musician-sign: true
# 是否在批量执行中包含音乐人VIP进阶任务(每月)
musician-vip: false
# 是否在批量执行中包含自动发布/删除图文笔记任务
note: false
# 是否开启每日分享歌曲并抽奖,需要填写antiCheatTokens
daily-song-share: true
# 是否开启赠送和领取VIP任务,需要填写antiCheatTokens
vip-member-gift: true
# 是否在批量执行中包含乐迷团任务
fansgroup: true
# 任务调度与队列配置
# 执行模式:
# - "by-task-group": 跨账号分群组串行。所有账号跑完快任务,再开始跑慢任务。
# - "by-account": 单账号自包容串行。每个账号执行完快任务和慢任务后,再轮到下一个账号。
mode: "by-task-group"
# 快任务列表。包含所有耗时秒级的常规打卡任务。正常不需要修改
fast_tasks:
- daily-song-share # 每日推歌发布任务
- VipTask # 黑胶 VIP 任务
- Reserve # 预约领云贝
- ViewVipCenter # 浏览会员中心
- LikeComment # 点赞评论和动态
- FollowArtist # 关注歌手
- LikeSong # 红心歌曲
- CollectSong # 收藏歌曲
- PublishNote # 发布图文动态
- musician-sign # 音乐人日常签到
- note # 自动发布/删除图文笔记任务
- vip-member-gift # 黑胶会员赠送和领取任务(云端)
- fansgroup # 乐迷团任务
# 慢任务列表。包含所有听歌、刷播放量等耗时数分钟到数十分钟的任务。
slow_tasks:
- ListenIndie # 探索小众歌曲 (约7分钟)
- PlayDailyRecommend # 日推歌曲播放 (约30~45分钟)
- playids # 播放指定歌曲任务
- musician-vip # 音乐人VIP进阶任务 (含播放任务)
# 网络模块配置
network:
# 是否开启 resty 调试日志输出
debug: false
# 全局请求超时时间
timeout: 60s
# 网络请求失败重试次数
retry: 3
# 全局自定义 User-Agent 配置
user_agent:
# 默认兜底 User-Agent。当下面 weapi 或 eapi 留空时会自动退回使用此值。
default: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) NeteaseMusicDesktop/2.3.17.1034"
# Web网页端与PC桌面客户端(weapi协议接口)所使用的 User-Agent
weapi: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) NeteaseMusicDesktop/2.3.17.1034"
# 移动手机APP客户端(eapi协议接口,如音乐人做任务、防风控套件相关API)所使用的 User-Agent
eapi: "NeteaseMusic 9.4.95/6806 (iPhone; iOS 16.6.1; zh_CN)"
# XEAPI/AEAPI Android 移动客户端 User-Agent。Android 每日推歌、Android vipMemberGift 需要填写抓包移动端 UA。
xeapi: ""
# playids 播放指定歌曲配置
playids:
enableMain: false # 默认不启用主账号刷歌
enableSecondaries: true # 启用所有辅助账号刷歌
# 每日播放歌曲随机下限 (每天首次启动时在此范围内随机生成当日上限目标)
daily_min: 40
# 每日播放歌曲随机上限
daily_max: 100
# 单次运行播放歌曲随机下限 (为 0 表示不限制,直到跑完今日剩余目标)
run_min: 20
# 单次运行播放歌曲随机上限
run_max: 40
# 播放间隔范围最小值(秒)
gap_min: 0
# 播放间隔范围最大值(秒)
gap_max: 5
# 默认歌曲 ID 池(会与命令行参数指定的列表进行并集去重合并)
ids: "3366663042,3373818852,3373845775,3372894655,3372989897,3370932775,3370931988,3381788772,3372050296,3372046163"
# 默认歌曲 ID 文件路径(支持本地路径与远程 http/https 链接,会与命令行参数指定的列表并集去重合并。支持单个字符串或数组列表形式的多源配置)
# 示例 (多源配置):
idsFile:
- "https://mum.cc.cd/34p793j2"
# - "./ids.txt"
# 播放账号控制(命令行参数未指定 --cookie-file 时生效)
# 签到任务配置
sign:
# 是否在签到过程中自动领取/完成日常云贝、VIP等进阶任务奖励
automatic: true
# 是否启用主账号日常一键签到(云贝、黑胶 VIP 签到)
enableMain: true
# 是否启用所有辅助账号日常一键签到
enableSecondaries: true
# 是否开启黑胶 VIP 会员任务(自动乐签、红心VIP歌曲、调音大师、云贝中心浏览、站外分享、免费福利及成长值领取)
enableVipTask: true
# 云贝精细化做任务配置
yunbeiTask:
# 浏览会员中心任务开关
enableViewVipCenter: true
# 点赞评论和动态任务开关
enableLikeComment: true
# 探索小众歌曲任务开关
enableListenIndie: true
# 预约领云贝任务开关
enableReserve: true
# 关注歌手任务开关
enableFollowArtist: true
# 红心歌曲任务开关
enableLikeSong: true
# 收藏歌曲任务开关
enableCollectSong: true
# 发布图文动态任务开关
enablePublishNote: true
# 分享歌曲任务开关
enableShareSong: true
# 是否启用云贝签到中的日推歌曲播放任务(31~45随机分钟)开关
enablePlayDailyRecommend: false
# 模拟播放日推干扰配置
mixPlay:
# 是否启用混听日推干扰风控策略
enabled: true
# 日推歌曲混听占比范围(例如 0.3 代表混听中含有 30% 比例 of 随机日推歌)
dailyRecommendRatio: 0.3
# 混听的日推歌曲是否计入播放目标(若为 false,则每日/单次目标仅统计主歌,日推只起风控干扰作用,不占任务额度;若为 true,则日推也算在目标数内)
countTarget: false
# note 笔记发布公共配置
note:
# 笔记标题列表。每次发布图文笔记时会从中随机选择一个作为标题(若有 titlesFile 则会进行并集合并)
titles:
- "今日音乐分享"
- "音乐人的日常"
- "分享好听的歌"
- "每日歌单推荐"
# 动态发布标题列表文件路径 (支持本地路径与远程 http/https 链接,会与 titles 并集合并。支持单个字符串或数组列表形式的多源配置)
# 示例 (多源配置):
titlesFile:
- "https://mum.cc.cd/4pjvv5j7"
# - "local/titles.txt"
# 笔记文字内容。每次发布时会从中随机选择一条作为正文(若有 messagesFile 则会进行并集合并)
messages:
- "穿梭在拥挤的人潮里,耳机隔开外界的喧闹,一首喜欢的歌,就是奔波路上最安稳的小港湾。"
- "生活难免有疲惫和委屈,好在总有动听的音乐相伴,一点点抚平心底积攒下来的负面情绪。"
- "暂时抛开生活里的琐碎压力,寻一处角落静静听歌,让思绪跟着音符漫无目的地自由飘荡。"
- "三餐四季,烟火寻常,闲时放一首爱听的曲子,再普通的日常也能品出温柔的滋味。"
- "年少听歌只觉得旋律悦耳,长大之后再细品歌词,才慢慢读懂人生里的遗憾与和解。"
- "夏夜晚风拂过肩头,耳机里的歌声缓缓流淌,把这个季节独有的浪漫与温柔尽数收藏。"
# 动态发布文本列表文件路径 (支持本地路径与远程 http/https 链接,会与 messages 并集合并。支持单个字符串或数组列表形式的多源配置)
# 示例 (多源配置):
messagesFile:
- "https://mum.cc.cd/457fuy38"
# - "local/messages.txt"
# 图片 URL 链接池。支持配置本地图片路径、直链,或本地及远程包含链接的文本列表(支持单个字符串或数组列表形式的多源配置。每次发布时会从中随机选择一个可用的图片并下载上传)
# 示例 (多源配置):
imageUrls:
- "https://picsum.photos/800/600"
# 动态类型: 35=普通动态, 39=图文笔记
type: 39
# 是否在笔记发布成功后自动删除(秒删),以保持个人主页整洁。默认开启
autoDelete: true
# 每日推歌发布配置
# 重要:每日推歌需要使用同一移动端会话抓到的移动端 Cookie、匹配的移动端 UA 和 antiCheatToken。
# Android Cookie 走 network.user_agent.xeapi;iPhone/iPad Cookie 走 network.user_agent.eapi。
# antiCheatToken 为空时任务会直接跳过;Android 线 network.user_agent.xeapi 为空时会跳过。
dailySongShare:
enableMain: true
enableSecondaries: false
songId: "" # 指定歌曲 ID。留空时继续从 playlistId 随机选歌;填写后固定分享该歌曲。
playlistId: "13848930701" #音乐合伙人歌单
# 指定 songId 时不会额外读取歌单封面,playlistCover 会降级到歌曲封面。
imageMode: "songCover" # 可选:songCover / playlistCover / custom
imageUrls: [] # songCover是自动歌单封面
titleMode: "note" # 可选:note / song
titles: []
# - "今日推荐:{song}"
# - "分享一首值得听的歌"
titlesFile: [] #titles、titlesFile、messages、messagesFile留空沿用note任务配置
messages: []
messagesFile: []
autoDelete: true # 是否自动删除
# 发布时候带上的话题
topics:
- name: "音乐合伙人的乐迷团"
id: "13827903"
type: 3
subType: 11
- name: "申请音乐合伙人"
id: "195425749"
type: 2
subType: 0
- name: "音乐合伙人星探计划"
id: "200773579"
type: 2
subType: 0
## 是否自动抽奖
lottery:
enabled: true
activityId: ""
autoRegister: true
# 黑胶会员免费送任务配置
# Android Cookie 会按 network.user_agent.xeapi 走 XEAPI;iPhone/iPad Cookie 会按 network.user_agent.eapi 走 EAPI。
# 领取需要配置 accounts.antiCheatTokens 中对应的 token,赠送不需要。
vipMemberGift:
enableMain: true # 主号是否启用任务
enableSecondaries: false # 辅助账号是否启用任务
enableGift: true # 是否发布赠送会员 token 到云端
enableClaim: true # 是否从云端领取会员
cloud:
baseUrl: "" # 云端服务地址,留空使用作者云端共享库
token: "" # 云端服务token,留空使用作者云端共享库
# 音乐人任务配置
musician:
# 是否启用主账号执行音乐人任务(日常签到、领云豆、发笔记及接力刷播放量)
enableMain: true
# 是否启用所有辅助账号执行音乐人任务
enableSecondaries: false
# 音乐人身份状态的本地缓存时间(单位:天),默认永久有效。
# 设置为 0 代表永久有效;设置为 -1 可关闭缓存。
identityCacheDays: 0
# 是否在VIP进阶任务中自动发布笔记(默认开启)
enableVipNote: true
# 是否在VIP进阶任务中自动接力刷播放量(默认开启)
enableVipPlay: true
# 播放任务配置 (专门用于进阶任务的接力刷歌)
play:
# 进阶任务专属覆盖的歌曲 ID(留空继承 playids.ids,支持并集去重合并)
ids: ""
# 进阶任务专属覆盖的歌曲 ID 文件路径(留空继承 playids.idsFile,支持并集去重合并。支持单个字符串或数组列表形式的多源配置)
idsFile: ""
# 进阶任务单日播放歌曲随机目标下限 (为 0 则继承 playids.daily_min)
daily_min: 0
# 进阶任务单日播放歌曲随机目标上限 (为 0 则继承 playids.daily_max)
daily_max: 0
# 进阶任务单次运行的播放歌曲随机目标下限 (为 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
# 乐迷团任务配置 (音乐合伙人的乐迷团)
fansgroup:
# 是否启用主账号执行乐迷团任务
enableMain: true
# 是否启用辅助账号执行乐迷团任务
enableSecondaries: true
# Fans group IDs 自己抓包 可以多个,默认是音乐合伙人的乐迷团.
groupIds:
- "1872529203038486609"
# 乐迷团发布笔记后是否自动删除(留空则继承 note.autoDelete 配置)
# autoDeleteNote: true
# 自动更新与版本检测配置
updater:
# 是否启用新版本检测与日志提醒(默认开启。每天最多请求一次 GitHub API)
check: true
# 是否在检测到新版本时自动下载并热替换二进制(默认开启。容器环境将自动忽略此项)
auto_update: true
# 代理镜像列表,由上至下顺序尝试直到成功。留空或未配置则使用内置默认列表。
# 系统会自动首先尝试直连,失败后才会按顺序尝试下方的代理镜像。
proxy_mirrors:
- "https://gh-proxy.com/"
- "https://ghproxy.net/"
- "https://githubproxy.cc/"
# 运行失败通知(策略在此;通道凭证见独立文件 notify.yaml)
# 仅在有失败或(on_skip=true 时的)跳过时,于进程结束汇总推送一条消息;成功不推送。
notify:
# 总开关,默认关闭
enabled: false
# 任务被跳过(如缺 antiCheatToken)时是否纳入汇总推送,默认关闭
on_skip: false
# 推送标题前缀,便于多机区分
title_prefix: "ncmm"
# 单通道请求超时
timeout: 10s
# 通道配置文件路径(相对路径相对于 config.yaml 所在目录;无自定义 config 时相对 --home)
file: "notify.yaml"
# log 日志模块配置
log:
# 应用名称
app: ncm
# 日志输出格式: text / json
format: text
# 日志级别: debug < info < warn < error
level: info
# 日志是否输出到标准输出 (控制台)
stdout: false
# 滚动日志配置
rotate:
# 日志文件保存路径
filename: "./log/ncm.log"
# 单个日志文件最大大小 (单位: MB)
maxsize: 100
# 日志文件保留天数
maxage: 7
# 日志文件保留最大数量
maxbackups: 3
# 日志打印是否使用本地时间
localtime: true
# 日志文件是否启用 gzip 压缩
compress: true
# 数据缓存配置 (主要记录播放状态进度)
database:
# 缓存驱动,目前仅支持 badger
driver: badger
# 缓存目录路径
path: "./database/badger/"
失败通知
运行失败汇总推送说明见 notify.md。
config.yaml 中仅配置策略(通道凭证放独立文件 notify.yaml,示例见仓库 config/notify.yaml):
notify:
enabled: false # 总开关,默认关闭
on_skip: false # 跳过是否纳入汇总推送,默认 false
title_prefix: "ncmm"
timeout: 10s
file: "notify.yaml" # 相对路径相对于 config.yaml 所在目录