Agent skill

Youtube Transcribe

by kennyzir in kennyzir/7deer_skills

YouTube video transcription and memory workflow. An agent skill from kennyzir/7deer_skills.

MITAuto-check passedMedia & Creative

Install Youtube Transcribe

skills CLI
$ npx skills add kennyzir/7deer_skills --skill youtube-transcribe -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kennyzir/7deer_skills youtube-transcribe --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kennyzir/7deer_skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/youtube-transcribe .claude/skills/youtube-transcribe && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
youtube-transcribe
GitHub stars
322
Token cost
~1.7k tokens
SKILL.md length
340 words
Files
3 (incl. scripts, references)
Skills in repo
33
Repo updated
First seen
Licence
MIT

At a glance

YouTube video transcription and memory workflow. An agent skill from kennyzir/7deer_skills.

  • Works in 7 steps: Parse YouTube URL → Get Video Metadata → Download Audio (with Fallback Chain) → …
  • User shares a YouTube URL and asks to transcribe
  • SKILL.md covers Tool Discovery, Environment PATH, Workflow and Error Handling, plus 3 more sections
  • Runs Shell scripts from its folder; calls python3, pip3 and conda; reaches youtube.com and youtu.be

What it does

Youtube Transcribe is an agent skill from kennyzir/7deer_skills. YouTube video transcription and memory workflow. Triggers when user shares a YouTube URL and asks to transcribe, get transcript, extract content, "转录", "transcribe this video". Downloads audio via yt-dlp (android client to avoid 403, with web fallback), converts with ffmpeg, transcribes with whisper CLI, then saves full transcript + summary to today's memory file.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts and reference files (for example `references/environment.md` and `scripts/transcribe.sh`).

It sits in Media & Creative, covering Transcription. It works with YouTube, FFmpeg, Android and Python. The repository describes itself as: Composable, auditable Agent Skills for building Roblox game sites—from opportunity and keyword research to content, SEO, updates, and backlinks. The licence is MIT.

When your agent uses it

  • User shares a YouTube URL and asks to transcribe
  • Extract content
  • Transcribe this video

Example prompts

  • “transcribe this video”
  • “/youtube-transcribe”

Requirements

  • Python 3
  • A Bash shell

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Parse YouTube URL
  2. Get Video Metadata
  3. Download Audio (with Fallback Chain)
  4. Convert to MP3 (if needed)
  5. Transcribe
  6. Save to Memory
  7. Post to Feishu (optional)

What it can do on your machine

Read from SKILL.md and the folder at commit 32a6881. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • pip3
    • conda
    • curl
    • bash
    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • youtube.com
    • youtu.be
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Youtube Transcribe loads about 1.7k tokens when it runs, and up to ~2.1k if it reads all its reference files. Until then it costs about 96 tokens; SKILL.md has 340 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~96
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from kennyzir/7deer_skills at commit 32a6881, republished under its MIT licence (© kennyzir). 340 words, ~1,729 tokens.

Download SKILL.mdSave it as .claude/skills/youtube-transcribe/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
youtube-transcribe
description
YouTube video transcription and memory workflow. Triggers when user shares a YouTube URL and asks to transcribe, get transcript, extract content, "转录", "transcribe this video". Downloads audio via yt-dlp (android client to avoid 403, with web fallback), converts with ffmpeg, transcribes with whisper CLI, then saves full transcript + summary to today's memory file.

YouTube Transcribe Skill

Tool Discovery

Before running, the agent checks for available tools and sets PATH:

bash
# Find tools dynamically — don't hardcode paths
export PATH="/tmp/miniforge/bin:$(python3 -m site --user-base)/bin:$PATH"

YTDLP=$(command -v yt-dlp 2>/dev/null || echo "yt-dlp")
FFMPEG=$(command -v ffmpeg 2>/dev/null || echo "ffmpeg")
WHISPER=$(command -v whisper 2>/dev/null || echo "whisper")

# Verify tools exist
for TOOL in "$YTDLP" "$FFMPEG" "$WHISPER"; do
  [ -x "$TOOL" ] || echo "[WARN] Tool not found or not executable: $TOOL"
done

Tool requirements:

ToolInstallFallback path
yt-dlppip3 install yt-dlp$(python3 -m site --user-base)/bin/yt-dlp
ffmpegconda install -c conda-forge ffmpeg/tmp/miniforge/bin/ffmpeg
whisperpip3 install openai-whisper$(python3 -m site --user-base)/bin/whisper

Environment PATH

bash
export PATH="/tmp/miniforge/bin:$(python3 -m site --user-base)/bin:$PATH"

Workflow

