关于 felo-youtube-subtitling
felo-youtube-subtitling 是用于提取 YouTube 视频字幕的技能,适合需要转录文本、指定语言字幕或带时间戳片段的场景。它通过 Felo API 获取内容,并提供脚本与命令行调用方式。
主要功能
- 01按视频 URL 或 ID 获取字幕
- 02指定字幕语言代码
- 03可包含片段时间戳
- 04支持文本与 JSON 输出
适用场景
- 01提取视频字幕用于阅读
- 02获取特定语言的字幕文本
- 03带时间戳分析或翻译字幕
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ felo-inc/ felo-skills --skill felo-youtube-subtitling安装后在 Claude Code 中输入/felo-youtube-subtitling确认已加载。
附带文件README.mdscripts/run_youtube_subtitling.mjs
详细介绍
Felo YouTube 字幕提取技能
使用场景
当用户想要执行以下操作时,触发此技能:
- 获取 YouTube 视频的字幕或隐藏式字幕
- 按视频 ID 或视频 URL 提取转录文本
- 获取特定语言的字幕(例如 en、zh-CN)
- 获取带时间戳的字幕,用于分析或翻译
触发关键词(示例):
- YouTube 字幕、获取隐藏式字幕、视频转录文本、提取字幕、YouTube 字幕
- 明确触发:
/felo-youtube-subtitling、“use felo youtube subtitling”
请勿用于:
- 实时搜索(使用
felo-search) - 网页内容(使用
felo-web-fetch) - 生成幻灯片(使用
felo-slides)
设置
1. 获取 API 密钥
- 访问 felo.ai
- 打开 Settings -> API Keys
- 创建并复制 API 密钥
2. 配置环境变量
Linux/macOS:
export FELO_API_KEY="your-api-key-here"
Windows PowerShell:
$env:FELO_API_KEY="your-api-key-here"
执行方法
选项 A:使用捆绑脚本或打包的 CLI
脚本(来自仓库):
node felo-youtube-subtitling/scripts/run_youtube_subtitling.mjs --video-code "dQw4w9WgXcQ" [options]
打包的 CLI(执行 npm install -g felo-ai 后):
felo youtube-subtitling -v "dQw4w9WgXcQ" [options]
# Short forms: -v (video-code), -l (language), -j (json)
选项:
| 选项 | 默认值 | 说明 |
|---|---|---|
--video-code / -v | (必填) | YouTube 视频 URL 或 视频 ID(例如 https://youtube.com/watch?v=ID 或 dQw4w9WgXcQ) |
--language / -l | - | 字幕语言代码(例如 en、zh-CN) |
--with-time | false | 在每个片段中包含开始时间和时长时间戳 |
--json / -j | false | 以 JSON 格式打印完整 API 响应 |
可以传入完整的 YouTube 链接或 11 个字符的视频 ID:
- 支持的 URL:
https://www.youtube.com/watch?v=ID、https://youtu.be/ID、https://youtube.com/embed/ID - 或直接传入 ID:
dQw4w9WgXcQ
示例:
# With video URL
node felo-youtube-subtitling/scripts/run_youtube_subtitling.mjs --video-code "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
felo youtube-subtitling -v "https://youtu.be/dQw4w9WgXcQ"
# With video ID
node felo-youtube-subtitling/scripts/run_youtube_subtitling.mjs -v "dQw4w9WgXcQ" --language zh-CN
# With timestamps
node felo-youtube-subtitling/scripts/run_youtube_subtitling.mjs -v "dQw4w9WgXcQ" --with-time --json
选项 B:使用 curl 调用 API
curl -X GET "https://openapi.felo.ai/v2/youtube/subtitling?video_code=dQw4w9WgXcQ" \
-H "Authorization: Bearer $FELO_API_KEY"
API 参考(摘要)
- 端点:
GET /v2/youtube/subtitling - 基础 URL:
https://openapi.felo.ai。如有需要,可通过FELO_API_BASE环境变量覆盖。 - 身份验证:
Authorization: Bearer YOUR_API_KEY
查询参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| video_code | string | 是 | - | YouTube 视频 ID(例如 dQw4w9WgXcQ) |
| language | string | 否 | - | 语言代码(例如 en、zh-CN) |
| with_time | boolean | 否 | false | 包含每个片段的开始时间和时长 |
响应(200)
{
"code": 0,
"message": "success",
"data": {
"title": "Video title",
"contents": [
{ "start": 0.32, "duration": 14.26, "text": "Subtitle text" }
]
}
}
当 with_time=false 时,start/duration 可能不存在或为零。contents[].text 始终存在。
错误代码
| HTTP | 代码 | 说明 |
|---|---|---|
| 400 | - | 参数验证失败(例如缺少 video_code) |
| 401 | INVALID_API_KEY | API 密钥无效或已撤销 |
| 500/502 | YOUTUBE_SUBTITLING_FAILED | 服务错误或视频没有可用字幕 |
输出格式
- 不使用
--json:打印标题,然后打印每个片段的文本(每行一段或合并输出)。如果使用--with-time,输出将包含时间戳。 - 使用
--json:打印完整 API 响应。
失败时(没有字幕、API 错误):向 stderr 输出消息并以 1 退出。示例:
YouTube subtitling failed for video dQw4w9WgXcQ: YOUTUBE_SUBTITLING_FAILED
重要说明
- 并非所有视频都有字幕;部分视频可能会导致 API 返回错误。
- 语言代码必须与视频提供的字幕轨道匹配。
- 与其他 Felo 技能使用相同的
FELO_API_KEY。
参考资料
评论
支持 Markdown