audiobooklm-podcast

基于新音剪创作平台以及珠峰AI自研音色,提供播客创作、内容管理、音频生成、专辑上架等功能。适用于用户提出"播客生成"、"播客制作"等需求。

Audits

Pass

Install

openclaw skills install audiobooklm-podcast

audiobooklm-podcast

audiobooklm_mcp 的标准播客/有声书生产链路。用户提供文本(或让用户先生成),最终产出可上架的章节音频。


核心原则

  1. 每一步可选择的操作都要征求用户意见
  2. 工具调用前必须先问用户确认,禁止自动决定
  3. 使用播客类音色时优先选择 category 为"播客"的音色
  4. 整章合成用 chapter_task_create,不要逐段 task_create
  5. 先混音再上架,顺序不能乱

Step 0 · 环境自检

调用任意 mcp__audiobooklm_mcp__* 工具时,如果返回 401/403/unauthorized/token expired/connection refused 等错误,暂停业务流程并提示用户配置 MCP。

配置指引:

看起来你还没接入 audiobooklm_mcp,按以下 4 步完成配置:

  1. 注册/登录 https://aigc.ximalaya.com/user
  2. 创建制作组,生成 API Token
  3. 把 MCP 服务写入配置:
{
  "mcpServers": {
    "audiobooklm_mcp": {
      "type": "http",
      "url": "https://aigc.ximalaya.com/audiobooklm/mcp",
      "headers": {
        "Authorization": "Bearer <Token>"
      }
    }
  }
}
  1. 重启服务,确认mcp已连接成功(需要结合当前环境给出具体的重启提示)

标准流程

1. 确认信息

开始前必须确认以下信息:

字段是否必需处理方式
文本内容必需用户已给直接用;让你生成则先出文案确认
书籍必需询问:新建还是用已有?
章节名必需询问用户确认
文本形态必需普通旁白/单人播客 vs 多人对话(决定导入工具)
音色必需调用 list_tts_voices 向用户展示候选
专辑可选仅上架时需要,询问:新建/已有/不上架

2. 确定书籍

询问用户:新建书籍还是用已有书籍?

  • 新建 → 向用户确认书名后调用:

    book_create(book_name="<书名>", book_type="podcast")
    
  • 已有 → 用 read_abs(scope={"domain":"books"}) 拉取书架,列出最近 10 本让用户选择


3. 创建章节

根据文本形态选择工具:

普通旁白/单人播客 → podcast_import

podcast_import(
  book_id=<book_id>,
  chapter_name="<章节名>",  # 新建章节时必填
  script_lines=["文本1", "文本2", ...], # 单人播客只需要传入文本列表,不需要角色标识
)

多人对话 → podcast_import

podcast_import(
  book_id=<book_id>,
  chapter_name="<章节名>",  # 新建章节时必填
  script_lines=["[角色名] 文本1", "[角色名] 文本2", ...] # 多人播客需要给出每段文本的角色名
)

注意:

  • 多人播客每行格式必须为 [角色名] 文本
  • 单人播客每行只需要文本,不需要角色名,格式为文本
  • chapter_name 和 chapter_id 二选一:新建章节传 chapter_name,追加到已有章节传 chapter_id
  • 返回 chapter_id 和 characters (角色名与 character_id 映射)

4. 列出音色

调用 list_tts_voices() 获取音色列表。

筛选建议:

  • 播客类优先选 category 包含"播客"的音色
  • 根据角色特征推荐合适的音色给用户选择
  • 向用户展示 3-5 个候选 + 简短描述

询问用户:每个角色分别选哪个音色?


5. 绑定音色到角色

mcp__audiobooklm_mcp__patch_abs(
  scope={"domain": "book", "book_id": <book_id>},
  operations=[
    {
      "op_id": "op-<角色序号>",
      "type": "update_character",
      "character_id": <character_id>,
      "patch": {"speaker_id": <speaker_id>},
      "reason": "绑定音色"
    }
    // 多个角色用逗号分隔
  ]
)

⚠️ 注意

  • 每个 operation 都要有唯一 op_id
  • type 是 "update_character" 不是 "op"

6. 整章合成

使用 chapter_task_create 一次提交整章:

mcp__audiobooklm_mcp__chapter_task_create(
  book_id=<book_id>,
  chapter_id=<chapter_id>
)

返回 task_ids 列表。


7. 查询任务结果

mcp__audiobooklm_mcp__task_query(
  task_ids=[<task_ids列表>],
  wait_timeout=120  # 可根据段落数调整
)

所有段落 status=succeeded 后继续。


8. 章节混音

mcp__audiobooklm_mcp__chapter_audio_mix(
  book_id=<book_id>,
  chapter_id=<chapter_id>
)

⚠️ 顺序要求:必须先完成第 7 步,再调用混音。

返回 audio_url 即章节完整音频。


9. 上架专辑(可选)

询问用户:需要上架到专辑吗?新建/已有/不上架?

  • 新建专辑 → 询问专辑名后调用:

    mcp__audiobooklm_mcp__create_album(
      album_name="<专辑名>",
      book_content="<简介>"  # 可选,让 AI 生成封面
    )
    
  • 已有专辑 → 用户提供 album_id

  • 上架

    mcp__audiobooklm_mcp__upload_audio_to_album(
      album_id=<album_id>,
      audio_url=<第8步返回的audio_url>
    )
    

交付内容

完成后告诉用户:


常见问题

现象原因解决
找不到 mcp__audiobooklm_mcp__*MCP 未注册配置 MCP
401/403/unauthorizedToken 无效/过期重新生成 Token
patch_abs validation_failed缺 op_id 或 type检查 operation 格式
task_query 返回 processing异步任务未完成继续轮询 task_query
音色不对character 未绑定 speaker重新绑定步骤
create_album 失败需要 book_content传入简介文本

多人对话模板

适用于用户已提供:book_id + 章节名 + 对话脚本(格式为 [角色名] 文本

流程

  1. podcast_import 导入章节 → 获得 chapter_id 和 characters
  2. list_tts_voices 列出音色 → 用户为每个角色选择
  3. patch_abs 绑定音色 → 每个角色都要绑
  4. chapter_task_create 提交整章
  5. task_query 查询结果
  6. chapter_audio_mix 混音