# Send YouTube Video Transcript to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "youtube-video-transcript",
    "name": "YouTube Video Transcript",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/youtube-video-transcript",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/youtube-video-transcript",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/youtube-video-transcript",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=youtube-video-transcript",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "memory-template.md",
      "patterns.md",
      "setup.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "youtube-video-transcript",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-11T09:37:36.085Z",
      "expiresAt": "2026-05-18T09:37:36.085Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=youtube-video-transcript",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=youtube-video-transcript",
        "contentDisposition": "attachment; filename=\"youtube-video-transcript-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "youtube-video-transcript"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/youtube-video-transcript"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/youtube-video-transcript",
    "downloadUrl": "https://openagent3.xyz/downloads/youtube-video-transcript",
    "agentUrl": "https://openagent3.xyz/skills/youtube-video-transcript/agent",
    "manifestUrl": "https://openagent3.xyz/skills/youtube-video-transcript/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/youtube-video-transcript/agent.md"
  }
}
```
## Documentation

### 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 │
        └──────────┘   └───────────┘   └──────────┘

### 1. 📋 Get Metadata First

Always fetch video info before extracting subtitles:

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:

# 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:

[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

### From Video Markers

Many videos have chapter markers embedded. Extract from metadata:

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":

Search transcript for keywords and semantic matches
Return segments with timestamps
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 ~/youtube-video-transcript/. See memory-template.md for structure.

~/youtube-video-transcript/
├── memory.md          # Preferences + recent videos
├── videos/            # Cached transcripts (with consent)
│   └── {video_id}.md  # Individual video data
└── exports/           # Exported files

### Quick Reference

TopicFileSetup processsetup.mdMemory templatememory-template.mdAdvanced patternspatterns.md

### 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 TypeQualityWhen to UseManualHighAlways try firstAuto-generatedMediumFallback 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 ResponseAction"Yes, save it"Cache to ~/youtube-video-transcript/videos/"No thanks"Don't cache, show onceNot asked yetAsk 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:

Check available languages
Prefer manual over auto
Default to English
Report which language was used

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 TypeTell UserManual"Using official subtitles"Auto-generated"Using auto-generated (may have errors)"None available"No subtitles found for this video"

### Export Formats

FormatUse CaseCommandMarkdownReading, notesDefaultSRTVideo editors--sub-format srtPlain textSearch, grepStrip timestampsJSONProgrammatic--write-info-json

### Common Traps

TrapConsequencePreventionNot checking subtitles firstWasted time on unavailable videoAlways --list-subs firstIgnoring auto-generated qualityGarbage text with errorsPrefer manual, warn about autoLosing timestampsCan't navigate videoNever strip in any operationExtracting without metadataMissing title, chaptersAlways fetch -j firstCaching without consentPrivacy violationAsk before saving

### Quick Commands

User SaysAction"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 ~/youtube-video-transcript/videos/"Delete video X"Remove from cache

### Security & Privacy

Data that stays local (with your consent):

Transcripts cached in ~/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

Install with clawhub install <slug> if user confirms:

summarizer — create summaries from any content
video-captions — generate and edit video subtitles
ffmpeg — advanced video and audio processing

### Feedback

If useful: clawhub star youtube-video-transcript
Stay updated: clawhub sync
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: ivangdavila
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-11T09:37:36.085Z
- Expires at: 2026-05-18T09:37:36.085Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/youtube-video-transcript)
- [Send to Agent page](https://openagent3.xyz/skills/youtube-video-transcript/agent)
- [JSON manifest](https://openagent3.xyz/skills/youtube-video-transcript/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/youtube-video-transcript/agent.md)
- [Download page](https://openagent3.xyz/downloads/youtube-video-transcript)