音乐分发管理工具

用于个人音乐分发的MCP服务器,管理音乐目录、上传至SoundCloud和YouTube,并跟踪各平台的发布状态。

  • by ExpertVagabond
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 ExpertVagabond/music-distro

使用说明

音乐发行版

用于个人音乐分发的MCP服务器——管理您的目录,上传到SoundCloud和YouTube,跟踪跨平台的发布状态。专为与Claude Code或任何MCP客户端一起使用而构建。

工具(12)

目录管理

工具 说明
distro_list_tracks 列出所有带有元数据和发布状态的曲目
distro_add_track 将带有元数据的音频文件添加到目录中
distro_update_track 更新曲目元数据+将ID3标签写入MP3文件
distro_scan_new 在~/桌面/AI音乐/中自动发现新的音频文件

上传和分发

工具 说明
distro_upload_soundcloud 将目录曲目上传到SoundCloud(公共/私人)
distro_upload_youtube 生成波形视频并上传到YouTube
distro_upload_all 在一次通话中上传到所有连接的平台

发布管理

工具 说明
distro_release_status 所有轨道和站台状态汇总
distro_open_dashboard 打开web仪表板进行可视化目录管理

认证

工具 说明
distro_auth_soundcloud 启动SoundCloud OAuth流
distro_auth_youtube 启动YouTube OAuth流(谷歌)
distro_auth_status 检查哪些平台已连接

快速开始

先决条件

  • Node.js 18+
  • ffmpeg(brew install ffmpeg)
  • SoundCloud客户端凭据(可选)
  • YouTube/Google OAuth凭据(可选)

安装

npm install -g music-distro

在Claude代码中配置

添加 ~/.mcp.json:

{
  "mcpServers": {
    "music-distro": {
      "command": "music-distro",
      "env": {
        "MUSIC_OUTPUT_DIR": "~/Desktop/AI-Music",
        "MUSIC_DISTRO_PORT": "3847",
        "CREDS_DIR": "/path/to/credentials/music-distro"
      }
    }
  }
}

或从源运行

git clone https://github.com/ExpertVagabond/music-distro.git
cd music-distro/server
npm install && npm run build
node build/index.js

环境变量

变量 默认值 描述
MUSIC_OUTPUT_DIR ~/Desktop/AI-Music 音频文件和catalog.json所在的位置
MUSIC_DISTRO_PORT 3847 OAuth回调和仪表板的端口
CREDS_DIR -- 平台凭据目录
DASHBOARD_DIR -- 仪表板静态文件的路径

工作流程

1.扫描新曲目

distro_scan_new
→ Discovers new audio files, reads metadata via ffprobe, adds to catalog

2.更新元数据

distro_update_track
  id: "track-uuid"
  title: "Building in the Dark"
  artist: "Matthew Karsten"
  genre: "Electronic"
  bpm: 128
  tags: ["trap", "dark", "808"]
→ Updates catalog + writes ID3 tags to MP3

3.上传到平台

distro_upload_soundcloud --track_id "uuid" --sharing public
distro_upload_youtube --track_id "uuid" --privacy unlisted
# or upload to all at once:
distro_upload_all --track_id "uuid"

4.检查释放状态

distro_release_status
→ Shows all tracks with SoundCloud/YouTube URLs and upload status

平台身份验证

声云

  1. 在以下位置创建SoundCloud应用程序 soundcloud.com/you/apps
  2. 保存凭据:
    // $CREDS_DIR/soundcloud-client.json
    { "client_id": "...", "client_secret": "..." }
    
  3. 跑 distro_auth_soundcloud → 打开OAuth浏览器

油管

  1. 在中创建OAuth凭据 谷歌云控制台
  2. 另存为 $CREDS_DIR/youtube/client_secret.json
  3. 跑 distro_auth_youtube → 打开Google OAuth浏览器

仪表盘

用于可视化目录管理的Web UI http://localhost:3847/dashboard:

  • 使用元数据跟踪目录表
  • 发布带有平台链接的状态徽章
  • 统计栏(总计/已上传/待处理)
  • 身份验证状态指示器
  • 扫描新文件

启动仪表板服务器: npm run dev

目录存储

所有数据存储在 $MUSIC_OUTPUT_DIR/catalog.json:

{
  "tracks": [
    {
      "id": "uuid",
      "title": "Track Name",
      "artist": "Artist",
      "genre": "Electronic",
      "duration_seconds": 30,
      "files": { "wav": "path.wav", "mp3": "path.mp3" },
      "releases": {
        "soundcloud": { "status": "uploaded", "url": "https://..." },
        "youtube": { "status": "pending" }
      }
    }
  ]
}

相关项目

许可证

麻省理工学院——紫松鼠传媒