YouTube Transcript (yt-dlp)

v1.1.0

Extract YouTube video transcripts from existing captions (manual or auto-generated) using yt-dlp, with optional timestamps and local SQLite caching. Use when...

0· 156·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for mpbshhx/yt-transcript-yt-dlp.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "YouTube Transcript (yt-dlp)" (mpbshhx/yt-transcript-yt-dlp) from ClawHub.
Skill page: https://clawhub.ai/mpbshhx/yt-transcript-yt-dlp
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: python3, yt-dlp
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install yt-transcript-yt-dlp

ClawHub CLI

Package manager switcher

npx clawhub@latest install yt-transcript-yt-dlp
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match what the included script and instructions do: use yt-dlp + python to download existing captions, parse VTT, and cache results in SQLite. Declared required binaries (python3, yt-dlp) are appropriate and necessary.
Instruction Scope
SKILL.md instructs the agent/user to run the bundled Python script, use a local SQLite cache under the skill baseDir, and optionally provide a Netscape-format cookies.txt. It also references an environment variable (YT_TRANSCRIPT_COOKIES) and a config path (~/.config/yt-transcript/) for cookies; these are operationally reasonable but the env/config usage is not declared in the registry metadata.
Install Mechanism
No install spec (instruction-only with a bundled script). This is low-risk; nothing in the manifest downloads arbitrary external code. The script runs yt-dlp as a subprocess, which is expected for this task.
Credentials
The skill does not require credentials in the registry metadata. However SKILL.md (and likely the script) optionally reads a cookies file and refers to YT_TRANSCRIPT_COOKIES. Cookies can contain sensitive session data and grant access to age-restricted or member-only content — treat them as secrets. The registry should have declared this optional env/config usage for transparency.
Persistence & Privilege
Skill is not always-enabled and is user-invocable. It writes a cache database under the skill baseDir (or user-specified path) which is appropriate for its functionality and not excessive privilege.
Assessment
This skill appears to do what it claims: it runs a bundled Python script that calls yt-dlp to fetch captions, parses VTT, and caches results locally. Before installing: (1) ensure you trust the yt-dlp binary on your system, (2) be aware the script writes a SQLite cache under the skill directory (or a custom path you provide), (3) if you need age-restricted content you must supply YouTube cookies — treat those cookie files (or YT_TRANSCRIPT_COOKIES env var) as sensitive and store them securely, and note that the registry metadata did not declare this optional env/config usage, (4) inspect the bundled script if you want to confirm it meets your privacy/security expectations. Overall coherent and proportionate for its purpose.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

📝 Clawdis
OSLinux · macOS · Windows
Binspython3, yt-dlp
latestvk97fb5cjjhfhyhpzmgdvvapzzh835fp8
156downloads
0stars
1versions
Updated 1mo ago
v1.1.0
MIT-0
Linux, macOS, Windows

YouTube Transcript (Captions-Only)

Extracts transcripts from existing YouTube captions using yt-dlp. Prefers manual subtitles; falls back to auto-generated captions.

Prerequisites

  • Python 3.7+
  • yt-dlp installed and on PATH (pip install yt-dlp or system package)

How to Run

Script path: {baseDir}/scripts/yt_transcript.py

# Basic usage
python {baseDir}/scripts/yt_transcript.py <youtube_url_or_id>

# Specify language
python {baseDir}/scripts/yt_transcript.py <url> --lang en

# Plain text output
python {baseDir}/scripts/yt_transcript.py <url> --text

# Text without timestamps
python {baseDir}/scripts/yt_transcript.py <url> --text --no-ts

# Custom cache path
python {baseDir}/scripts/yt_transcript.py <url> --cache /path/to/cache.sqlite

Output Formats

JSON mode (default)

Returns a JSON object:

{
  "video_id": "dQw4w9WgXcQ",
  "lang": "en",
  "source": "manual",
  "segments": [
    { "start": 0.0, "duration": 4.2, "text": "We're no strangers to love" }
  ]
}

Text mode (--text)

Newline-separated transcript lines. Use --no-ts to omit timestamps.

Caching

Results are cached in a local SQLite database: {baseDir}/cache/transcripts.sqlite

Subsequent calls for the same video/lang/format are served from cache instantly.

To use a custom cache location: --cache /path/to/transcripts.sqlite

Cookies (optional)

For age-restricted or members-only videos, provide a Netscape-format cookies.txt:

export YT_TRANSCRIPT_COOKIES=/path/to/cookies.txt
python {baseDir}/scripts/yt_transcript.py <url>
# or
python {baseDir}/scripts/yt_transcript.py <url> --cookies /path/to/cookies.txt

Cookies must be stored under ~/.config/yt-transcript/ for security.

Troubleshooting

  • No captions available: Video has no manual or auto-generated captions
  • yt-dlp not found: Install with pip install yt-dlp or brew install yt-dlp
  • Age-restricted video: Provide cookies from a logged-in YouTube session
  • Rate limited: Wait and retry; reduce request frequency

Comments

Loading comments...