Step 1 — Parse YouTube URL
bash
URL="https://www.youtube.com/watch?v=Q5kYrmzNhcU"
VIDEO_ID=$(echo "$URL" | grep -oE 'v=[^&]+' | cut -d= -f2 | head -1)
# Handles: https://youtu.be/ID, https://www.youtube.com/watch?v=ID&t=..., https://youtube.com/embed/ID
Step 2 — Get Video Metadata
bash
TITLE=$($YTDLP --extractor-args "youtube:player_client=android" \
  --print title --no-warnings "https://www.youtube.com/watch?v=${VIDEO_ID}" 2>/dev/null)
CHANNEL=$($YTDLP --extractor-args "youtube:player_client=android" \
  --print channel --no-warnings "https://www.youtube.com/watch?v=${VIDEO_ID}" 2>/dev/null)
DURATION=$($YTDLP --extractor-args "youtube:player_client=android" \
  --print duration_string --no-warnings "https://www.youtube.com/watch?v=${VIDEO_ID}" 2>/dev/null)
Step 3 — Download Audio (with Fallback Chain)
bash
mkdir -p /tmp/yt_audio

# Strategy: try android client first → if GVS PO Token error, fall back to web client
# (web client may 403 on some videos; android client needs PO token for high-quality formats
# but usually succeeds with format 18 even without PO token)

# Attempt 1: android client (works without PO token for format 18)
$YTDLP -x --audio-format mp3 --audio-quality 0 \
  --extractor-args "youtube:player_client=android" \
  -f "best[ext=mp4]/best" \
  -o "/tmp/yt_audio/${VIDEO_ID}.%(ext)s" \
  "https://www.youtube.com/watch?v=${VIDEO_ID}" 2>&1 | grep -v "^Deprecated\|^NotOpenSSL\|^Warning:"

# If android fails (GVS PO Token required), fall back to web
if [ ! -f "/tmp/yt_audio/${VIDEO_ID}.mp4" ] && [ ! -f "/tmp/yt_audio/${VIDEO_ID}.mp3" ]; then
  echo "[*] Android client failed, trying web client..."
  $YTDLP -x --audio-format mp3 --audio-quality 0 \
    -o "/tmp/yt_audio/${VIDEO_ID}.%(ext)s" \
    "https://www.youtube.com/watch?v=${VIDEO_ID}" 2>&1 | grep -v "^Deprecated\|^NotOpenSSL"
fi

Why --extractor-args "youtube:player_client=android": Web client returns 403 for many videos; android client returns format 18 (mp4, ~480p) without requiring a GVS PO Token, which is sufficient for transcription.

Step 4 — Convert to MP3 (if needed)
bash
# If yt-dlp downloaded .mp4 instead of .mp3
if [ -f "/tmp/yt_audio/${VIDEO_ID}.mp4" ]; then
  $FFMPEG -i "/tmp/yt_audio/${VIDEO_ID}.mp4" \
    -vn -acodec libmp3lame -q:a 2 \
    "/tmp/yt_audio/${VIDEO_ID}.mp3" -y 2>/dev/null
  rm -f "/tmp/yt_audio/${VIDEO_ID}.mp4"
fi
Step 5 — Transcribe
bash
$WHISPER "/tmp/yt_audio/${VIDEO_ID}.mp3" \
  --model tiny \
  --language en \
  --output_dir /tmp/yt_audio \
  --output_format txt 2>&1 | grep -v "^Deprecated\|^UserWarning"

# Whisper outputs to {output_dir}/{filename}.txt
# Rename if needed
[ -f "/tmp/yt_audio/${VIDEO_ID}.txt" ] && \
  mv "/tmp/yt_audio/${VIDEO_ID}.txt" "/tmp/yt_audio/${VIDEO_ID}_transcript.txt"

Model choice: tiny is fastest for English. Use base or small for better accuracy if time permits.

Step 6 — Save to Memory

Append to memory/YYYY-MM-DD.md:

markdown
## YouTube 转录: <Video Title>

- **URL**: https://www.youtube.com/watch?v=<video_id>
- **频道**: <channel_name>
- **时长**: <duration>
- **日期**: YYYY-MM-DD

### 摘要
<3-5 sentence summary>

### 关键引用
> "<notable quote>"

### 核心洞察
<1-3 insights>
Step 7 — Post to Feishu (optional)

If user requests it, send a Feishu message with the summary and key quotes.

Error Handling

