Install
openclaw skills install youtube-channel-parseFetch, transcribe, summarize, and filter YouTube channels or individual videos. Use when asked to analyze a full YouTube channel, parse a single video, collect transcripts, group or filter videos by date, topic, speakers, or metadata criteria, or produce reusable summaries and structured outputs from YouTube content.
openclaw skills install youtube-channel-parseThis skill supports two workflows.
For an individual video:
For a YouTube channel:
Accept these inputs:
channel_url or video_urlsince_dateuntil_datetopic_filterspeaker_filtermetadata_filtersoutput_prefixwhisper_modelChoose the workflow from the provided URL:
video_url, run the individual video workflowchannel_url, run the channel workflowCheck environment access early.
If the environment blocks YouTube network access, stop retrying after confirming the restriction and tell the user how to enable access before continuing.
Thesis, Insights, Facts, and Opinions and framing.Apply filters in this order:
Use metadata-based filtering before transcript retrieval when that narrows the set efficiently.
Use transcript-based filtering when the requested criteria depend on spoken content, such as speaker references, repeated themes, or terms not present in the title or description.
Read detailed filter semantics from references/filtering.md when the request depends on nuanced selection logic.
Retrieve direct transcripts first.
When direct transcripts are unavailable, try subtitle retrieval before full audio transcription.
When subtitle retrieval is unavailable, generate transcripts from downloaded audio and continue the workflow.
Reuse existing transcript files and cached audio files when they already match the current request.
Use tiny.en or tiny by default for fast transcription unless the user asks for higher accuracy.
If yt-dlp is unavailable, rerun the workflow with uv run --with yt-dlp ... instead of raw python.
If caption, subtitle, or media requests fail with 429 Too Many Requests, retry a small number of times with backoff before treating the fetch as unavailable.
If metadata retrieval works but captions or audio fail with bot-detection, 403, or sign-in verification errors, treat that as a content-access restriction and explain the environment limits clearly.
Use markdown outputs for summaries, findings, reusable notes, and channel-level reports.
For report outputs, prefer extended summaries over one-line blurbs.
For high-quality research reports, use the generated JSON, transcripts, and script summaries as inputs to a cleaner synthesized markdown narrative.
Read naming and directory conventions from references/outputs.md when writing artifacts.
| Workflow | Capability | Result |
|---|---|---|
| Channel | Analyze the entire channel | Inventory, selection, transcripts, and channel-level outputs |
| Video | Analyze an individual video | Transcript, summary, notes, and structured outputs |
| Channel | Filter videos by date window | A narrowed candidate set before transcript work |
| Channel | Filter or group videos by topic, date range, speakers, or metadata criteria | A selected subset for analysis and reporting |
| Video or Channel | Fetch direct transcripts when available | Faster transcript retrieval from existing sources |
| Video or Channel | Generate transcripts from downloaded audio when needed | Continued execution when direct transcripts are unavailable |
| Video or Channel | Generate concise summaries and reusable artifacts | Markdown reports, notes, and structured data outputs |
| Video or Channel | Generate extended report summaries on request | Per-video report entries that cover plot, facts, insights, opinions, and outcome |
| Channel | Generate synthesized research memos | A report with collection-wide throughline plus per-video thesis, insights, facts, and framing |
Use these bundled scripts:
fetch_channel.py for inventory, date filtering, and metadata normalizationtranscribe_with_fallback.py for transcript API attempts, yt-dlp audio download, and local Whisper transcriptionbuild_report.py for topic grouping, summaries, and markdown or CSV outputsUse these reference files:
references/dependencies.mdreferences/filtering.mdreferences/outputs.mdThis skill uses:
yt-dlp for channel inventory and audio downloadyoutube-transcript-api for direct transcript fetchfaster-whisper for local transcription fallbackUse commands such as:
uv run --with yt-dlp --with youtube-transcript-api --with faster-whisper python scripts/<script>.py ...
Pass --no-check-certificates to yt-dlp when the environment requires it.
Read references/dependencies.md for command patterns and dependency notes.