Skip to content
Back to skills

Video Transcript

ASecurity

Extract video transcripts: yt-dlp subtitles to clean paragraphs.

  • 425 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
ai-agentspythongobash

Security analysis

A100/100

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

Scanned September 21, 2026

npx -y skills add notque/vexjoy-agent --skill video-transcript --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Video Transcript?

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

Security grade badge for Video Transcript
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/notque-video-transcript/badge)](https://www.skillsdirectory.com/skills/notque-video-transcript)

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: video-transcript
promoted_to: video-editing
description: "Extract video transcripts: yt-dlp subtitles to clean paragraphs."
user_invocable: false  # default -- router-dispatched, not user-typed
agent: python-general-engineer
allowed-tools:
  - Bash
  - Read
routing:
  triggers:
    - "video transcript"
    - "youtube transcript"
    - "extract transcript"
    - "download subtitles"
    - "what does this video say"
    - "get transcript"
    - "transcribe video"
    - "transcribe this video"
    - "pull subtitles"
    - "captions from video"
  category: research
  pairs_with:
    - research
---

# Video Transcript

Pull a video's transcript as readable paragraphs. Two paths, in order:

**Path 1 — uploader subtitles** (accurate, prefer when present):

```bash
yt-dlp --skip-download --write-subs --sub-langs en --sub-format vtt \
  -o '<work-dir>/%(id)s' '<URL>'
```

**Path 2 — auto-generated captions** (fallback when path 1 writes no file):

```bash
yt-dlp --skip-download --write-auto-subs --sub-langs en --sub-format vtt \
  -o '<work-dir>/%(id)s' '<URL>'
```

Then clean the VTT into paragraphs:

```bash
python3 skills/research/video-transcript/scripts/vtt_to_paragraph.py <work-dir>/<id>.en.vtt
```

Default output is plain paragraph text with `[Music]`-style cues stripped and the rolling duplicates of auto-captions deduplicated. Use `--timestamps` for `[mm:ss]` markers, `--keep-brackets` to keep cue tags, `-o FILE` to write to a file.

For other languages, change `--sub-langs` (e.g. `de`, `en.*`). List what a video offers with `yt-dlp --list-subs '<URL>'`.

## Error handling

### Both paths write no .vtt file
Cause: video has no subtitles or captions in the requested language.
Solution: run `yt-dlp --list-subs '<URL>'` and pick an available language; if none exist, report that and offer audio transcription via the `markdown-converter` skill on a downloaded audio file.

### HTTP 429 / "Sign in to confirm"
Cause: platform rate-limiting the host.
Solution: wait and retry with `--sleep-requests 2`; keep request volume low.

### Cleaner output repeats lines
Cause: VTT came from a third path (e.g. translated captions) with cue formats the dedupe misses.
Solution: rerun the cleaner; if repeats remain, file the sample VTT alongside a fix to `vtt_to_paragraph.py`.

Files in this skill

  • SKILL.md2.3 KB
  • scripts/vtt_to_paragraph.py3.9 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.