ErrorCauseFix
HTTP Error 403 on downloadYouTube web client blockedUse --extractor-args "youtube:player_client=android"
android client https formats require a GVS PO TokenAndroid client needs PO token for high-quality formatsFall back to web client; format 18 (mp4) usually still downloads without token
ffmpeg: command not foundconda env not on PATHexport PATH="/tmp/miniforge/bin:$PATH"
ModuleNotFoundError: whisperUsing wrong pythonUse whisper CLI directly, not python3 -m whisper
exec format error on ffmpegWrong architecture binaryUse /tmp/miniforge/bin/ffmpeg (macOS arm64), not Linux static builds
No transcript file createdwhisper failed silentlyCheck whisper output for CUDA/memory errors; try base model
NotOpenSSLWarningurllib3 v2 + LibreSSLIgnore; download still succeeds

Cleanup

bash
rm -f /tmp/yt_audio/${VIDEO_ID}.*

When NOT to Use This Skill

  • Video has accurate YouTube captions → Use web_fetch with transcript extraction instead (faster, more accurate, preserves speaker labels)
  • User only wants a summary → Ask if full transcript is needed before running (5+ min transcription vs instant captions)
  • Video is very long (>30 min) → Whisper inference takes significant time on CPU; warn user before starting
  • Non-English video → Specify language with --language <code> (e.g., --language zh for Chinese); tiny model quality degrades significantly for non-English

One-Time Installation

bash
# yt-dlp
pip3 install yt-dlp

# Miniforge (ffmpeg + whisper dependencies)
curl -sL "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh" -o /tmp/miniforge.sh
chmod +x /tmp/miniforge.sh
/bin/bash /tmp/miniforge.sh -b -p /tmp/miniforge
/tmp/miniforge/bin/conda install -y ffmpeg -c conda-forge
/tmp/miniforge/bin/pip install openai-whisper

# Add to ~/.zshrc
echo 'export PATH="/tmp/miniforge/bin:$(python3 -m site --user-base)/bin:$PATH"' >> ~/.zshrc

© kennyzir, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts, references) in youtube-transcribe of kennyzir/7deer_skills.

  • SKILL.md
  • references/environment.md
  • scripts/transcribe.sh

Open the folder on GitHubat commit 32a6881

Compare with similar skills

Youtube Transcribe next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Youtube Transcribe compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Youtube Transcribe this skillkennyzir/7deer_skills322—~1.7kAutomated safety check: PassMIT
Ffmpeg Skillkajisho5/ffmpeg-skill1.9k—~7.4kAutomated safety check: PassMIT
Claude Real VideoHUANGCHIHHUNGLeo/claude-real-video2.2k—~639Automated safety check: PassMIT
Watchmathiaschu/watch142—~4kAutomated safety check: WarnMIT
Videohubcacity/VideoHub168—~405Automated safety check: PassMIT
Youtube Clipperop7418/Youtube-clipper-skill2.2k—~1.6kAutomated safety check: NotesMIT

Similar skills

  • Ffmpeg Skill

    kajisho5/ffmpeg-skill

    Edit video and audio with local FFmpeg from natural-language requests: cut, trim, join, resize/reframe (9:16, 1:1), speed change, captions and subtitles (SRT/ASS, animated, karaoke), logos and text…

    1.9k GitHub stars~7.4k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Claude Real Video

    HUANGCHIHHUNGLeo/claude-real-video

    Watch a video for the user. An agent skill from HUANGCHIHHUNGLeo/claude-real-video.

    2.2k GitHub stars~639 tokensUpdated 2 days ago
    Media & CreativeAuto-check passed
  • Watch

    mathiaschu/watch

    Watch a video from YouTube, Instagram, X/Twitter, Vimeo, TikTok or any of ~1800 yt-dlp sites (or a local path).

    142 GitHub stars~4k tokensUpdated 4 mo ago
    Media & CreativeAuto-check: warnings
  • Videohub

    cacity/VideoHub

    VideoHub 总入口。用于识别用户要处理的平台或功能,并路由到更具体的 VideoHub skills,如 YouTube、抖音、闲时队列、FFmpeg、字幕、故事剪辑、影视封面、音乐卡点剪辑和直播录制。

    168 GitHub stars~405 tokensUpdated 9 days ago
    Media & CreativeAuto-check passed
  • Youtube Clipper

    op7418/Youtube-clipper-skill

    YouTube 视频智能剪辑工具。下载视频和字幕,AI 分析生成精细章节(几分钟级别), 用户选择片段后自动剪辑、翻译字幕为中英双语、烧录字幕到视频,并生成总结文案。

    2.2k GitHub stars~1.6k tokensUpdated 8 mo ago
    Media & CreativeAuto-check: notes
  • Video Transcribe

    wendy7756/AI-Video-Transcriber

    Transcribe and summarize a video or podcast from a URL (YouTube, TikTok, Bilibili, Apple Podcasts, SoundCloud, 30+ platforms) or from a local media/.txt file.

    3.3k GitHub stars~937 tokensUpdated 26 days ago
    Media & CreativeAuto-check: notes

