YouTube Summary Skill
name: youtube-summary
by chapati23 · published 2026-03-22
$ claw add gh:chapati23/chapati23-yt-summary---
name: youtube-summary
version: "1.3.2"
author: giskard
description: "Summarize any YouTube video by dropping the link in chat. Supports custom prompts — paste the URL followed by your instructions (e.g. 'focus on the technical details'). Triggers on YouTube URLs."
tags: [youtube, video, summary, transcript]
license: MIT
homepage: https://github.com/chapati23
metadata:
openclaw:
emoji: "📺"
requires:
bins: [python3]
env: [TRANSCRIPT_API_KEY]
primaryEnv: TRANSCRIPT_API_KEY
---
# YouTube Summary Skill
Summarize YouTube videos by extracting transcripts via [TranscriptAPI.com](https://transcriptapi.com) and generating structured summaries.
Setup
Prerequisites
Installation
1. Sign up at [transcriptapi.com](https://transcriptapi.com) and get your API key
2. Provide the API key via **one** of these methods:
- **Environment variable (simplest):** `export TRANSCRIPT_API_KEY="your-key-here"`
- **`pass` password store (most secure):** `pass insert transcriptapi/api-key`
3. Install Python dependencies:
```bash
pip install -r skills/youtube-summary/requirements.txt
```
Detection
Trigger on messages containing YouTube URLs matching any of:
⚠️ Critical Rules
Workflow
Step 1: Extract transcript
**If using `pass`:**
_yt_key_file=$(mktemp) && pass transcriptapi/api-key > "$_yt_key_file" && python3 skills/youtube-summary/scripts/extract.py "YOUTUBE_URL_OR_ID" --api-key-file "$_yt_key_file"; rm -f "$_yt_key_file"**If using env var:**
python3 skills/youtube-summary/scripts/extract.py "YOUTUBE_URL_OR_ID"(Reads `TRANSCRIPT_API_KEY` from the environment automatically.)
**Security note:** The `pass` + temp file approach avoids exposing the key in `ps` output or shell history. The env var approach is simpler but the key is visible in the process environment.
Parse stdout:
Step 2: Summarize the transcript
Use the extracted transcript to generate a summary. The summary language must match the transcript language (from the `language` field).
**If tokens < 50000** — single-pass: summarize the full transcript in one request.
**If tokens ≥ 50000** — tell the user it's a long video and summarize the first ~40K tokens with a note that it was truncated.
**Default summary format** (use when no custom prompt given):
{header}
**TL;DR:** 2-3 sentence summary.
**Key Points:**
• Point one
• Point two
• (3-7 total)
**Notable Quotes:** (only if genuinely quotable lines exist)
> "Quote here"**Custom prompt** — if the user included text alongside the URL, append it as additional instructions for the summary.
Step 3: Reply
Error Handling
Why TranscriptAPI?
YouTube aggressively blocks datacenter/IPv6 ranges from accessing transcripts. Most cloud VPS (Hetzner, DigitalOcean, AWS, etc.) are blocked — direct transcript fetching fails for most videos when running from a server.
TranscriptAPI.com proxies requests through residential IPs, bypassing these blocks reliably. The $5/mo plan covers 1,000 transcript fetches.
💡 **Tip:** Add instructions after the URL to customize the summary (e.g. "focus on the technical details").
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...