Skip to content
Back to skills

Youtube Video Transcript

ASecurity

Fetch, summarize, and save YouTube transcripts with timestamp navigation, chapter detection, and searchable content.

  • 17 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 6, 2026
documentationbashapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

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

Scanned September 6, 2026

npx -y skills add clawic/skills --skill youtube-video-transcript --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Youtube Video Transcript?

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

Security grade badge for Youtube Video Transcript
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/clawic-youtube-video-transcript/badge)](https://www.skillsdirectory.com/skills/clawic-youtube-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: YouTube Video Transcript
slug: youtube-video-transcript
version: 1.0.0
description: Fetch, summarize, and save YouTube transcripts with timestamp navigation, chapter detection, and searchable content.
homepage: https://clawic.com/skills/youtube-video-transcript
changelog: Initial release with transcript extraction, timestamp navigation, chapter detection, and multi-format export.
metadata:
  clawdbot:
    emoji: πŸ“Ί
    requires:
      bins:
      - yt-dlp
    install:
    - id: brew
      kind: brew
      formula: yt-dlp
      bins:
      - yt-dlp
      label: Install yt-dlp (Homebrew)
    - id: pip
      kind: pip
      package: yt-dlp
      bins:
      - yt-dlp
      label: Install yt-dlp (pip)
    os:
    - linux
    - darwin
    - win32
    displayName: YouTube Video Transcript
---

Most YouTube transcript tools either require paid APIs, use suspicious proxies, or just dump raw text without structure. This skill extracts transcripts locally using yt-dlp, preserves timestamps for navigation, detects chapters automatically, and exports to any format you need.

## When to Use

User shares a YouTube link and wants to read instead of watch. User asks what someone says about a topic at a specific moment. User needs to extract quotes with timestamps for research or content creation. User wants to summarize a video or search within its content.

## How It Works

```
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β”‚           YOUTUBE TRANSCRIPT FLOW            β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
         β–Ό                    β–Ό                    β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  VIDEO  β”‚         β”‚ METADATA β”‚         β”‚SUBTITLESβ”‚
    β”‚   URL   β”‚         β”‚  FETCH   β”‚         β”‚  CHECK  β”‚
    β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜
         β”‚                   β”‚                    β”‚
         β”‚  youtube.com/     β”‚  Title, duration,  β”‚  Manual first,
         β”‚  watch?v=...      β”‚  chapters, lang    β”‚  auto fallback
         β”‚                   β”‚                    β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚ EXTRACT + CLEAN β”‚
                    β”‚ VTT β†’ Markdown  β”‚
                    β”‚ with timestamps β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β–Ό               β–Ό               β–Ό
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚ CHAPTERS β”‚   β”‚  SEARCH   β”‚   β”‚  EXPORT  β”‚
        β”‚ detected β”‚   β”‚ by topic  β”‚   β”‚ MD/SRT/  β”‚
        β”‚ or smart β”‚   β”‚ timestamp β”‚   β”‚ TXT/JSON β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```

## The Extraction Process

### 1. πŸ“‹ Get Metadata First

Always fetch video info before extracting subtitles:

```bash
yt-dlp -j "VIDEO_URL"
```

This gives you title, duration, official chapters, and available languages. Use it to confirm the right video and check what subtitles exist.

### 2. πŸ“ Prefer Manual Subtitles

Manual (uploaded) subtitles are higher quality than auto-generated:

```bash
# Try manual first
yt-dlp --write-sub --sub-lang en --skip-download "VIDEO_URL"

# Fall back to auto-generated if manual unavailable
yt-dlp --write-auto-sub --sub-lang en --skip-download "VIDEO_URL"
```

Auto-generated transcripts often have errors, missing punctuation, and wrong word boundaries. Manual subtitles are human-verified.

### 3. πŸ• Preserve Timestamps Always

Every segment must include timestamps. Format: `[HH:MM:SS]` or `[MM:SS]` for videos under 1 hour.

**Why this matters:** Users need to jump to specific moments. "Take me to where they discuss pricing" requires knowing the timestamp.

**Output format:**
```markdown
[00:00] Welcome to this video about machine learning
[00:15] Today we'll cover three main topics
[00:30] First, let's talk about neural networks
```

## Chapter Detection

### From Video Markers

Many videos have chapter markers embedded. Extract from metadata:

```bash
yt-dlp -j "VIDEO_URL" | jq '.chapters'
```

### Smart Detection (No Markers)

When video lacks chapters, detect natural breaks from transcript:
- Topic changes (semantic shift in content)
- Speaker changes (different voice patterns)
- Explicit transitions ("Now let's talk about...", "Moving on...")
- Long pauses between segments

## Search Within Transcripts

When user asks "where do they talk about X":

1. Search transcript for keywords and semantic matches
2. Return segments with timestamps
3. Include surrounding context (10-15 seconds before/after)

**Response format:**
```
Found 3 mentions of "machine learning":

[05:23] "...this is where machine learning really shines..."
Context: Discussing data processing approaches

[12:45] "...traditional methods vs machine learning..."
Context: Comparison section
```

Generate clickable links: `https://youtube.com/watch?v=VIDEO_ID&t=323`

## Architecture

Memory lives in `~/Clawic/data/youtube-video-transcript/`. See `memory-template.md` for structure.

```
~/Clawic/data/youtube-video-transcript/
β”œβ”€β”€ memory.md          # Preferences + recent videos
β”œβ”€β”€ videos/            # Cached transcripts (with consent)
β”‚   └── {video_id}.md  # Individual video data
└── exports/           # Exported files
```

## Quick Reference

| Topic | File |
|-------|------|
| Setup process | `setup.md` |
| Memory template | `memory-template.md` |
| Advanced patterns | `patterns.md` |

## Core Rules

### 1. Metadata Before Extraction

Always run `yt-dlp -j URL` first. This confirms the video, shows available languages, and reveals official chapters. Never extract blind.

### 2. Manual Over Auto

| Subtitle Type | Quality | When to Use |
|---------------|---------|-------------|
| Manual | High | Always try first |
| Auto-generated | Medium | Fallback only |

Check with `yt-dlp --list-subs URL` for unfamiliar channels.

### 3. Timestamps Are Sacred

Never strip timestamps during any operation. They enable navigation, citation, and deep linking into the video.

### 4. Cache With Consent

| User Response | Action |
|---------------|--------|
| "Yes, save it" | Cache to ~/Clawic/data/youtube-video-transcript/videos/ |
| "No thanks" | Don't cache, show once |
| Not asked yet | Ask after first extraction |

Always tell user where files are saved and offer to show or delete them.

### 5. Handle Multiple Languages

If user doesn't specify:
1. Check available languages
2. Prefer manual over auto
3. Default to English
4. Report which language was used

```bash
yt-dlp --list-subs "VIDEO_URL"
```

### 6. Quote Extraction Includes Context

When extracting quotes for research:
- 10-15 seconds before/after for context
- Exact timestamp for the quote start
- Speaker identification if multiple speakers

### 7. Transparency on Quality

| Subtitle Type | Tell User |
|---------------|-----------|
| Manual | "Using official subtitles" |
| Auto-generated | "Using auto-generated (may have errors)" |
| None available | "No subtitles found for this video" |

## Export Formats

| Format | Use Case | Command |
|--------|----------|---------|
| Markdown | Reading, notes | Default |
| SRT | Video editors | `--sub-format srt` |
| Plain text | Search, grep | Strip timestamps |
| JSON | Programmatic | `--write-info-json` |

## Common Traps

| Trap | Consequence | Prevention |
|------|-------------|------------|
| Not checking subtitles first | Wasted time on unavailable video | Always `--list-subs` first |
| Ignoring auto-generated quality | Garbage text with errors | Prefer manual, warn about auto |
| Losing timestamps | Can't navigate video | Never strip in any operation |
| Extracting without metadata | Missing title, chapters | Always fetch `-j` first |
| Caching without consent | Privacy violation | Ask before saving |

## Quick Commands

| User Says | Action |
|-----------|--------|
| "Transcribe this video" | Extract + display |
| "What do they say about X?" | Search + timestamps |
| "Save this transcript" | Cache with confirmation |
| "Export as SRT" | Convert format |
| "Show saved videos" | List ~/Clawic/data/youtube-video-transcript/videos/ |
| "Delete video X" | Remove from cache |

## Security & Privacy

**Data that stays local (with your consent):**
- Transcripts cached in ~/Clawic/data/youtube-video-transcript/ (only if you agree)
- Preferences stored locally (only after confirmation)
- No external API calls beyond YouTube's public subtitle endpoints

**Transparency guarantees:**
- Always asks before saving transcripts locally
- Tells you where files are saved
- Offers to show or delete saved data anytime

**This skill does NOT:**
- Use proxy services or third-party APIs
- Send your queries to external services
- Store credentials or authentication
- Save anything without your explicit consent

## Related Skills
More Clawic skills, get them at https://clawic.com/skills/<slug> (install if the user confirms):
- `summarizer` β€” create summaries from any content
- `video-captions` β€” generate and edit video subtitles
- `ffmpeg` β€” advanced video and audio processing

## Feedback

- If useful, star it: https://clawic.com/skills/youtube-video-transcript
- Latest version: https://clawic.com/skills/youtube-video-transcript

Files in this skill

  • SKILL.md10.1 KB
  • _meta.json200 B
  • memory-template.md2 KB
  • patterns.md4.5 KB
  • setup.md2 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…