介绍
# Video Transcript
通过 [TranscriptAPI.com](https://transcriptapi.com) 从视频中提取字幕。
## 设置
如果未设置 `$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 密钥已保存至 `~/.openclaw/openclaw.json`。详情请参阅下方的 **文件写入**。修改前会备份现有文件。
手动选项:[transcriptapi.com/signup](https://transcriptapi.com/signup) → Dashboard(仪表板)→ API Keys。
## 文件写入
验证和保存密钥命令会将 API 密钥保存到 `~/.openclaw/openclaw.json`(设置 `skills.entries.transcriptapi.apiKey` 和 `enabled: true`)。**修改前会将现有文件备份到 `~/.openclaw/openclaw.json.bak`。**
要在代理之外的终端/CLI 中使用该 API 密钥,请手动添加到您的 Shell 配置文件中: `export TRANSCRIPT_API_KEY=<your-key>`
## GET /api/v2/youtube/transcript
```bash curl -s "https://transcriptapi.com/api/v2/youtube/transcript\ ?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY" ```
| 参数 | 必填 | 默认值 | 可选值 | | ------------------- | ------ | ------- | --------------------------------------- | | `video_url` | 是 | — | YouTube URL 或 11 位视频 ID | | `format` | 否 | `json` | `json`(结构化),`text`(可读文本) | | `include_timestamp` | 否 | `true` | `true`,`false` | | `send_metadata` | 否 | `false` | `true`,`false` |
接受的 URL 格式:
- `https://www.youtube.com/watch?v=VIDEO_ID` - `https://youtu.be/VIDEO_ID` - `https://youtube.com/shorts/VIDEO_ID` - 纯视频 ID:`dQw4w9WgXcQ`
**响应** (`format=text&send_metadata=true`):
```json { "video_id": "dQw4w9WgXcQ", "language": "en", "transcript": "[00:00:18] We're no strangers to love\n[00:00:21] You know the rules...", "metadata": { "title": "Rick Astley - Never Gonna Give You Up", "author_name": "Rick Astley", "author_url": "https://www.youtube.com/@RickAstley", "thumbnail_url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg" } } ```
**响应** (`format=json`):
```json { "video_id": "dQw4w9WgXcQ", "language": "en", "transcript": [ { "text": "We're no strangers to love", "start": 18.0, "duration": 3.5 }, { "text": "You know the rules and so do I", "start": 21.5, "duration": 2.8 } ] } ```
## 提示
- 先将长字幕总结为关键点,再根据需要提供全文。 - 当您需要精确的时间戳来引用特定时刻时,请使用 `format=json`。 - 使用 `send_metadata=true` 以获取视频标题和频道作为上下文。 - 同样适用于 YouTube Shorts。
## 错误
| 代码 | 含义 | 操作 | | ---- | ------------ | -------------------------------------- | | 401 | API 密钥无效 | 检查密钥或重新设置 | | 402 | 余额不足 | 请前往 transcriptapi.com/billing 充值 | | 404 | 无字幕 | 视频可能未开启字幕 | | 408 | 超时 | 2 秒后重试一次 |
每次成功的请求消耗 1 个额度。错误不消耗额度。免费层:100 个额度,300 请求/分钟。