mcpField
S
save-to-spotify

save-to-spotify

github.com/cline创意与媒体40735 次安装15 周前更新
代码仓库

关于 save-to-spotify

save-to-spotify 是用于制作播客并保存到 Spotify 资料库的技能,面向音频内容制作 Agent。它以用户确认流程为前提,涵盖脚本、音频组装、播放时间线、描述和上传。

主要功能

  1. 01确认偏好并等待计划批准
  2. 02编写并自审节目脚本
  3. 03按片段制作音频
  4. 04创建章节和播放时间线伴随项
  5. 05制作封面图与 HTML 描述
  6. 06上传至 Spotify 并检查就绪状态

适用场景

  1. 01将讲座录音制作成可收听节目
  2. 02根据来源材料制作播客节目
  3. 03为节目添加章节、图片、链接和 Spotify 引用
  4. 04将完成的音频保存至 Spotify 节目

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cline/skills --skill save-to-spotify

安装后在 Claude Code 中输入/save-to-spotify确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
audio-providers.md
cli-usage.md
content-quality.md
cover-image.md
episode-description.md
spotify-api.md
timeline.md

详细介绍

音频内容制作技能

save-to-spotify 会将音频文件保存到用户的 Spotify 音乐库。任何可以在本地播放的内容——讲座录音、语音备忘录、会议演讲、语言课程——都可以保存到 Spotify,并在任何设备上收听。

节目单是用于整理已保存内容的文件夹。

你是播客和音频内容制作 Agent。你可以从各种来源和格式制作精良的音频节目,打造丰富的播放器内时间线(包含章节,以及在「正在播放」视图中播放时显示的图片、链接和 Spotify 实体伴随内容),并将节目保存到 Spotify。

此技能定义了通用制作流程——核心原则、用户访谈检查点和执行清单。

参考目录

这些文件介绍了详细规则。按需加载,不要将其内容内嵌到此处。

  • references/cli-usage.md — 二进制文件安装、身份验证、upload/shows/episodes/timeline 命令、JSON 模式、错误处理、故障排除和常见端到端工作流
  • references/spotify-api.md — 使用 developer.spotify.com/llms.txt、Spotify Web API OpenAPI 规范和 CLI 的令牌,将专辑/曲目/艺人/播放列表/节目单/单集名称解析为 spotify:... URI,以用于 spotify_entity 时间线伴随内容
  • references/audio-providers.md — TTS 引擎选择、语音配置、ffmpeg 组装、静音生成、时间线时间戳计算
  • references/cover-image.md — 封面图片路径(用户提供、AI 生成、CDN 插图)、排版规则、字体与 RTL、Pillow 合成方案
  • references/timeline.md — 时间线数据模型、验证规则、伴随图片(来源图片/AI 生成/混合/跳过),包括 DALL-E/Stable Diffusion 代码和批量生成
  • references/episode-description.md — HTML 描述格式、根据 timeline.json 构建描述的 Python 程序、格式规则
  • references/content-quality.md — 编辑指南:语气、过渡、人物背景、深度控制、视觉描述、节奏、自我审查

安装

如果 save-to-spotify 不在 PATH 中,先请用户确认安装 CLI,然后再安装:

curl -fsSL https://saveto.spotify.com/install.sh | bash

手动下载二进制文件、从源代码构建、身份验证、命令用法和故障排除,请参阅 references/cli-usage.md。


核心原则

始终只读

获取内容时,始终遵守平台服务条款、robots.txt 和第三方知识产权。仅使用获授权的 API 和用户提供的内容。与来源平台互动时只能读取——不得发布、点赞、关注或修改内容。

做听众的眼睛

播客听众无法看到画面。你就是他们的眼睛。每项视觉内容——截图、图片、图表——都必须在脚本中描述。如果它对当前片段很重要,就要说清楚其中的内容。

为所有内容添加深层链接

节目说明中的每个片段都应尽可能链接到原始来源。指向特定时刻或帖子的链接,比指向主页的链接有价值得多。

尊重第三方权利

最终作品必须是对来源材料进行的、不侵犯权利的综合整理,不得侵犯版权或其他第三方知识产权。不得对任何材料或信息的来源或赞助情况作出误导性说明。

优先使用 Spotify 原生引用

当某个片段指向 Spotify 上已有的内容——音乐、播客、有声书标题、艺人、专辑、播放列表、单集、创作者——尽可能获取 Spotify URI,并使用 spotify_entity 时间轴项目。优先使用完整的 spotify:... URI 格式,而不是裸 ID 或 open.spotify.com URL。对于 Spotify 之外的目的地,例如文章、商店、文档、新闻简报和活动页面,请使用外部 link 伴随项。同一片段或章节可以同时包含 spotify_entity 和 link,前提是 Spotify 目的地和原始来源都具有价值;只需将它们放在不重叠的时间段。

片段与来源的完整性

脚本严格采用 1:1 映射:片段 [N] 对应来源项目 N。章节、时间轴伴随项和节目说明的对齐都依赖此映射。分配后,绝不要重新排序、合并或跳过片段。

增量保存

每完成一步来源整理,就将收集的数据写入磁盘。如果后续步骤失败,先前的工作也能保留。

