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 remotion executor (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