YouTube Summary (youtube2md)
Use the official youtube2md CLI behavior from the repository.
Runtime + security prerequisites
- Require Node.js 18+.
- Require preinstalled
youtube2mdon PATH.- Recommended pinned install:
npm i -g youtube2md@1.0.1
- Recommended pinned install:
- Require python3 for transcript text preparation (
prepare.py) in extract mode. - Default runner uses local
youtube2mdexecutable only. - Runtime npm execution (
npx) is intentionally not supported in this skill. - The
YOUTUBE2MD_BINenvironment variable override is rejected by the runner. OPENAI_API_KEYenables full summarization mode; transcript/content may be sent to OpenAI through youtube2md’s workflow.- For sensitive content, omit
OPENAI_API_KEYand use extract mode.
- For sensitive content, omit
- In sensitive environments, audit the upstream
youtube2mdpackage and dependencies before installation or version bumps.
See references/security.md before first-time install/enable.
Workflow
-
Validate input
- Accept
youtube.comandyoutu.beURLs. - If URLs are missing, ask for one URL per line.
- Accept
-
Choose mode
- Full mode: generates Markdown.
- Use when
OPENAI_API_KEYis available and external API use is acceptable.
- Use when
- Extract mode (
--extract-only): outputs transcript JSON and prepares transcript text (.txt).- Use when API key is unavailable or when transcript-only output is requested.
- Prefer a no-error path: check key first and run extract directly when key is missing.
- Full mode: generates Markdown.
-
Run converter
- Preferred runner script:
scripts/run_youtube2md.sh <url> full [output_md_path] [language] [model]- If
OPENAI_API_KEYis missing, runner auto-falls back to extract mode by default.
- If
scripts/run_youtube2md.sh <url> extract [output_json_path]
- Optional machine-readable CLI output:
YOUTUBE2MD_JSON=1 scripts/run_youtube2md.sh <url> fullYOUTUBE2MD_JSON=1 scripts/run_youtube2md.sh <url> extract
- Runtime controls:
- Use only locally installed
youtube2mdexecutable. - Do not use runtime npm execution (
npx) for this skill.
- Use only locally installed
- Direct CLI equivalent:
youtube2md --url <url> [--out <path>] [--lang <language>] [--model <model>]- Add
--extract-onlyfor transcript-only mode.
- Preferred runner script:
-
Verify output
- Full mode: Markdown file exists and is non-empty.
- Extract mode: JSON file exists and is non-empty.
- Extract mode: prepared TXT file exists and is non-empty.
- If using
--json, parseok: true/falseand handle errorcode.
-
Respond to the user
- Follow
references/output-format.mdas the default response shape. - Follow
references/summarization-behavior.mdfor source policy and chapter/takeaway density. - Do not include generated local file path(s) in normal user-facing replies.
- Share file paths only when explicitly requested by the user (e.g., debugging/export workflows).
- Summary source policy:
- Full mode succeeded → use youtube2md Markdown output as the summary source.
- Non-full mode (extract) → use prepared
.txttranscript text as the summary source.
- Keep user-facing flow smooth: if key is missing, use extract output and summarize from
.txtwithout surfacing avoidable tool-error noise.
- Follow
Multi-video requests
- Process URLs sequentially.
- Return per-video summary results (omit local file paths unless requested).
- If any fail, report successful items first, then failures with fixes.
Built-in behavior to trust
- Default output paths:
- Full mode:
./summaries/<video_id>.md - Extract mode:
./summaries/<video_id>.json - Local runner post-process (extract):
./summaries/<video_id>.txtviaprepare.py
- Full mode:
Packaging hygiene
- Do not publish generated outputs (e.g.,
summaries/*.json,summaries/*.txt) inside the skill folder. - Keep only source files (
SKILL.md,scripts/,references/, helpers) in release artifacts.
Resources
- CLI runner:
scripts/run_youtube2md.sh - Transcript text prep:
prepare.py - Output guidance:
references/output-format.md - Behavior reference:
references/summarization-behavior.md - Security/install notes:
references/security.md - Troubleshooting and error codes:
references/troubleshooting.md