Install
$ agentstack add skill-dp-archive-archive-audio-extractor ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Audio Extractor
Extract pure audio from videos and download audio content. Supports format conversion, metadata embedding, and batch playlist processing.
Prerequisites
- Executor: Must use the
remotionexecutor (provides yt-dlp, ffmpeg, deno) - JS Runtime: deno is required for YouTube extraction (yt-dlp 2025+ default). The remotion executor includes deno.
- ffmpeg: Required for audio format conversion and metadata embedding. Included in remotion executor.
Limitations
| Issue | Detail | |-------|--------| | YouTube rate limiting | Server IPs are frequently rate-limited by YouTube. If you get "This content isn't available, try again later", wait ~1 hour or ask the user to upload the audio file directly. | | YouTube JS runtime | yt-dlp requires deno for YouTube. Without it: No supported JavaScript runtime could be found. | | Geo-restrictions | Some content may be region-locked. Use --geo-bypass flag. | | Authentication | Some platforms require cookies. Use --cookies-from-browser or --cookies cookies.txt. |
Fallback strategy: If YouTube download fails, suggest the user upload the audio file directly or provide a direct audio URL.
Quick Start
# Extract audio (best quality, original format)
yt-dlp -x "URL"
# Extract as MP3
yt-dlp -x --audio-format mp3 "URL"
# MP3 with metadata and cover art
yt-dlp -x --audio-format mp3 --embed-metadata --embed-thumbnail "URL"
Audio Formats
Format Selection
| Format | Command | Use Case | |--------|---------|----------| | MP3 | --audio-format mp3 | Universal compatibility | | M4A/AAC | --audio-format m4a | Apple devices, good quality/size | | FLAC | --audio-format flac | Lossless, archival | | WAV | --audio-format wav | Uncompressed, editing | | OPUS | --audio-format opus | Best quality/size ratio | | Vorbis | --audio-format vorbis | Open source, OGG container | | Best | --audio-format best | Keep original (no conversion) |
Quality Control
# VBR quality (0=best, 10=worst)
yt-dlp -x --audio-format mp3 --audio-quality 0 "URL"
# Specific bitrate
yt-dlp -x --audio-format mp3 --audio-quality 320K "URL"
yt-dlp -x --audio-format mp3 --audio-quality 192K "URL"
# FLAC (lossless - quality setting ignored)
yt-dlp -x --audio-format flac "URL"
Metadata Embedding
Embed All Metadata
# Metadata + thumbnail as cover art
yt-dlp -x --audio-format mp3 \
--embed-metadata \
--embed-thumbnail \
"URL"
What Gets Embedded
- Title
- Artist/Uploader
- Album (playlist name if applicable)
- Track number (playlist index)
- Upload date
- Description
- Thumbnail as cover art
Custom Metadata
# Override artist
yt-dlp -x --audio-format mp3 \
--embed-metadata \
--parse-metadata "uploader:%(artist)s" \
"URL"
# Set album name
yt-dlp -x --audio-format mp3 \
--embed-metadata \
--parse-metadata "playlist:%(album)s" \
"URL"
Playlist/Batch Processing
Download Full Playlist as Audio
# Basic playlist extraction
yt-dlp -x --audio-format mp3 "PLAYLIST_URL"
# With numbering and organization
yt-dlp -x --audio-format mp3 \
--embed-metadata --embed-thumbnail \
-o "%(playlist)s/%(playlist_index)02d - %(title)s.%(ext)s" \
"PLAYLIST_URL"
# Skip already downloaded
yt-dlp -x --audio-format mp3 \
--download-archive downloaded.txt \
"PLAYLIST_URL"
Selective Download
# First 10 tracks
yt-dlp -x --audio-format mp3 -I 1:10 "PLAYLIST_URL"
# Specific tracks
yt-dlp -x --audio-format mp3 -I 1,5,10 "PLAYLIST_URL"
# Last 5 tracks
yt-dlp -x --audio-format mp3 -I -5: "PLAYLIST_URL"
Output Naming
Template Variables
| Variable | Description | Example | |----------|-------------|---------| | %(title)s | Track title | Song Name | | %(uploader)s | Artist/Channel | Artist Name | | %(playlist)s | Album/Playlist | My Playlist | | %(playlist_index)s | Track number | 1 | | %(upload_date)s | Release date | 20231215 | | %(ext)s | Extension | mp3 |
Common Patterns
# Artist - Title
yt-dlp -x -o "%(uploader)s - %(title)s.%(ext)s" "URL"
# Album folder with track numbers
yt-dlp -x -o "%(playlist)s/%(playlist_index)02d - %(title)s.%(ext)s" "PLAYLIST_URL"
# Date-organized
yt-dlp -x -o "%(upload_date>%Y-%m)s/%(title)s.%(ext)s" "URL"
Platform-Specific
YouTube Music / YouTube
# Standard extraction
yt-dlp -x --audio-format mp3 --embed-metadata --embed-thumbnail "URL"
# For music videos, prefer audio stream
yt-dlp -f "bestaudio" -x --audio-format mp3 "URL"
SoundCloud
# Direct audio (often already MP3)
yt-dlp -x "https://soundcloud.com/artist/track"
# Playlist/album
yt-dlp -x --audio-format mp3 \
-o "%(uploader)s - %(album)s/%(playlist_index)02d - %(title)s.%(ext)s" \
"https://soundcloud.com/artist/sets/album"
Bandcamp
# Full album with metadata
yt-dlp -x --audio-format flac \
--embed-metadata --embed-thumbnail \
-o "%(album)s/%(track_number)02d - %(track)s.%(ext)s" \
"https://artist.bandcamp.com/album/name"
Podcasts
# Single episode
yt-dlp -x --audio-format mp3 --embed-metadata "EPISODE_URL"
# Full podcast feed (RSS)
yt-dlp -x --audio-format mp3 \
-o "%(playlist)s/%(upload_date)s - %(title)s.%(ext)s" \
--download-archive podcasts.txt \
"RSS_FEED_URL"
# Apple Podcasts
yt-dlp -x --audio-format mp3 \
--embed-metadata \
"https://podcasts.apple.com/..."
Bilibili
yt-dlp -x --audio-format mp3 \
--cookies-from-browser chrome \
"https://bilibili.com/video/BV..."
Advanced Options
Parallel Downloads
# Faster playlist downloads
yt-dlp -x --audio-format mp3 \
--concurrent-fragments 4 \
"PLAYLIST_URL"
Post-Processing
# Normalize audio volume
yt-dlp -x --audio-format mp3 \
--postprocessor-args "ffmpeg:-af loudnorm" \
"URL"
# Trim silence
yt-dlp -x --audio-format mp3 \
--postprocessor-args "ffmpeg:-af silenceremove=1:0:-50dB" \
"URL"
Split by Chapters
# Split video into separate audio files by chapter
yt-dlp -x --audio-format mp3 \
--split-chapters \
-o "chapter:%(section_title)s.%(ext)s" \
"URL"
Complete Examples
Extract audio from YouTube playlist as high-quality MP3:
yt-dlp -x --audio-format mp3 --audio-quality 0 \
--embed-metadata --embed-thumbnail \
-o "%(playlist)s/%(playlist_index)02d - %(title)s.%(ext)s" \
--download-archive downloaded.txt \
"https://youtube.com/playlist?list=..."
Download podcast episode:
yt-dlp -x --audio-format mp3 \
--embed-metadata \
-o "%(uploader)s - %(title)s.%(ext)s" \
"https://podcasts.apple.com/..."
Extract FLAC from Bandcamp album:
yt-dlp -x --audio-format flac \
--embed-metadata --embed-thumbnail \
-o "%(album)s/%(track_number)02d - %(track)s.%(ext)s" \
"https://artist.bandcamp.com/album/..."
Extract audio from local video file:
ffmpeg -i video.mp4 -vn -acodec libmp3lame -q:a 0 audio.mp3
Troubleshooting
| Issue | Solution | |-------|----------| | "ffmpeg not found" | Install ffmpeg: brew install ffmpeg / apt install ffmpeg | | No cover art | Add --embed-thumbnail (requires ffmpeg) | | Wrong metadata | Use --parse-metadata to remap fields | | Poor quality | Use --audio-quality 0 or lossless format |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: dp-archive
- Source: dp-archive/archive
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.