Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
gupsammy avatar

Extract Audio

  • 32 installs
  • 269 repo stars
  • Updated June 11, 2026
  • gupsammy/claudest

Strip or export soundtrack from video files with ffmpeg/ffprobe format rules instead of guessing codec flags.

About

extract-audio is an agent skill that turns natural-language requests like “get the mp3” or “strip audio from video” into a repeatable ffmpeg workflow. Solo builders shipping courses, podcasts, or short-form content install it when they need dependable audio exports without memorizing codec tables. The skill opens with a format decision tree—music archive vs voice podcast vs DAW editing—then walks through probing streams with ffprobe and applying the matching ffmpeg flags. It sits in the build phase as a CLI integration pattern: the agent runs constrained Bash, interprets stream metadata, and can ask clarifying questions when multiple audio tracks exist. Compared to one-off chat answers, the procedural structure reduces wrong-bitrate exports and accidental re-encodes when copy would suffice.

  • Format decision tree maps use cases to FLAC, MP3 VBR/CBR, AAC, WAV, or stream copy
  • ffprobe JSON probe step lists audio streams before choosing encode flags
  • Explicit Bash allowlist for ffprobe and ffmpeg only plus AskUserQuestion for ambiguous inputs
  • Re-encode vs copy guidance avoids unnecessary quality loss when source already matches target

Extract Audio by the numbers

  • 32 all-time installs (skills.sh)
  • Ranked #343 of 550 CLI & Terminal skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/gupsammy/claudest --skill extract-audio

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs32
repo stars269
Security audit3 / 3 scanners passed
Last updatedJune 11, 2026
Repositorygupsammy/claudest

What it does

Strip or export soundtrack from video files with ffmpeg/ffprobe format rules instead of guessing codec flags.

Files

SKILL.mdMarkdownGitHub ↗

Format Decision Tree

User wantsFormatFlagsWhy
Music, archive qualityFLAC-c:a flacLossless, no quality loss
Music, small + transparentMP3 VBR-c:a libmp3lame -q:a 0~200kbps avg, perceptually lossless
Podcast / voiceMP3 128k CBR-c:a libmp3lame -b:a 128kSufficient for speech, universally compatible
Mobile / streamingAAC 192k-c:a aac -b:a 192kBetter than MP3 at equivalent bitrate
DAW / editingWAV-c:a pcm_s16le -ar 44100No encoding loss, widest DAW support
Source already target formatCopy-c:a copyNo re-encode, instant, lossless

Process

1. Probe audio streams

ffprobe -v quiet -print_format json -show_streams "$INPUT" | \
  python3 -c "
import json, sys
streams = [s for s in json.load(sys.stdin)['streams'] if s['codec_type']=='audio']
for i, s in enumerate(streams):
    print(f'Stream {i}: {s[\"codec_name\"]} {s.get(\"bit_rate\",\"?\")} bps {s.get(\"channel_layout\",\"?\")}')
"

2. Determine format

Apply the decision tree above if the user didn't specify. If the source audio codec already matches the target, use -c:a copy to avoid transcoding.

If multiple audio streams exist, ask the user which to extract — or use -map 0:a to extract all. Once the user responds, apply -map 0:a:N (where N is the zero-based stream index they chose) or -map 0:a for all streams in the Phase 3 command.

3. Construct command

# General pattern (-vn drops the video stream entirely):
ffmpeg -i "$INPUT" -vn [FORMAT_FLAGS] "$OUTPUT"

# Examples:
ffmpeg -i video.mp4 -vn -c:a libmp3lame -q:a 0 audio.mp3        # MP3 VBR best quality
ffmpeg -i video.mp4 -vn -c:a libmp3lame -b:a 128k podcast.mp3   # MP3 128k CBR
ffmpeg -i video.mp4 -vn -c:a flac archive.flac                   # FLAC lossless
ffmpeg -i video.mp4 -vn -c:a aac -b:a 192k mobile.aac           # AAC
ffmpeg -i video.mp4 -vn -c:a pcm_s16le -ar 44100 edit.wav       # WAV for DAW
ffmpeg -i video.mp4 -vn -c:a copy original.m4a                  # Copy audio stream

4. Confirm and run

Show: detected source codec and bitrate, chosen output format, output path. Wait for approval, then run.

Report output file size and duration: ffprobe -v quiet -show_format "$OUTPUT" | grep -E "duration|size"

Key Decisions

Preserve generation quality: avoid transcoding chains that degrade source fidelity. Each decision below is an application of this principle.

  • Lossy-to-lossy warning: if the source is already lossy (MP3, AAC, OGG) and the user wants a different lossy format, warn them that re-encoding degrades quality. Recommend keeping the source format or using -c:a copy where container compatibility allows.
  • For files >1 hour, ask whether the user wants the full file or a specific range — trimming can be added with -ss and -to before -vn.
  • M4A vs AAC: AAC is the codec, M4A is the container. Use .m4a extension for Apple device compatibility; use .aac for a raw stream.

Related skills

FAQ

Is Extract Audio safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.