Skip to content
Back to skills

Daftai Extracting Video Subtitles

ASecurity

Extracts timed subtitles from local video/audio files using Whisper. Outputs SRT format with accurate timestamps. Handles complex filenames automatically. Use when user asks to "extract subtitles", "get subtitles", "transcribe video", "识别字幕", "提取字幕", or "获取字幕".

  • 17 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 26, 2026
ai-agentsbash

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned September 26, 2026

npx -y skills add daftAI2026/daftAI-skills --skill daftai-extracting-video-subtitles --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Daftai Extracting Video Subtitles?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Daftai Extracting Video Subtitles
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/daftai2026-daftai-extracting-video-subtitles/badge)](https://www.skillsdirectory.com/skills/daftai2026-daftai-extracting-video-subtitles)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: daftai-extracting-video-subtitles
description: >
  Extracts timed subtitles from local video/audio files using Whisper.
  Outputs SRT format with accurate timestamps. Handles complex filenames automatically.
  Use when user asks to "extract subtitles", "get subtitles", "transcribe video",
  "识别字幕", "提取字幕", or "获取字幕".
---

# Video Subtitle Extractor

Extract timed subtitles (SRT) from local video/audio files using OpenAI Whisper.

> **Scripts**: All scripts are in `scripts/` relative to this SKILL.md.

## Workflow

```
- [ ] Step 1: Environment check (Whisper + FFmpeg)
- [ ] Step 2: Input validation (file exists, has audio stream)
- [ ] Step 3: Detect language (auto or user-specified)
- [ ] Step 4: Run extraction script
- [ ] Step 5: Verify output and report
```

---

### Step 1: Environment Check

```bash
which whisper
which ffprobe
```

| Result | Action |
|--------|--------|
| whisper found | Continue |
| whisper missing | `brew install openai-whisper` (macOS) or `pip install openai-whisper` |
| ffprobe missing | `brew install ffmpeg` |

---

### Step 2: Input Validation

1. Confirm video/audio file exists
2. Get duration and confirm audio stream present — handled by script automatically

---

### Step 3: Language Detection

- If user specifies language → use it
- If unclear → ask user, suggest `en` or `zh` as common options
- Whisper `--language` flag values: `en`, `zh`, `ja`, `ko`, `fr`, `de`, `es`, etc.

---

### Step 4: Run Extraction

```bash
bun scripts/extract_subtitles.ts "<video_path>" [language] [model]
```

**Parameters:**

| Parameter | Default | Description |
|-----------|---------|-------------|
| video_path | (required) | Input video/audio file |
| language | `en` | Language code |
| model | auto by duration | Whisper model |

**Model auto-selection (by duration):**

| Video duration | Model | Approx. speed (CPU) |
|---------------|-------|---------------------|
| < 2 min | medium | ~2-3 min |
| 2-30 min | turbo | ~1x duration |
| > 30 min | base | fastest |

**The script automatically handles:**
- Complex filenames (copies to temp dir)
- Audio stream validation
- Duration detection and model selection
- Temp file cleanup

**Known issues:**

| Issue | Solution |
|-------|----------|
| `FP16 not supported on CPU` warning | Normal on Mac CPU, auto falls back to FP32 |
| MPS NaN errors | Do NOT use `--device mps`, script uses CPU |

---

### Step 5: Verify & Report

Script automatically reports:
- Output SRT file path
- Number of subtitle entries
- Processing time

---

## Examples

**Basic extraction:**
```
User: 帮我提取这个视频的字幕
→ bun scripts/extract_subtitles.ts "video.mp4" en
```

**With language specified:**
```
User: Extract English subtitles from this video
→ bun scripts/extract_subtitles.ts "video.mp4" en
```

**Chinese video:**
```
User: 提取中文字幕
→ bun scripts/extract_subtitles.ts "video.mp4" zh
```

**Long video with specific model:**
```
User: 提取这个一小时视频的字幕
→ bun scripts/extract_subtitles.ts "video.mp4" en base
```

Files in this skill

  • SKILL.md3 KB
  • scripts/extract_subtitles.ts6.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…