subtitles

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Subtitles

字幕

Fetch YouTube video subtitles via TranscriptAPI.com.
通过TranscriptAPI.com获取YouTube视频字幕。

Setup

配置步骤

If
$TRANSCRIPT_API_KEY
is not set, help the user create an account (100 free credits, no card):
Step 1 — Register: Ask user for their email.
bash
node ./scripts/tapi-auth.js register --email USER_EMAIL
→ OTP sent to email. Ask user: "Check your email for a 6-digit verification code."
Step 2 — Verify: Once user provides the OTP:
bash
node ./scripts/tapi-auth.js verify --token TOKEN_FROM_STEP_1 --otp CODE
API key saved to your shell profile and agent config. Ready to use.
Manual option: transcriptapi.com/signup → Dashboard → API Keys.
如果未设置
$TRANSCRIPT_API_KEY
,请协助用户创建账户(100个免费额度,无需绑定银行卡):
步骤1 — 注册:向用户索要邮箱地址。
bash
node ./scripts/tapi-auth.js register --email USER_EMAIL
→ 验证码(OTP)将发送至该邮箱。请询问用户:"请查看您的邮箱,获取6位验证码。"
步骤2 — 验证:用户提供OTP后执行以下命令:
bash
node ./scripts/tapi-auth.js verify --token TOKEN_FROM_STEP_1 --otp CODE
API密钥将保存至您的Shell配置文件和Agent配置中,即可开始使用。
手动注册选项:访问transcriptapi.com/signup → 控制台 → API密钥。

GET /api/v2/youtube/transcript

GET /api/v2/youtube/transcript

bash
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_URL&format=text&include_timestamp=false&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
ParamValuesUse case
video_url
YouTube URL or video IDRequired
format
json
,
text
json
for sync'd subs with timing
include_timestamp
true
,
false
false
for clean text for reading/translation
send_metadata
true
,
false
Include title, channel, description
For language learning — clean text without timestamps:
bash
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_ID&format=text&include_timestamp=false" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
For translation — structured segments:
bash
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_ID&format=json&include_timestamp=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
Response (
format=json
):
json
{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": [
    { "text": "We're no strangers to love", "start": 18.0, "duration": 3.5 }
  ]
}
Response (
format=text
,
include_timestamp=false
):
json
{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": "We're no strangers to love\nYou know the rules and so do I..."
}
bash
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_URL&format=text&include_timestamp=false&send_metadata=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
参数名称可选值使用场景
video_url
YouTube链接或视频ID必填项
format
json
,
text
若需带时间戳的同步字幕,选择
json
格式
include_timestamp
true
,
false
若需用于翻译或阅读的纯净文本,设置为
false
send_metadata
true
,
false
是否包含视频标题、频道信息、描述内容
语言学习场景 — 无时间戳的纯净文本:
bash
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_ID&format=text&include_timestamp=false" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
翻译场景 — 结构化分段内容:
bash
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_ID&format=json&include_timestamp=true" \
  -H "Authorization: Bearer $TRANSCRIPT_API_KEY"
响应示例
format=json
):
json
{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": [
    { "text": "We're no strangers to love", "start": 18.0, "duration": 3.5 }
  ]
}
响应示例
format=text
,
include_timestamp=false
):
json
{
  "video_id": "dQw4w9WgXcQ",
  "language": "en",
  "transcript": "We're no strangers to love\nYou know the rules and so do I..."
}

Tips

小贴士

  • Many videos have auto-generated subtitles in multiple languages.
  • Use
    format=json
    to get timing for each line (great for sync'd reading).
  • Use
    include_timestamp=false
    for clean text suitable for translation apps.
  • 许多视频有多语言自动生成字幕。
  • 使用
    format=json
    可获取每一行字幕的时间信息(非常适合同步阅读)。
  • 设置
    include_timestamp=false
    可获取适合翻译工具使用的纯净文本。

Errors

错误处理

CodeAction
402No credits — transcriptapi.com/billing
404No subtitles available
408Timeout — retry once after 2s
1 credit per request. Free tier: 100 credits, 300 req/min.
错误码处理方式
402无可用额度 — 前往transcriptapi.com/billing充值
404该视频无可用字幕
408请求超时 — 2秒后重试一次
每请求消耗1个额度。免费套餐:100个免费额度,每分钟最多300次请求。