AI 音乐生成与发行一体化工作台 —— 从 Suno 音乐生成 到 音乐平台自动化上架发行,一条龙完成,填表到只差最后一下,那一下留给人。
本仓是专注于音乐的完整闭环工具:
- 上游生成:直连 Suno 官方 API(支持生成、轮询、自愈解密下载、320k MP3 自动转码)。
- 自有曲库:本仓维护独立 sqlite(
~/.suno-publisher/suno-publisher.db的tracks表),与发行台账一体化管理。 - 下游发行:汽水音乐 / 网易云音乐人 / 腾讯音乐人 上架台账、填表自动化与收益对账。
- 浏览器驱动:全链路自动化严格统一使用
ego-browser(Ego lite),复用用户日常登录态,支持 TaskSpace 进程组隔离与生命周期管理。
┌────────────────────────────────────────────────────────┐
│ Suno Publisher (8867) │
│ │
│ 【生成区】 │
│ Suno API 客户端 ──► 自动解密下载 ──► 转 320k MP3 ──┐ │
│ │ │
│ 【本仓曲库】 ▼ │
│ tracks (319+ 首) ──► pending 计算 (待发行 307+ 首) │
│ │ │
│ 【发行区】 ▼ │
│ releases / listings / albums / platform_accounts │
│ │ │
│ ▼ │
│ ego-browser (Ego lite) ──► 自动填表 (停在最后签署) │
└────────────────────────────────────────────────────────┘
- 音乐生成与下载闭环:
- Suno v6 模型直出,支持灵感提示词(
gpt_description_prompt)与纯音乐模式。 - 自动解密媒体流(AES-GCM 交换密钥 + AES-CTR 解密),自动跳过 73 字节未就绪残块,前 8 字节
ftyp完整性校验。 - 自动转码 320k MP3(避免大 WAV 文件导致平台音频解析报错)。
- Suno v6 模型直出,支持灵感提示词(
- 发行台账与状态流转:
- 发行台单页(
web/ui/index.html,端口 8867):生成、待发行、已上架、平台账号一体化展示。 - 平台账号、专辑与收益归集(
listings与publish_events)。
- 发行台单页(
- 全链路 Ego lite 自动化:
- 遵循
browser-tooling.md,驱动统一走core/browser.py(基于ego-browser nodejs)。 - 固定
suno-publisherTaskSpace,自动复用与销毁,杜绝孤儿空间。 - 默认
--dry-run保护,停在最终签署协议前(保留人工最终签署安全边界)。
- 遵循
python3 -m venv .venv && .venv/bin/pip install -e .
# 1) 启动一体化服务(端口 8867)
.venv/bin/python web/app.py
# 打开 http://127.0.0.1:8867 查看生成与发行台
# 2) 运行测试
.venv/bin/python -m pytest tests/ -q所有自动化脚本驱动统一使用 ego-browser(Ego lite):
| 脚本 | 干什么 | 运行说明 |
|---|---|---|
publish_qishui.py |
汽水发布填表,停在签署协议 | 默认 --dry-run,加 --no-dry-run 真实填表 |
sync_netease.py |
网易云作品目录 / 专辑 / 账号(公开 API) | 实跑通过 |
sync_qq.py |
QQ 音乐公开接口同步 | 实跑通过 |
sync_netease_account.py |
账号级播放 / 粉丝 / 可提现收益 | 走 ego-browser 读取 |
sync_netease_stats.py |
单曲级近 30 日播放量(折算实测单价) | 走 ego-browser 读取 |
sync_qishui.py |
汽水控制台作品状态同步 | 走 ego-browser 读取 |
pack_upload.py |
本地打包待上传素材(手工上传兜底) | 产物含 MP3 与 3000×3000 封面 |
check_login.py |
探测音乐平台登录态 | 走 ego-browser,输出 JSON |
migrate_tracks_from_voxflow.py |
历史曲库导入 | 幂等按 clip_id 判重导入 |
gen_chinese_vocal.py |
生成女生 Vocal 中国风实验曲 | 走 Suno API,需登录态 |
rebuild_original.py |
去 AI 指纹原创重构 | 独立音频环境 .venv-audio,见下节 |
verify_deprint.py |
去指纹效果量化验证 | 输出频谱相似度 / 相位残差 / 母带规格 |
平台对「AI 生成声明」作品只给普通版税,拿不到独家原创激励的最高单价。
rebuild_original.py 把 AI 音频当作素材重新制作一遍,产出可申报独家原创的成片:
原始 AI 音频
│
├─ ① Demucs 分轨 vocals / drums / bass / other
│ → 器乐轨丢弃原音频底纹,人声轨换声纹
├─ ② 人声去声纹 变速变调 + STFT 相位扰动 + EQ 移动
├─ ③ 器乐重建 basic-pitch 提取 MIDI → fluidsynth + GM 音色库重渲染
│ → 每个音频样本由本机合成器渲染,物理上无 AI 底纹
└─ ④ 母带 重新混音 + loudnorm -14 LUFS + 峰值限幅
准备音频环境(一次性):
/opt/homebrew/bin/python3.10 -m venv .venv-audio
.venv-audio/bin/pip install "numpy<2" demucs basic-pitch pretty_midi pyloudnorm librosa soundfile "setuptools<81"
brew install fluidsynth
mkdir -p ~/.soundfonts && cd ~/.soundfonts && \
curl -sL -o FluidR3_GM.sf2 "https://ftp.osuosl.org/pub/musescore/soundfont/MuseScore_General/MuseScore_General.sf2"运行:
.venv-audio/bin/python scripts/rebuild_original.py <原始音频.mp3> --out ~/.suno-publisher/original-rework/<曲名>
.venv-audio/bin/python scripts/verify_deprint.py <原始音频.mp3> <重构成品.mp3>不可逆动作一律由人工最终确认:
- 提交审核 / 同意并签署:自动化操作完整填写全部字段(音频、标题、曲风、AI 声明、3000×3000 封面),但停留在最终电子签名和手机验证码确认前。
Apache-2.0