YouTube to Ebook
Turns YouTube uploads into EPUB articles; documents live transcript API traps
Test report
- Verdict
- Works with setup
- Score
- Tested
- Jul 17, 2026
- Environment
- Claude Code 2.x (agent harness)
- Upstream re-checked
- Aug 10, 2026 · 0f334c1
Ran the task «get YouTube video transcript and compile EPUB from articles» in a venv with real libraries. Baseline (what I write from memory) — YouTubeTranscriptApi.get_transcript(video_id) — failed on live youtube-transcript-api 1.2.4 with AttributeError: type object 'YouTubeTranscriptApi' has no attribute 'get_transcript'; code from skill's pitfall #3 (ytt_api = YouTubeTranscriptApi(); ytt_api.fetch(video_id)) worked and extracted 61 real snippets; class introspection confirmed only two public methods remained — fetch and list. That is, the main value of the skill (six documented pitfalls) was not fluff, but verifiably working knowledge that the model did not have from memory. The create_epub function from send_email.py assembled a valid EPUB of 3309 bytes with correct mimetype application/epub+zip and a table of contents; the Shorts detector via /shorts/ redirect correctly returned False for a long video (did not check positive case — no known Shorts ID). The full pipeline could not be measured: YOUTUBE_API_KEY and ANTHROPIC_API_KEY were needed, so the steps «video selection» and «article writing» remained unchecked. Documentation lied in two places: SKILL.md promised channels.txt and the command python main.py --channels, but argparse was completely absent in main.py, and channels were hardcoded as a CHANNELS list in get_videos.py (the string channels.txt appeared only in README and SKILL.md, not in any .py file); plus EPUB was assembled inside send_newsletter, so the claimed email «optionality» was disingenuous: without Gmail credentials, the file would be written to disk, but the pipeline would fail on SMTP, and run_newsletter.sh was hardcoded with paths /Users/bytedance/.
Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works
- Installs cleanly 5/5
- Triggers reliably 4/5
- Output vs. baseline 7/10
- Docs & honesty 3/5
What YouTube to Ebook does
Python pipeline that pulls the latest long-form videos from YouTube channels, extracts transcripts, rewrites them into magazine-style articles with Claude, and packages the result as an EPUB. Triggers when someone wants YouTube videos turned into readable ebook or digest form.
How to install YouTube to Ebook
mkdir -p ~/.claude/skills && git clone --depth 1 https://github.com/zarazhangrui/youtube-to-ebook.git ~/.claude/skills/youtube-to-ebook
Skills live in ~/.claude/skills/ (global) or .claude/skills/
(per-project). Restart Claude Code after installing.
Commands — how to trigger YouTube to Ebook
-
/youtube-to-ebookTurns YouTube uploads into EPUB articles; documents live transcript API traps
It also activates on plain-language prompts like these:
-
Turn this YouTube channel's latest videos into an EPUB I can read later -
Pull the transcript from this video and package it as a magazine article -
I want a digest ebook made from a creator's recent long-form uploads
Frequently asked questions
- Is the YouTube to Ebook skill free?
- Yes. The skill itself is free from zarazhangrui/youtube-to-ebook. SkillProof publishes the install command and an independent test verdict at no cost.
- Does YouTube to Ebook work with Claude Code?
- We tested it with Claude Code 2.x (agent harness) on Jul 17, 2026. Verdict: Works with setup. Ran the task «get YouTube video transcript and compile EPUB from articles» in a venv with real libraries. Baseline (what I write from memory) — YouTubeTranscriptApi.get_transcript(video_id) — failed on live youtube-transcript-api 1.2.4 with AttributeError: type object 'YouTubeTranscriptApi' has no attribute 'get_transcript'; code from skill's pitfall #3 (ytt_api = YouTubeTranscriptApi(); ytt_api.fetch(video_id)) worked and extracted 61 real snippets; class introspection confirmed only two public methods remained — fetch and list. That is, the main value of the skill (six documented pitfalls) was not fluff, but verifiably working knowledge that the model did not have from memory. The create_epub function from send_email.py assembled a valid EPUB of 3309 bytes with correct mimetype application/epub+zip and a table of contents; the Shorts detector via /shorts/ redirect correctly returned False for a long video (did not check positive case — no known Shorts ID). The full pipeline could not be measured: YOUTUBE_API_KEY and ANTHROPIC_API_KEY were needed, so the steps «video selection» and «article writing» remained unchecked. Documentation lied in two places: SKILL.md promised channels.txt and the command python main.py --channels, but argparse was completely absent in main.py, and channels were hardcoded as a CHANNELS list in get_videos.py (the string channels.txt appeared only in README and SKILL.md, not in any .py file); plus EPUB was assembled inside send_newsletter, so the claimed email «optionality» was disingenuous: without Gmail credentials, the file would be written to disk, but the pipeline would fail on SMTP, and run_newsletter.sh was hardcoded with paths /Users/bytedance/.
- What is the YouTube to Ebook SkillProof Score?
- 7.6/10 — installs cleanly 5/5, triggers reliably 4/5, output vs. baseline 7/10, docs & honesty 3/5.
- How do I install YouTube to Ebook?
- Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
- Can I use YouTube to Ebook with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
- The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.