曲库与许可(能不能商用,取决于许可,不取决于"是不是 AI 生成的")
一、两条供给路线
| 路线 | 工具 | 许可性质 | 何时用 |
|---|---|---|---|
| 在线曲源(优先) | bgmwrite.fetch(Jamendo / Freesound / Mubert / 客户自建索引) | 逐曲判定:CC0/CC BY/CC BY-SA/免版税;NC/ND/未知一律拒收 | 联网可用、需要成品编曲质感时 |
| 本地曲库(兜底) | bgmread.library(客户自建曲库 → 随仓兜底曲库 50 首 → 工位本地实测打标曲库) | 同白名单;随仓兜底曲库为所有者提供的可商用曲包选段(royalty-free,来源见 licenseSource) | 在线不可用/不想联网时的默认来源 |
| 自算作曲(最后兜底) | bgmwrite.compose | 本仓合成,无第三方权利,可商用、无署名义务 | 时长要贴合片子、要卡点、要可复现;前两级都没有合适曲目时 |
取曲顺序固定为「在线 → 本地 → 自算作曲」,每次降级都要在回执里写清原因(网络/未配置/许可不合规/无匹配)。
一·四、曲库打标(把"手上这批音乐"变成可检索曲库)
客户/工位手上的素材包(动辄上千首)用 bgmwrite.tag / bgm-cli tag 入库,纪律三条:
- 许可必须先声明(
license必填且落在可商用白名单):来源不明的音频不许入册(围栏 G-BGM8); 覆盖既有曲库索引必须显式allow_overwrite=true,避免一次误调用冲掉客户积累的曲库; - 不许猜:拍速拿不到稳定周期就
bpm=null, confidence=low;响度/真峰值/削波证据/结构分段/频谱/ 静音逐首都写进tag-evidence.json;内嵌 ID3 元数据优先于文件名(文件名常是简写),两者都缺就留空; - 低置信要人审:
confidence.style=low的曲目允许入册兜底,但用于客户交付前须人耳复核(围栏 G-BGM9)。
一·五、素材搬家与"客户单独下载文件夹"(自动关联纪律)
- 随文件夹分发的必须是相对路径索引:用
bgmwrite.library action=pack(bgm-cli library --pack)把tracks.json写进素材目录并转成relative—— 用户解压到任何位置(下载目录/外接盘/共享盘)都能被自动发现直接可用; - 绝对路径索引搬走后必须 rebind:按文件名+大小(
verify=size,默认)或内容哈希(verify=sha256)重新绑定, 三态如实回报matched / missing / ambiguous,不许在找不到文件时假装可用; - 自动发现是"便利"不是"隐式":发现到的曲库以
local-discovered身份排在显式配置(客户自建/随仓兜底/工位本地)之后, 同 id 先到先得;WORKLOOM_BGM_SCAN_ROOTS决定扫描根,WORKLOOM_BGM_DISCOVER=0可关。抽样核验通过才算"可用"。
顺带提一句"AI 生成音乐的许可陷阱":外部模型权重常带 NC/ND(如 MusicGen 权重 CC-BY-NC), 权重许可与产出物许可不是一回事——这也是本仓默认走"自算合成 + 已声明可商用曲包"的原因。
一·二、在线取源的纪律(新增)
一·三、目录预设与"我想听欧美流行 / 中国古典"这件事(2026-09-23)
bgmwrite.fetch / bgmwrite.best 支持 catalog 参数,把"要什么风格"翻译成各曲源的检索条件:
| catalog | 含义 | Jamendo 标签 | Freesound 检索词 |
|---|---|---|---|
western-pop | 欧美流行风格(现代流行/电子/舞曲),不是"某几首最新商业热单" | pop / dance / electronic | pop music loop upbeat |
chinese-classical | 中国古典/国风(古筝·二胡·琵琶·笛箫·民乐) | traditional / chinese / world | guzheng erhu pipa dizi chinese traditional |
cinematic-score | 影视配乐(管弦/氛围/推进) | soundtrack / classical / cinematic | cinematic orchestral score |
版权边界(必须对客户讲清,不能含糊):
-
"最新的欧美流行乐"(如当下榜单热单)不能抓、也不能进仓:它们是受版权保护的商业录音, 随开源仓分发或用于客户交付都属侵权。合法路径只有两条:
- 接已授权的商业曲库(自有订阅账号 / 客户自有曲库 → 用
generic-http指过去,或把已购曲目放进WORKLOOM_BGM_LIBRARY_DIR); - 用 CC0/CC BY/免版税的同风格曲目(
catalog=western-pop就是这条)。
- 接已授权的商业曲库(自有订阅账号 / 客户自有曲库 → 用
-
中国古典音乐:传统曲目(《春江花月夜》《高山流水》这类)的曲谱多为公有领域, 但录音带表演者与录音制作者权——所以要走 CC0/CC BY 或已授权曲源,不能随手抓一个录音就用。
-
工位只做三件事:检索(登记 provider)、许可闸、下载缓存;不爬取、不绕过鉴权、不伪造许可。
-
只对接公开 API 或客户自建索引,不做网页爬取、不绕过鉴权、不使用未授权源(围栏 G-BGM7 一票否决);
-
首次启用某 provider 或更换 provider 走人审(围栏 G-BGM6);凭据只从环境变量/受控秘密存储读,不回显、不落文件;
-
下载前先判许可(
license_ccurl/ Freesoundlicense/ Mubert 免版税声明):不可商用一律拒收,绝不"先下后审"; -
下载落工位缓存(
WORKLOOM_BGM_CACHE_DIR,缺省~/.workloom-bgm/cache),带 sha256;重复取曲命中缓存不再下载; -
体积上限与协议校验(只允许 http(s),
WORKLOOM_BGM_MAX_DOWNLOAD_BYTES缺省 80MB); -
需署名的曲目随交付产出 TASL 署名文件;在线取源失败时回退本地曲库,并在回执的
attempts里如实列出每一步失败原因。
二、许可白名单(可执行口径,围栏 G-BGM5)
| license | 可商用 | 需署名 | 备注 |
|---|---|---|---|
cc0-1.0 | ✅ | ❌ | 公有领域 |
cc-by-4.0 | ✅ | ✅ | 署名即可商用 |
cc-by-sa-4.0 | ✅ | ✅ | 衍生作品需同许可分发(注意:会传染) |
royalty-free | ✅ | ❌ | 以平台条款为准(留存订单/授权号) |
workloom-self-generated | ✅ | ❌ | 本仓自算合成 |
cc-by-nc-4.0 / cc-by-nd-4.0 / cc-by-nc-nd-4.0 | ❌ | — | 商用一票否决 |
| 未标注 / 来源不明 | ❌ | — | 按不合规处理(fail-closed) |
没有"先用了再说":许可不明的曲目不得进商用交付;G-BGM1 要求新曲库首次入片走人审。
三、署名(TASL)怎么做
CC BY / CC BY-SA 系许可要求署名,格式用 TASL:
"曲名(Title)" — 作者(Author) · 来源链接(Source) · 许可(License)
工位行为:bgmwrite.mix 带 attribution_out=CREDITS.md 时自动落盘署名文件;
bgmread.library --attribution-out 可在选曲阶段就出署名,便于提前排期。
署名文件属于交付物的一部分:随片说明/发布文案一起交付,不能只留在工位。
四、AI 生成音乐的许可陷阱(最容易踩的坑)
| 项目 | 代码许可 | 模型权重许可 | 能不能直接用在商用交付 |
|---|---|---|---|
| Meta MusicGen / AudioCraft | MIT | CC-BY-NC 4.0(禁止商用) | ❌ 不能(除非另行取得授权) |
| Mubert(商业 API) | — | — | ✅ 官方称生成/流式音轨免版税可商用(以合同为准) |
| 自算合成(本仓) | 本仓自有 | 无第三方权重 | ✅ |
结论:"AI 生成的"不等于"没有版权风险";权重许可、训练数据来源、平台条款都要看。
五、接入外部曲库的纪律
- 曲库目录 +
tracks.json由客户/工位提供(契约见library/bgm-library/README.md),工位不下载、不转存; - 每首曲目登记:标题/作者/来源/许可/路径/BPM/时长/情绪/题材;
- 商用交付只检索
commercialOk=true的曲目;NC/ND 在检索阶段就被过滤; - 新曲库首次入片走
G-BGM1人审;复用已核验曲目自动放行; - 平台凭据(API key / license token)只进受控秘密存储,不进文件、不进日志、不进事件。
六、与常见音乐库的关系(2026-09-22 核验口径)
- Jamendo:开发者 API 明确区分 Non-Commercial / Commercial 两种计划;曲库内 CC 许可混杂, NC 曲目商用需另行授权 → 只接 Commercial 计划并逐曲登记。
- ccMixter / Free Music Archive:逐曲 CC,需自动过滤 NC/ND 后使用。
- Mubert:商业 API,输出称免版税可商用;需登记合同/订单号作为授权证据。
- Tunetank MCP 端点(第三方 MCP 服务):未在本机验证其可用性与条款,接入前必须自行核验(不要因为"无需 API Key"就跳过合规)。
七、留证(出问题能自证)
每次交付必须能回答:这首曲子的许可文件/订单号在哪、署名有没有随片交付、谁在什么时候核验的。
对应落点:bgm_report 的 license 字段 + TASL 署名文件 + 审批记录(G-BGM1)+ 五元事件。
八、失败模式(症状 → 检测器 → 处置)
| 症状 | 检测器 | 处置 | 案例 |
|---|---|---|---|
| NC/ND 曲目混进商用交付 | 许可白名单过滤 + G-BGM5 硬闸 | 阻断并换曲;检索阶段只取 commercialOk=true | FC-BGM-003 |
| 需署名却没出 TASL 文件 | 交付物清单校验(CREDITS.md 是否随片) | 补署名后再交付;署名文件属交付物的一部分 | — |
| 许可未标注/来源不明仍被使用 | license 必填 + fail-closed 判定 | 按不合规处理:拒收,禁止"先用了再说" | FC-BGM-004 |
| 网页爬取/绕过鉴权取曲 | G-BGM7 一票否决 | 阻断并留痕;只允许公开 API 或客户自建索引 | — |
| 平台凭据进了文件/日志/事件 | 秘密扫描 + 凭据只从环境变量读的纪律 | 立即轮换凭据;按事故处理并清污 | — |
| 新曲库首次入片未经人审 | G-BGM1 审批记录检查 | 阻断入片,补审批后再用 | — |
| 低置信(style=low)曲目直接用于客户交付 | G-BGM9 人耳复核记录 | 补人耳复核;无记录不得交付 | — |
| 在线取源失败被当成"无曲可用" | 取曲顺序(在线→本地→自算作曲)+ attempts 回执 | 逐级降级并写清每一步失败原因,不得跳级或静默换曲 | FC-BGM-005 |
知识库引用
知识库:library/bgm-kb/ — SCORE-005 音乐许可合规速查(白名单、TASL 署名与 AI 音乐陷阱的判据依据)、SCORE-008 常见事故案例库(许可事故的复盘入口)。检索入口:library/bgm-kb/_INDEX.md