More from kennyzir/7deer_skills

All 33 skills in this repo
  • Roblox Homepage Ranking Auditor

    kennyzir/7deer_skills

    Audit a Roblox or game-site homepage against the RB Auto Golden Homepage model.

    322 GitHub stars~3.8k tokensUpdated 12 days ago
    Auto-check passed
  • Roblox Site Architect

    kennyzir/7deer_skills

    Orchestrate an evidence-backed seven-stage Roblox site growth pipeline from opportunity assessment through keyword research, source collection, site planning, SEO QA, freshness, and growth.

    322 GitHub stars~3.6k tokensUpdated 12 days ago
    Auto-check passed
  • SEO Link Strategy

    kennyzir/7deer_skills

    Research backlink opportunities, record contact evidence, and generate personalized local outreach drafts from user-provided product and contact data.

    322 GitHub stars~1.4k tokensUpdated 12 days ago
    Auto-check passed
  • Html5 Game Radar

    kennyzir/7deer_skills

    HTML5 游戏发现雷达 - 多源监测又新又热的 HTML5 游戏,识别 SEO 套利窗口. An agent skill from kennyzir/7deer_skills.

    322 GitHub stars~1.4k tokensUpdated 12 days ago
    Auto-check passed
  • Roblox Hit Evaluator

    kennyzir/7deer_skills

    Evaluate a Roblox game's 30-day breakout potential from public evidence with auditable scores, missing-data bounds, frozen forecasts, and outcome reviews.

    322 GitHub stars~1.3k tokensUpdated 12 days ago
    Auto-check passed
  • SEO Backlink Submitter

    kennyzir/7deer_skills

    为网站生成目录提交计划,并在用户显式授权时通过浏览器填写单个或批量目录表单。适用于“提交网站到目录”“SEO 外链”“目录提交”或“submit site to directories”等请求。

    322 GitHub stars~601 tokensUpdated 12 days ago
    Auto-check passed

Questions about Youtube Transcribe

What does Youtube Transcribe do?

YouTube video transcription and memory workflow. An agent skill from kennyzir/7deer_skills. Youtube Transcribe is an agent skill from kennyzir/7deer_skills. YouTube video transcription and memory workflow.

When should I use Youtube Transcribe?

Youtube Transcribe fits situations like: user shares a YouTube URL and asks to transcribe; extract content; transcribe this video.

How do I install Youtube Transcribe in Claude Code?

Run `npx skills add kennyzir/7deer_skills --skill youtube-transcribe -a claude-code`. Or copy the skill folder (youtube-transcribe in kennyzir/7deer_skills) into .claude/skills/youtube-transcribe in your project. Claude Code loads it when a task matches its description.

How do I install Youtube Transcribe in Codex?

Run `npx skills add kennyzir/7deer_skills --skill youtube-transcribe -a codex`. Or copy the skill folder (youtube-transcribe in kennyzir/7deer_skills) into .agents/skills/youtube-transcribe in your project. Codex loads it when a task matches its description.

Can I use Youtube Transcribe in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kennyzir/7deer_skills --skill youtube-transcribe -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/youtube-transcribe, .gemini/skills/youtube-transcribe, .github/skills/youtube-transcribe and .opencode/skills/youtube-transcribe in your project.

What does Youtube Transcribe need to run?

Going by SKILL.md and its folder, Youtube Transcribe needs a shell for the scripts in its folder and the command-line tools its instructions call (python3, pip3, conda, curl, bash and pip). Our summary lists: Python 3; A Bash shell.

Does Youtube Transcribe access the network?

SKILL.md names 3 domains. In commands or code: youtube.com, youtu.be and github.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Youtube Transcribe safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Youtube Transcribe use?

Youtube Transcribe is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Youtube Transcribe use?

About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 410 tokens, read only when the agent opens those files.

What are the alternatives to Youtube Transcribe?

Skills that share tags, products or a category with Youtube Transcribe: Ffmpeg Skill (kajisho5/ffmpeg-skill, 1.9k stars), Claude Real Video (HUANGCHIHHUNGLeo/claude-real-video, 2.2k stars), Watch (mathiaschu/watch, 142 stars) and Videohub (cacity/VideoHub, 168 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Youtube Transcribe?

kennyzir (a GitHub user) maintains it in kennyzir/7deer_skills, which has 322 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on September 29, 2026.

Source: kennyzir/7deer_skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.