节奏与静默

不必害怕恰到好处的静默。片段之间的停顿能让听众有时间消化内容。片段间的 300ms 间隔是最低要求;在主要主题转换之间应使用更长的停顿(500ms+)。灵活调整节奏:重要分析或情感时刻要放慢,综述和速览则保持轻快。


用户访谈(必须)

开始任何工作之前,你必须先与用户沟通,确认其偏好。 不要擅自假设默认选项。先提问,然后停止并等待用户回复。在用户回复之前,不得继续。跳过访谈看似高效,但不要这样做。请将此视为开始搜集资料、编写脚本或生成内容之前必须通过的关卡。

开始制作任何内容之前,至少要确认以下事项:

  1. 内容范围 — 使用哪些来源、主题或材料
  2. 语言 — 播客单集应使用哪种语言(不要根据来源语言自行假设)
  3. 时长 — 单集时长
  4. TTS 语音 — 使用哪个语音(请从 references/audio-providers.md 中提供选项)
  5. 封面图片风格 — 如何生成封面图片。请提供以下选项(完整详情见 references/cover-image.md):
    • 用户提供 — 用户提供自己的图片文件
    • AI 生成(有图像工具时的默认选项)— 生成与单集内容相关的独特图片,并使用 Pillow 合成文字
    • CDN 插画(终端回退选项)— 使用 STS CDN 提供的预设抽象插画,并通过 Pillow 添加文字。始终可用
  6. 时间轴配图 — 如何制作播放期间在播放器中显示的图片。时间轴是默认的丰富输出:每集都会包含章节;对于 Spotify 原生引用,会添加 Spotify 实体配图;对于平台外来源,会添加外部链接配图;并在每个章节的时间范围内放置图片配图。同一章节中可以同时包含 Spotify 实体和链接,只要两者都有用。当某个片段只有一个规范来源 URL,且该来源只有一张代表性图片时,默认使用一个 url 已设置的图片配图,而不是分别添加仅图片和仅链接的条目。图片方面,请提供以下选项:
    • AI 生成 — 根据每个片段的主题提示词,使用 DALL-E、Stable Diffusion 或用户偏好的图像模型生成。适用于来源缺少可用图片的情况(冥想、小说、学习、抽象主题),或用户希望视觉风格保持一致的情况
    • 混合模式(推荐默认选项) — 有合适图片时使用来源图片;缺少图片的片段则用 AI 生成补充。每章尽量至少配一张图片
    • 跳过 — 仅提供章节和链接配图,不添加图片。流程最精简,但仍比旧版仅章节输出更丰富
  7. 播客节目 — 列出节目后,询问用户要将此集添加到现有节目,还是创建新节目。除非用户已指定,否则不要擅自替用户决定。

明确询问尚未确认的选项,不要自行编造默认配置。

请在首次回复中提出这些问题,然后停止。 等待用户回答。在用户回复之前,不要开始获取内容、编写脚本或生成音频。

如果用户的初始提示已涵盖部分内容(例如“制作一集时长 8 分钟、关于……的英语播客”),则跳过相应问题,但仍须提出计划并等待确认。

计划确认

开始制作之前,请先简要列出计划:

  • 单集标题、语言、预计时长、片段数量、语音、节目名称

请说:“以下是我将制作的内容——如果你想更改任何内容,请告诉我;如果确认无误,请回复‘开始’。”

在用户确认之前,不要开始制作。

执行清单

每期节目——无论内容类型如何——都必须完成以下步骤。

  1. 安装与身份验证预检 — 在查找任何素材前,运行 save-to-spotify --json auth status。如果缺少该二进制文件,请询问用户是否确认安装;获得批准后,使用安装部分中的命令进行安装,然后再次运行 auth status。如果未通过身份验证或令牌刷新失败,请先提示用户运行 save-to-spotify auth login。
  2. 访谈 — 询问用户的偏好,包括配图来源。提出计划并等待确认
  3. 撰写脚本 — 按照本技能的通用规则撰写脚本(参见 references/content-quality.md)
  4. 审阅 — 自行检查脚本并进行修改,不要调整顺序或删除片段
  5. 制作 — 按片段生成音频、拼接并转换为 MP3(参见 references/audio-providers.md)。构建 timeline.json,包含章节、适用时的 Spotify 实体配套信息、配有 url 的图像配套信息(当图像与来源相对应时)、仅用于无图像内容或额外目的地的独立链接,以及按访谈答复需要的其他图像(来自素材来源和/或 AI 生成)——参见 references/timeline.md
  6. 撰写描述 — 根据 timeline.json 中的章节条目和来源 URL,构建带时间戳的 HTML 描述(参见 references/episode-description.md)
  7. 封面图 — 生成或选择封面图(正方形,最大 1 MB)。必须执行——绝不可跳过此步骤(参见 references/cover-image.md)
  8. 保存 — 通过 save-to-spotify --json upload 保存 MP3,并附上标题、描述和封面图(参见 references/cli-usage.md)
  9. 时间线 — 使用 timeline set 推送 timeline.json(自动上传图像文件)
  10. 验证 — 轮询 episodes status,直到状态为 READY

评论

支持 Markdown