yt-audio
Skill0 starsChanged 5 months agoMITView on GitHub
Download a video's audio track as an m4a (AAC) file that imports cleanly into Instagram Edits / Reels. Use whenever the user pastes a YouTube (or other yt-dlp-supported) link and wants the audio, or says "download this as audio", "rip the audio", "grab the sound from this video", "get this for Instagram edits", "save this song", or similar. Fast, one-command process.
In this repository18 other files it gives its agents.
- app-icon-gridSkill
- archive-manualSkill
- commitSkill
- component-consistencySkill
- component-locatorSkill
- debug-triageSkill
- gemini-iconSkill
- parity-auditorSkill
- prd-writingSkill
- refactor-and-safety-passSkill
- release-helperSkill
- smellSkill
- streamdeck-aerospace-rewireSkill
- streamdeck-workspace-buttonSkill
- svg-icon-renderSkill
- test-conventionsSkill
- verification-gateSkill
- work-breakdownSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
Run it in the background if the video is long (it polls fast for short clips.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
yt-audio
Pull the audio from any yt-dlp-supported video (YouTube, etc.) as an m4a / AAC file — the format Instagram Edits and Reels import without re-encoding hassle. Saves to ~/Downloads by default.
When to use
Trigger on any paste of a video link plus intent to get the audio:
- "download this as audio" / "rip the audio" / "just the sound"
- "for instagram edits" / "for a reel"
- a bare YouTube/youtu.be URL following an earlier audio-download request
How to run
One command — pass the URL (and optionally an output dir):
~/.claude/skills/yt-audio/scripts/grab.sh "<url>" [outdir]It prints the final file path on success. Report that path back to the user.
Run it in the background if the video is long (it polls fast for short clips; longer ones can take 30s+). For typical short clips it finishes in a few seconds.
Notes
- Output is
bestaudio→ m4a at top quality (--audio-quality 0). - The script auto-recovers from a stale yt-dlp: YouTube periodically rotates its player and breaks older binaries with errors like "n challenge solving failed" or "video is not available". On first failure the script runs
brew upgrade yt-dlpand retries once. (This was the exact failure on 2026-06-21.) - Requires
yt-dlp+ffmpeg(both via brew). The script checks and tells you if either is missing. - For a different container (mp3, wav), change
--audio-formatinscripts/grab.sh— but m4a is the right default for Instagram.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

