Felo YouTube Subtitling
/install felo-youtube-subtitling
\r \r
Felo YouTube Subtitling Skill\r
\r
When to Use\r
\r Trigger this skill when the user wants to:\r \r
- Get subtitles or captions from a YouTube video\r
- Extract transcript by video ID or video URL\r
- Fetch subtitles in a specific language (e.g. en, zh-CN)\r
- Get subtitles with timestamps for analysis or translation\r \r Trigger keywords (examples):\r \r
- YouTube subtitles, get captions, video transcript, extract subtitles, YouTube 字幕\r
- Explicit:
/felo-youtube-subtitling, "use felo youtube subtitling"\r \r Do NOT use for:\r \r - Real-time search (use
felo-search)\r - Web page content (use
felo-web-fetch)\r - Generating slides (use
felo-slides)\r \r
Setup\r
\r
1. Get API key\r
\r
- Visit felo.ai\r
- Open Settings -> API Keys\r
- Create and copy your API key\r \r
2. Configure environment variable\r
\r Linux/macOS:\r \r
export FELO_API_KEY="your-api-key-here"\r
```\r
\r
Windows PowerShell:\r
\r
```powershell\r
$env:FELO_API_KEY="your-api-key-here"\r
```\r
\r
## How to Execute\r
\r
### Option A: Use the bundled script or packaged CLI\r
\r
**Script** (from repo):\r
\r
```bash\r
node felo-youtube-subtitling/scripts/run_youtube_subtitling.mjs --video-code "dQw4w9WgXcQ" [options]\r
```\r
\r
**Packaged CLI** (after `npm install -g felo-ai`):\r
\r
```bash\r
felo youtube-subtitling -v "dQw4w9WgXcQ" [options]\r
# Short forms: -v (video-code), -l (language), -j (json)\r
```\r
\r
Options:\r
\r
| Option | Default | Description |\r
|--------|---------|-------------|\r
| `--video-code` / `-v` | (required) | YouTube **video URL** or **video ID** (e.g. `https://youtube.com/watch?v=ID` or `dQw4w9WgXcQ`) |\r
| `--language` / `-l` | - | Subtitle language code (e.g. `en`, `zh-CN`) |\r
| `--with-time` | false | Include start/duration timestamps in each segment |\r
| `--json` / `-j` | false | Print full API response as JSON |\r
\r
You can pass either a **full YouTube link** or the **11-character video ID**:\r
\r
- Supported URLs: `https://www.youtube.com/watch?v=ID`, `https://youtu.be/ID`, `https://youtube.com/embed/ID`\r
- Or plain ID: `dQw4w9WgXcQ`\r
\r
Examples:\r
\r
```bash\r
# With video URL\r
node felo-youtube-subtitling/scripts/run_youtube_subtitling.mjs --video-code "https://www.youtube.com/watch?v=dQw4w9WgXcQ"\r
felo youtube-subtitling -v "https://youtu.be/dQw4w9WgXcQ"\r
\r
# With video ID\r
node felo-youtube-subtitling/scripts/run_youtube_subtitling.mjs -v "dQw4w9WgXcQ" --language zh-CN\r
\r
# With timestamps\r
node felo-youtube-subtitling/scripts/run_youtube_subtitling.mjs -v "dQw4w9WgXcQ" --with-time --json\r
```\r
\r
### Option B: Call API with curl\r
\r
```bash\r
curl -X GET "https://openapi.felo.ai/v2/youtube/subtitling?video_code=dQw4w9WgXcQ" \\r
-H "Authorization: Bearer $FELO_API_KEY"\r
```\r
\r
## API Reference (summary)\r
\r
- **Endpoint**: `GET /v2/youtube/subtitling`\r
- **Base URL**: `https://openapi.felo.ai`. Override with `FELO_API_BASE` env if needed.\r
- **Auth**: `Authorization: Bearer YOUR_API_KEY`\r
\r
### Query parameters\r
\r
| Parameter | Type | Required | Default | Description |\r
|-----------|------|----------|---------|-------------|\r
| video_code | string | Yes | - | YouTube video ID (e.g. dQw4w9WgXcQ) |\r
| language | string | No | - | Language code (e.g. en, zh-CN) |\r
| with_time | boolean | No | false | Include start/duration per segment |\r
\r
### Response (200)\r
\r
```json\r
{\r
"code": 0,\r
"message": "success",\r
"data": {\r
"title": "Video title",\r
"contents": [\r
{ "start": 0.32, "duration": 14.26, "text": "Subtitle text" }\r
]\r
}\r
}\r
```\r
\r
With `with_time=false`, `start`/`duration` may be absent or zero. `contents[].text` is always present.\r
\r
### Error codes\r
\r
| HTTP | Code | Description |\r
|------|------|-------------|\r
| 400 | - | Parameter validation failed (e.g. missing video_code) |\r
| 401 | INVALID_API_KEY | API key invalid or revoked |\r
| 500/502 | YOUTUBE_SUBTITLING_FAILED | Service error or subtitles unavailable for video |\r
\r
## Output Format\r
\r
- Without `--json`: print title and then each segment's text (one per line or concatenated). If `--with-time`, output includes timestamps.\r
- With `--json`: print full API response.\r
\r
On failure (no subtitles, API error): stderr message and exit 1. Example:\r
\r
```\r
YouTube subtitling failed for video dQw4w9WgXcQ: YOUTUBE_SUBTITLING_FAILED\r
```\r
\r
## Important Notes\r
\r
- Not all videos have subtitles; the API may return an error for some videos.\r
- Language code must match a subtitle track available for the video.\r
- Same `FELO_API_KEY` as other Felo skills.\r
\r
## References\r
\r
- [Felo YouTube Subtitling API](https://openapi.felo.ai/docs/api-reference/v2/youtube-subtitling.html)\r
- [Felo Open Platform](https://openapi.felo.ai/docs/)\r
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install felo-youtube-subtitling - After installation, invoke the skill by name or use
/felo-youtube-subtitling - Provide required inputs per the skill's parameter spec and get structured output
What is Felo YouTube Subtitling?
Fetch YouTube video subtitles/captions using Felo YouTube Subtitling API. Use when users ask to get YouTube subtitles, extract captions from a video, fetch t... It is an AI Agent Skill for Claude Code / OpenClaw, with 340 downloads so far.
How do I install Felo YouTube Subtitling?
Run "/install felo-youtube-subtitling" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Felo YouTube Subtitling free?
Yes, Felo YouTube Subtitling is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Felo YouTube Subtitling support?
Felo YouTube Subtitling is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Felo YouTube Subtitling?
It is built and maintained by wangzhiming (@wangzhiming1999); the current version is v1.0.1.