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…
YouTube video transcription and memory workflow. An agent skill from kennyzir/7deer_skills.
$ npx skills add kennyzir/7deer_skills --skill youtube-transcribe -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kennyzir/7deer_skills youtube-transcribe --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "youtube-transcribe" agent skill from https://github.com/kennyzir/7deer_skills/tree/main/youtube-transcribe into .claude/skills/youtube-transcribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-transcribe", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/kennyzir/7deer_skills/tree/main/youtube-transcribeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add kennyzir/7deer_skills --skill youtube-transcribe -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kennyzir/7deer_skills youtube-transcribe --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kennyzir/7deer_skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/youtube-transcribe .agents/skills/youtube-transcribe && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "youtube-transcribe" agent skill from https://github.com/kennyzir/7deer_skills/tree/main/youtube-transcribe into .agents/skills/youtube-transcribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-transcribe", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kennyzir/7deer_skills --skill youtube-transcribe -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kennyzir/7deer_skills youtube-transcribe --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kennyzir/7deer_skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/youtube-transcribe .cursor/skills/youtube-transcribe && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "youtube-transcribe" agent skill from https://github.com/kennyzir/7deer_skills/tree/main/youtube-transcribe into .cursor/skills/youtube-transcribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-transcribe", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/kennyzir/7deer_skills.git --path youtube-transcribe--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add kennyzir/7deer_skills --skill youtube-transcribe -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kennyzir/7deer_skills youtube-transcribe --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kennyzir/7deer_skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/youtube-transcribe .gemini/skills/youtube-transcribe && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "youtube-transcribe" agent skill from https://github.com/kennyzir/7deer_skills/tree/main/youtube-transcribe into .gemini/skills/youtube-transcribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-transcribe", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install kennyzir/7deer_skills youtube-transcribeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add kennyzir/7deer_skills --skill youtube-transcribe -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kennyzir/7deer_skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/youtube-transcribe .github/skills/youtube-transcribe && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "youtube-transcribe" agent skill from https://github.com/kennyzir/7deer_skills/tree/main/youtube-transcribe into .github/skills/youtube-transcribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-transcribe", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add kennyzir/7deer_skills --skill youtube-transcribe -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kennyzir/7deer_skills youtube-transcribe --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kennyzir/7deer_skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/youtube-transcribe .opencode/skills/youtube-transcribe && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "youtube-transcribe" agent skill from https://github.com/kennyzir/7deer_skills/tree/main/youtube-transcribe into .opencode/skills/youtube-transcribe/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "youtube-transcribe", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
youtube-transcribeYouTube 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. 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.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 32a6881. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
python3pip3condacurlbashpipFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
youtube.comyoutu.begithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from kennyzir/7deer_skills at commit 32a6881, republished under its MIT licence (© kennyzir). 340 words, ~1,729 tokens.
.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.Before running, the agent checks for available tools and sets PATH:
# 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"
doneTool requirements:
| Tool | Install | Fallback path |
|---|---|---|
| yt-dlp | pip3 install yt-dlp | $(python3 -m site --user-base)/bin/yt-dlp |
| ffmpeg | conda install -c conda-forge ffmpeg | /tmp/miniforge/bin/ffmpeg |
| whisper | pip3 install openai-whisper | $(python3 -m site --user-base)/bin/whisper |
export PATH="/tmp/miniforge/bin:$(python3 -m site --user-base)/bin:$PATH"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/IDTITLE=$($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)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"
fiWhy --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.
# 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$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.
Append to memory/YYYY-MM-DD.md:
## 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>If user requests it, send a Feishu message with the summary and key quotes.
| Error | Cause | Fix |
|---|---|---|
HTTP Error 403 on download | YouTube web client blocked | Use --extractor-args "youtube:player_client=android" |
android client https formats require a GVS PO Token | Android client needs PO token for high-quality formats | Fall back to web client; format 18 (mp4) usually still downloads without token |
ffmpeg: command not found | conda env not on PATH | export PATH="/tmp/miniforge/bin:$PATH" |
ModuleNotFoundError: whisper | Using wrong python | Use whisper CLI directly, not python3 -m whisper |
exec format error on ffmpeg | Wrong architecture binary | Use /tmp/miniforge/bin/ffmpeg (macOS arm64), not Linux static builds |
| No transcript file created | whisper failed silently | Check whisper output for CUDA/memory errors; try base model |
NotOpenSSLWarning | urllib3 v2 + LibreSSL | Ignore; download still succeeds |
rm -f /tmp/yt_audio/${VIDEO_ID}.*web_fetch with transcript extraction instead (faster, more accurate, preserves speaker labels)--language <code> (e.g., --language zh for Chinese); tiny model quality degrades significantly for non-English# 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
SKILL.md and 2 other files (scripts, references) in youtube-transcribe of kennyzir/7deer_skills.
Open the folder on GitHubat commit 32a6881
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Youtube Transcribe this skillkennyzir/7deer_skills | 322 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Ffmpeg Skillkajisho5/ffmpeg-skill | 1.9k | — | ~7.4k | Automated safety check: Pass | MIT | |
| Claude Real VideoHUANGCHIHHUNGLeo/claude-real-video | 2.2k | — | ~639 | Automated safety check: Pass | MIT | |
| Watchmathiaschu/watch | 142 | — | ~4k | Automated safety check: Warn | MIT | |
| Videohubcacity/VideoHub | 168 | — | ~405 | Automated safety check: Pass | MIT | |
| Youtube Clipperop7418/Youtube-clipper-skill | 2.2k | — | ~1.6k | Automated safety check: Notes | MIT |
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…
HUANGCHIHHUNGLeo/claude-real-video
Watch a video for the user. An agent skill from HUANGCHIHHUNGLeo/claude-real-video.
mathiaschu/watch
Watch a video from YouTube, Instagram, X/Twitter, Vimeo, TikTok or any of ~1800 yt-dlp sites (or a local path).
cacity/VideoHub
VideoHub 总入口。用于识别用户要处理的平台或功能,并路由到更具体的 VideoHub skills,如 YouTube、抖音、闲时队列、FFmpeg、字幕、故事剪辑、影视封面、音乐卡点剪辑和直播录制。
op7418/Youtube-clipper-skill
YouTube 视频智能剪辑工具。下载视频和字幕,AI 分析生成精细章节(几分钟级别), 用户选择片段后自动剪辑、翻译字幕为中英双语、烧录字幕到视频,并生成总结文案。
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.
kennyzir/7deer_skills
Audit a Roblox or game-site homepage against the RB Auto Golden Homepage model.
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.
kennyzir/7deer_skills
Research backlink opportunities, record contact evidence, and generate personalized local outreach drafts from user-provided product and contact data.
kennyzir/7deer_skills
HTML5 游戏发现雷达 - 多源监测又新又热的 HTML5 游戏,识别 SEO 套利窗口. An agent skill from kennyzir/7deer_skills.
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.
kennyzir/7deer_skills
为网站生成目录提交计划,并在用户显式授权时通过浏览器填写单个或批量目录表单。适用于“提交网站到目录”“SEO 外链”“目录提交”或“submit site to directories”等请求。
Categories
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.
Youtube Transcribe fits situations like: user shares a YouTube URL and asks to transcribe; extract content; transcribe this video.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.