alekseiul/sprut-agent-kit/tubescribe
Claude Code and agent skill by alekseiul/sprut-agent-kit
- community
Checking that the SKILL.md file is still in the repository.
YouTube video summarizer with speaker detection, formatted documents, and audio output.
Install
npx vskill@latest install alekseiul/sprut-agent-kit/tubescribeSKILL.md
metadata: { "claudeclaw": { "emoji": "🎬", "requires": { "bins": ["summarize"] } } }
TubeScribe 🎬
Turn any YouTube video into a polished document + audio summary.
Drop a YouTube link → get a beautiful transcript with speaker labels, key quotes, timestamps that link back to the video, and an audio summary you can listen to on the go.
💸 Free & No Paid APIs
- No subscriptions or API keys — works out of the box
- Local processing — transcription, speaker detection, and TTS run on your machine
- Network access — fetching from YouTube (captions, metadata, comments) requires internet
- No data uploaded — nothing is sent to external services; all processing stays on your machine
- Safe sub-agent — spawned sub-agent has strict instructions: no software installation, no network calls beyond YouTube
✨ Features
- 📄 Transcript with summary and key quotes — Export as DOCX, HTML, or Markdown
- 🎯 Smart Speaker Detection — Automatically identifies participants
- 🔊 Audio Summaries — Listen to key points (MP3/WAV)
- 📝 Clickable Timestamps — Every quote links directly to that moment in the video
- 💬 YouTube Comments — Viewer sentiment analysis and best comments
- 📋 Queue Support — Send multiple links, they get processed in order
- 🚀 Non-Blocking Workflow — Conversation continues while video processes in background
🎬 Works With Any Video
- Interviews & podcasts (multi-speaker detection)
- Lectures & tutorials (single speaker)
- Music videos (lyrics extraction)
- News & documentaries
- Any YouTube content with captions
Quick Start
When user sends a YouTube URL:
- Spawn sub-agent with the full pipeline task immediately
- Reply: "🎬 TubeScribe is processing — I'll let you know when it's ready!"
- Continue conversation (don't wait!)
- Sub-agent notification will announce completion with title and details
DO NOT BLOCK — spawn and move on instantly.
First-Time Setup
Run setup to check dependencies and configure defaults:
This checks: summarize CLI, pandoc, ffmpeg, Kokoro TTS
Full Workflow (Single Sub-Agent)
Spawn ONE sub-agent that does the entire pipeline:
python3 skills/tubescribe/scripts/tubescribe.py "{youtube_url}"
pandoc <output_path> -o ~/Documents/TubeScribe/<safe_title>.docx
Write summary to temp file (use python3 to write, avoids shell escaping issues)
python3 -c " text = '''YOUR SUMMARY TEXT HERE''' with open('<temp_dir>/tubescribe_<video_id>_summary.txt', 'w') as f: f.write(text) "
Generate audio (auto-detects engine, voice, format from config)
python3 skills/tubescribe/scripts/tubescribe.py \ --generate-audio <temp_dir>/tubescribe_<video_id>_summary.txt \ --audio-output ~/Documents/TubeScribe/<safe_title>_summary
python3 skills/tubescribe/scripts/tubescribe.py --cleanup <video_id>
open ~/Documents/TubeScribe/
After spawning, reply immediately:
🎬 TubeScribe is processing - I'll let you know when it's ready!
Then continue the conversation. The sub-agent notification announces completion.
Configuration
Config file: ~/.tubescribe/config.json
Output Options
| Option | Default | Description | |
|---|---|---|---|
output.folder | ~/Documents/TubeScribe | Where to save files | |
output.open_folder_after | true | Open output folder when done | |
output.open_document_after | false | Auto-open generated document | |
output.open_audio_after | false | Auto-open generated audio summary |
Document Options
| Option | Default | Values | Description | |
|---|---|---|---|---|
document.format | docx | docx, html, md | Output format | |
document.engine | pandoc | pandoc | Converter for DOCX (falls back to HTML) |
Audio Options
| Option | Default | Values | Description | |
|---|---|---|---|---|
audio.enabled | true | true, false | Generate audio summary | |
audio.format | mp3 | mp3, wav | Audio format (mp3 needs ffmpeg) | |
audio.tts_engine | mlx | mlx, kokoro, builtin | TTS engine (mlx = fastest on Apple Silicon) |
MLX-Audio Options (preferred on Apple Silicon)
| Option | Default | Description | |
|---|---|---|---|
mlx_audio.path | ~/.claudeclaw/tools/mlx-audio | mlx-audio venv location | |
mlx_audio.model | mlx-community/Kokoro-82M-bf16 | MLX model to use | |
mlx_audio.voice | af_heart | Voice preset (used if no voice_blend) | |
mlx_audio.voice_blend | {af_heart: 0.6, af_sky: 0.4} | Custom voice mix (weighted blend) | |
mlx_audio.lang_code | a | Language code (a=US English) | |
mlx_audio.speed | 1.05 | Playback speed (1.0 = normal, 1.05 = 5% faster) |
Kokoro PyTorch Options (fallback)
| Option | Default | Description | |
|---|---|---|---|
kokoro.path | ~/.claudeclaw/tools/kokoro | Kokoro repo location | |
kokoro.voice_blend | {af_heart: 0.6, af_sky: 0.4} | Custom voice mix | |
kokoro.speed | 1.05 | Playback speed (1.0 = normal, 1.05 = 5% faster) |
Processing Options
| Option | Default | Description | |
|---|---|---|---|
processing.subagent_timeout | 600 | Seconds for sub-agent (increase for long videos) | |
processing.cleanup_temp_files | true | Remove /tmp files after completion |
Comment Options
| Option | Default | Description | |
|---|---|---|---|
comments.max_count | 50 | Number of comments to fetch | |
comments.timeout | 90 | Timeout for comment fetching (seconds) |
Queue Options
| Option | Default | Description | |
|---|---|---|---|
queue.stale_minutes | 30 | Consider a processing job stale after this many minutes |
Output Structure
After generation, opens the folder (not individual files) so you can access everything.
Dependencies
Required:
summarizeCLI —brew install steipete/tap/summarize- Python 3.8+
Optional (better quality):
pandoc— DOCX output:brew install pandocffmpeg— MP3 audio:brew install ffmpegyt-dlp— YouTube comments:brew install yt-dlp- mlx-audio — Fastest TTS on Apple Silicon:
pip install mlx-audio(uses MLX backend for Kokoro) - Kokoro TTS — PyTorch fallback: see https://github.com/hexgrad/kokoro
yt-dlp Search Paths
TubeScribe checks these locations (in order):
| Priority | Path | Source | |
|---|---|---|---|
| 1 | which yt-dlp | System PATH | |
| 2 | /opt/homebrew/bin/yt-dlp | Homebrew (Apple Silicon) | |
| 3 | /usr/local/bin/yt-dlp | Homebrew (Intel) / Linux | |
| 4 | ~/.local/bin/yt-dlp | pip install --user | |
| 5 | ~/.local/pipx/venvs/yt-dlp/bin/yt-dlp | pipx | |
| 6 | ~/.claudeclaw/tools/yt-dlp/yt-dlp | TubeScribe auto-install |
If not found, setup downloads a standalone binary to the tools directory. The tools directory version doesn't conflict with system installations.
Queue Handling
When user sends multiple YouTube URLs while one is processing:
Check Before Starting
If Already Processing
After Completion
Queue Commands
| Command | Description | |
|---|---|---|
--queue-status | Show what's processing + queued items | |
--queue-add URL | Add URL to queue | |
--queue-next | Process next item from queue | |
--queue-clear | Clear entire queue |
Batch Processing (multiple URLs at once)
Processes all URLs sequentially with a summary at the end.
Error Handling
The script detects and reports these errors with clear messages:
| Error | Message | |
|---|---|---|
| Invalid URL | ❌ Not a valid YouTube URL | |
| Private video | ❌ Video is private — can't access | |
| Video removed | ❌ Video not found or removed | |
| No captions | ❌ No captions available for this video | |
| Age-restricted | ❌ Age-restricted video — can't access without login | |
| Region-blocked | ❌ Video blocked in your region | |
| Live stream | ❌ Live streams not supported — wait until it ends | |
| Network error | ❌ Network error — check your connection | |
| Timeout | ❌ Request timed out — try again later |
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/tubescribe/SKILL.md
Popularity
- Repository stars
- 45
- Repository forks
- 16
- 7-day trend score
- 19
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 19 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/alekseiul/sprut-agent-kit/tubescribe)