Spoken

io.github.roberttomko由 GitHub 账号 roberttomko 发布v0.1.1更新于 Oct 24, 2026

Podcast transcripts as clean Markdown with real speaker names — via the Spoken API.

概览

AI 生成的概览

让助手通过 Spoken API 获取带真实说话人姓名的 Markdown 播客文字稿,并可搜索单集、列出节目目录和查询额度。

可以做什么
  • 按文本查询或粘贴的 Spotify/YouTube 链接搜索单集
  • 列出某档节目的全部历史单集
  • 获取单集文字稿,返回带说话人姓名和时间戳的 Markdown
  • 查询剩余额度以及该密钥关注的节目
  • 关注或屏蔽节目,并列出已关注节目中尚未获取的新单集
适用场景
适合需要让助手获取已发布播客文字稿的场景,例如摘要、检索、RAG 流程或持续更新知识库,无需自行上传音频、做语音转写和说话人标注。
运行要求
通过 npx spoken-mcp 在本地以 stdio 运行(需要 Node.js)。需要在 SPOKEN_API_KEY 环境变量中提供 Spoken API 密钥;默认使用演示密钥 pt_demo,可完整搜索,但文字稿仅限演示单集。需要能访问 Spoken API 的网络。
安装前请注意
获取文字稿会消耗按次计费的额度(首次获取 1 个额度,重复获取免费),密钥通过 Stripe 购买或充值。API 密钥属于机密,经环境变量传入,请勿写入共享配置。关注和取消关注会更改账户状态。搜索内容和链接会发送到 Spoken 服务。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Spoken,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Spoken — podcast transcript API and MCP server, clean Markdown with real speaker names

Spoken is a transcript API that turns any published podcast into clean Markdown with real speaker names — not "Speaker 1." One API call returns named, timestamped text, ready for LLMs, RAG pipelines, summarizers, and search. This repo also ships spoken-mcp, an MCP server that gives Claude Desktop, Claude Code, Cursor and Cline the same transcripts as tools — see Use as an MCP server.

It's a transcript retrieval API, not a speech-to-text service: it works on already-published podcasts, so you skip uploading audio, running diarization, and mapping anonymous speaker labels by hand. For published shows that's typically 5–10× cheaper than running the audio through a transcription service.

  • 🎙️ Real speaker names, resolved automatically
  • 📄 Clean Markdown with timestamps, tuned for LLM context windows and RAG chunking
  • 🔎 Search by text query or paste a Spotify/YouTube URL
  • 💳 Pay-per-use credits — no subscription, failed calls never charged, repeat fetches free
  • 🤖 Agent-native — ships with an Agent Skill, agents.md, llms.txt, and an OpenAPI spec

Get a key at spoken.md — or try it free with the demo key pt_demo (search works fully; transcripts limited to the demo episode).

Quickstart

sh
# 1. Find an episode (by text, or paste a Spotify/YouTube URL)curl -s 'https://spoken.md/search?q=huberman+sleep' \  -H 'x-api-key: pt_demo'
# 2. Fetch the transcript as Markdowncurl -s 'https://spoken.md/transcripts/1000651996090' \  -H 'x-api-key: pt_demo'

The transcript comes back as Markdown with named speakers and timestamps:

md
**John Smith** (0:00)Welcome to the show. Today we're talking about...
**Jane Doe** (0:15)Thanks for having me.

Endpoints

Method & pathWhat it doesCredits
GET /search?q={query or URL}Find episodes; returns id, title, podcast, podcastId, date0
GET /podcasts/{podcastId}/episodesList a show's full back catalog; returns every episode's id, title, date0
GET /transcripts/{id}Return the Markdown transcript1 on first fetch, 0 on repeat
GET /balanceCurrent credit balance + usage history0
GET /followingThe shows this key keeps up with (inferred from fetches, or declared with PUT / dropped with DELETE /following/{podcastId})0
GET /newNew episodes on those shows that have not been fetched yet, each with a transcript URL; ?format=atom for a feed0
POST /buyNew-key checkout (Stripe)—
POST /top-up?key={key}Returning-customer top-up (Stripe)—

Auth is the x-api-key header. Responses include X-Credits-Remaining and X-Credits-Charged. See agents.md for the full error table and response shapes.

Examples

Use from Python

The spoken-md package wraps the API with no dependencies outside the standard library, and installs a spoken-md command.

sh
pip install spoken-md
python
from spoken_md import Spoken
spoken = Spoken()                                  # SPOKEN_API_KEY, or the demo keyepisode = spoken.search("huberman sleep")[0]print(spoken.transcript(episode.id))               # Markdown with real speaker names

archive(podcast_id, skip=...) walks a whole show and is resumable; errors are typed by status (PaymentRequired carries the top-up URL, NotFound means no transcript). See python/README.md.

Use as an MCP server

Spoken is a Model Context Protocol server two ways: hosted at https://spoken.md/mcp, and as spoken-mcp, the package in this repo, for clients that run a server locally (Claude Desktop, Cursor, Cline, …). Both provide the same eight tools:

ToolDescription
search_podcastsFind episodes by text or a pasted Spotify/YouTube URL
list_episodesList a show's entire back-catalog from a podcast_id
get_transcriptFetch an episode's transcript as Markdown with real speaker names
get_balanceCheck remaining credits
list_followingThe shows this key is kept current on, inferred from fetches or declared
follow_podcastDeclare a follow for a show (or clear a mute)
unfollow_podcastMute a show so it leaves the list and fetches do not re-add it
list_new_episodesNew episodes on followed shows that have not been fetched yet, with transcript links

Keeping a knowledge base current is list_new_episodes on a schedule and get_transcript on what it lists: each fetch raises that show's floor.

Hosted

Nothing to install. Point a client that connects to a URL at https://spoken.md/mcp (Streamable HTTP):

sh
claude mcp add --transport http spoken https://spoken.md/mcp

The client asks you to sign in the first time a tool needs your key. To skip that, send the key as a header yourself: Authorization: Bearer pt_your_key.

A client that can only sign in with OAuth, such as ChatGPT in developer mode, is sent to a page where you paste your key once. Steps for each app: spoken.md/mcp-server. With no key at all, searching, listing a show and the demo episode work.

Local

Add it to your MCP client config (e.g. Claude Desktop's claude_desktop_config.json):

json
{  "mcpServers": {    "spoken": {      "command": "npx",      "args": ["-y", "spoken-mcp"],      "env": { "SPOKEN_API_KEY": "pt_your_key" }    }  }}

SPOKEN_API_KEY defaults to pt_demo (search works fully; transcripts limited to the demo episode). Get a real key at spoken.md.

Run from source instead:

sh
npm install && npm run buildSPOKEN_API_KEY=pt_your_key node dist/index.js

Use with AI agents

Spoken is designed to be called by agents. Point your agent at the Agent Skill (also served at https://spoken.md/.well-known/skills/spoken-md/SKILL.md), or hand it agents.md. The OpenAPI spec makes it easy to wrap as a tool for any function-calling or MCP-compatible client (Claude, GPT, Cursor).

Pricing

Pay-per-use credits, no subscription. New keys: 100 for $15, 500 for $50, 2,000 for $160. Machine-readable at spoken.md/pricing.md.

Links


Spoken is built and maintained at spoken.md.

来源:README.md,提交 079853d

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分