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 分