YouTube Transcripts

io.github.fbetteo由 GitHub 账号 fbetteo 发布v1.0.0更新于 Oct 25, 2026

Transcripts from YouTube videos, whole channels and playlists for AI agents, with bulk ZIP export.

已验证Streamable HTTP可网页运行网页搜索与抓取媒体与设计

概览

AI 生成的概览

一个托管式 MCP 服务器,可获取单个视频、频道和播放列表的 YouTube 字幕,并支持批量 ZIP 导出。

可以做什么
按 URL 或 ID 获取单个 YouTube 视频的字幕,可选带时间戳,并在开始任务前获取频道元数据。按频道任务使用的顺序列出频道视频及时长信息,并预览任务将下载多少个视频。启动异步任务,下载整个频道或播放列表的字幕。轮询任务状态,任务完成后获取 ZIP 下载链接,并可取消任务、退还未处理的视频。
适用场景
适合助手需要把 YouTube 视频的口语内容作为文本上下文时使用,例如总结或检索单个视频,或批量收集某个频道或播放列表的字幕。
运行要求
需要通过网络访问提供方的托管 API 远程端点。需要提供方 API 访问页面签发的 bearer API 密钥,放在 Authorization 请求头中。README 还记录了本地 npm 命令行工具和 stdio 服务器,从 YOUTUBE_TRANSCRIPT_API_KEY 环境变量读取密钥。
安装前请注意
需要放在 Authorization 请求头中的 API 密钥,请妥善保密。批量频道和播放列表任务会消耗账户额度,取消时只退还未处理的视频。任务会写入数据并生成 ZIP 下载,视频 URL 及频道或播放列表标识会发送给第三方提供方。

安装

在 SourceWeft 中

  1. 打开 控制台中的 YouTube Transcripts,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.fbetteo%2Fyoutube-transcripts/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "youtube-transcripts": {
      "type": "http",
      "url": "https://api.youtubetranscripts.fbetteo.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

YouTube Transcript Agent

Turn any YouTube video, playlist, or channel into agent-ready transcript context.

This package provides:

  • ytx, a CLI for transcripts, channel jobs, playlist jobs, polling, and ZIP downloads
  • a local stdio MCP server for coding agents and desktop assistants
  • docs for using the hosted /mcp endpoint and Developer API

Install

Run without installing:

bash
npx youtube-transcript-agent --help

Or install globally:

bash
npm install -g youtube-transcript-agentytx --help

Authentication

The CLI reads auth in this order:

  1. YOUTUBE_TRANSCRIPT_API_KEY
  2. local config created by ytx auth set-key

Set an API key:

bash
npx youtube-transcript-agent auth set-key <api_key>

Or use environment variables:

bash
export YOUTUBE_TRANSCRIPT_API_KEY=<api_key>

PowerShell:

powershell
$env:YOUTUBE_TRANSCRIPT_API_KEY="<api_key>"

CLI Usage

Get account credits:

bash
npx youtube-transcript-agent credits

Fetch one transcript:

bash
npx youtube-transcript-agent transcript FOp280ZAxhg --timestamps

Download channel transcripts:

bash
npx youtube-transcript-agent channel download "@mkbhd" --max 25 --wait --output channel.zip

Download playlist transcripts:

bash
npx youtube-transcript-agent playlist download <playlist_url_or_id> --max 25 --wait --output playlist.zip

Poll a job:

bash
npx youtube-transcript-agent jobs status <job_id>

Download a completed job:

bash
npx youtube-transcript-agent jobs download <job_id> --output transcripts.zip

Local MCP

Start the local stdio MCP server:

bash
npx youtube-transcript-agent mcp

This command waits for JSON-RPC messages on stdin. Agent clients should launch it with:

text
Command: npxArgs: youtube-transcript-agent mcpEnv:  YOUTUBE_TRANSCRIPT_API_KEY=<api_key>

Available MCP tools:

  • get_transcript
  • get_channel_info
  • list_channel_videos
  • start_channel_job
  • start_playlist_job
  • get_job_status
  • get_download_url

Manual smoke test:

bash
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | npx youtube-transcript-agent mcp

Hosted MCP

If your API server is deployed with hosted MCP enabled:

text
Endpoint: https://api.youtubetranscripts.fbetteo.com/mcpAuth: Authorization: Bearer <api_key>

List tools:

bash
curl -X POST "https://api.youtubetranscripts.fbetteo.com/mcp" \  -H "Content-Type: application/json" \  --data-raw '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Call a tool:

bash
curl -X POST "https://api.youtubetranscripts.fbetteo.com/mcp" \  -H "Authorization: Bearer <api_key>" \  -H "Content-Type: application/json" \  --data-raw '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_transcript","arguments":{"video_url":"FOp280ZAxhg"}}}'

Agent Skill

The repo includes an installable skill template at:

text
agent-skill/skill.md

For distribution, publish that file as the root skill.md in a separate public skill repo.

Troubleshooting

Advanced API Host Override

Most users do not need to set an API URL. The package defaults to the hosted production API.

Only set a custom base URL for local development, staging, self-hosted deployments, or debugging:

bash
export YOUTUBE_TRANSCRIPT_API_BASE_URL=http://127.0.0.1:8000

Or save it in local CLI config:

bash
npx youtube-transcript-agent auth set-key <api_key> --base-url http://127.0.0.1:8000

Troubleshooting

If fetch failed appears and the API logs show nothing, the CLI is not reaching the API host. Check:

bash
echo "$YOUTUBE_TRANSCRIPT_API_BASE_URL"echo "$API_BASE_URL"cat ~/.youtube-transcript-agent/config.json 2>/dev/null

The CLI base URL priority is:

  1. YOUTUBE_TRANSCRIPT_API_BASE_URL
  2. API_BASE_URL
  3. saved local config
  4. package default

On Windows PowerShell, quote channel handles:

powershell
node cli/dist/cli.js channel download "@mkbhd" --max 2 --wait

PowerShell aliases curl to Invoke-WebRequest; use curl.exe or Invoke-RestMethod.

来源:README.MD,提交 4be56f6

工具

8

get_transcript

Return the transcript for a single YouTube video URL or ID.

输入参数video_url必填include_timestamps

get_channel_info

Return metadata for a YouTube channel before starting a job.

输入参数channel必填

list_channel_videos

List a YouTube channel's videos with duration metadata, in the order channel jobs use (long-form, then Shorts, then livestreams; newest first). limit=N previews what start_channel_job with max_videos=N downloads; has_more tells if the channel has more.

输入参数limitchannel必填

start_channel_job

Start an async job that downloads channel transcripts.

输入参数channel必填max_videosconcatenate_allinclude_timestamps

start_playlist_job

Start an async job that downloads playlist transcripts.

输入参数playlist必填max_videosconcatenate_allinclude_timestamps

get_job_status

Poll an async transcript job and get a download URL when ready.

输入参数job_id必填

get_download_url

Return the ZIP download URL for a completed job.

输入参数job_id必填

cancel_job

Cancel an async transcript job and refund unprocessed videos.

输入参数job_id必填

版本历史

1
  1. v1.0.0最新Oct 15, 2026

评分

已满足适用检查项的 90%

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

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。