yt-transcript

You are using the YouTube Transcript (yt-dlp) Formatting skill.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "yt-transcript" with this command: npx skills add mrecek/ai-skills/mrecek-ai-skills-yt-transcript

You are using the YouTube Transcript (yt-dlp) Formatting skill.

Goal: produce a clean markdown transcript artifact in the established youtube-transcripts format.

When To Use This Skill

Invoke this skill when the user requests:

  • /yt-transcript <URL>

  • /yt-transcript <URL> output to <directory>

  • /yt-transcript <URL> --no-chapters

  • Any request to generate or update a YouTube transcript artifact

Core Contract

The script is the deterministic engine. The agent orchestrates:

  • path selection

  • explicit filename override requests (only when user asks)

  • user confirmation

  • result communication

The script handles extraction, fallback logic, formatting, and file writes. The script also auto-generates canonical filenames when given a directory target.

Runtime Requirements

Install dependencies into the same Python interpreter used to run the script. Python 3.10+ is required.

  • macOS/Linux:

python -m pip install "yt-dlp[default]"

  • Windows:

py -m pip install "yt-dlp[default]"

Optional fallback dependencies:

  • youtube-transcript-api

  • openai-whisper

  • ffmpeg

Example install:

python -m pip install youtube-transcript-api openai-whisper

If your default python is older, create a venv with Python 3.10+ first:

/opt/homebrew/bin/python3.13 -m venv .venv .venv/bin/python -m pip install "yt-dlp[default]" youtube-transcript-api

Workflow

Step 1: Determine Output Path

  • Parse the user request for output directory or filename hints.

  • If no directory is specified, propose a youtube-transcripts/ directory in the current workspace context.

  • Build an absolute output path.

Step 2: Let Script Generate Filename

Default behavior: pass an output directory and let the script generate: YYYY-MM-DD_identifier_topic-keywords.md

Only pass an explicit .md file path when the user explicitly requests a custom filename.

Step 3: Decide Extraction Flags

Default invocation is English subtitle-first.

Available flags:

  • --no-chapters : force flat transcript body

  • --lang <code> : preferred subtitle language (default en )

  • --proxy <url> : global proxy for yt-dlp requests

  • --http-proxy <url> : HTTP proxy override for transcript API fallback

  • --https-proxy <url> : HTTPS proxy override for transcript API fallback

  • --cookies <file> : Netscape-format cookie file for yt-dlp

  • --cookies-from-browser <spec> : browser cookie import for yt-dlp

  • --yt-impersonate <client[:os]> : yt-dlp impersonation target

  • --asr-fallback : use Whisper fallback if subtitle providers fail

  • --asr-model <name> : Whisper model (default small )

  • --no-artifact-on-failure : fail hard instead of writing fallback artifact

Step 4: Preview + Confirm

Before execution, show:

  • output directory or explicit file path

  • URL

  • whether chapters are expected

  • whether fallback flags will be used

Wait for user confirmation.

Step 5: Invoke Script

Use absolute paths and quote arguments.

Linux/macOS example:

python "/full/path/to/yt-transcript/script" "https://www.youtube.com/watch?v=VIDEO_ID" "/full/path/to/youtube-transcripts"

Windows example:

py "C:\path\to\yt-transcript\script" "https://www.youtube.com/watch?v=VIDEO_ID" "C:\path\to\youtube-transcripts"

With fallbacks:

python "/full/path/to/yt-transcript/script" "URL" "/full/path/to/youtube-transcripts" --cookies-from-browser "chrome" --proxy "socks5://127.0.0.1:1080" --asr-fallback

Step 6: Report Outcome

On success:

  • confirm output path

  • summarize whether transcript came from subtitles or fallback path

If fallback artifact was written (extraction failed but file created):

  • tell user artifact exists

  • summarize embedded extraction failure note

  • suggest rerun flags if needed

Output Format Expectations

The generated markdown artifact should follow this shape:

  • <title>

  • Source: ...

  • Speaker/Channel: ...

  • Published: ...

  • Duration: ...

  • Type: Video Transcript

  • Summary: ...

  • Topics: ...

  • optional Chapters: list


  • transcript body (chaptered when available unless --no-chapters )

Error Handling Guidance

Common failures and responses:

  • yt-dlp missing in active interpreter -> provide interpreter-specific install command

  • JS runtime / yt-dlp-ejs messages -> recommend yt-dlp[default]

  • runtime install
  • missing preferred language subtitles -> ensure youtube-transcript-api is installed, then rerun

  • no subtitles from provider fallbacks -> rerun with --asr-fallback

  • blocked/rate-limited requests -> rerun with proxy flags (--proxy , --http-proxy , --https-proxy )

  • gated/auth-required access -> rerun with --cookies or --cookies-from-browser

  • invalid URL -> ask user to verify URL format

Important Notes

  • Use the script as the source of truth for extraction and rendering.

  • Do not manually parse VTT in the agent response flow.

  • Always use absolute paths for invocation.

  • Confirm with the user before running when path/flags are ambiguous.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

anytype

No summary provided by upstream source.

Repository SourceNeeds Review
General

ai-skills

No summary provided by upstream source.

Repository SourceNeeds Review
General

Find Skills for ClawHub

Search for and discover OpenClaw skills from ClawHub (the official skill registry). Activate when user asks about finding skills, installing skills, or wants...

Registry SourceRecently Updated
2771Profile unavailable
General

Skill Listing Polisher

Improve a skill's public listing before publish. Use when tightening title, description, tags, changelog, and scan-friendly packaging so the listing looks cl...

Registry SourceRecently Updated
1130Profile unavailable