yt-dlp से MP3: सही command, quality settings और metadata
लेखक Tunelio टीमप्रकाशित
एक लाइन काफ़ी है: yt-dlp -x --audio-format mp3 --audio-quality 0 URL। yt-dlp YouTube का सबसे अच्छा audio stream (आमतौर पर Opus या AAC) उतारता है और ffmpeg उसे VBR MP3 में बदलता है। नीचे: flags का मतलब, bitrate कैसे चुनें, cover art और tag embed करें, playlist संभालें, और कब MP3 में बदलना ही नहीं चाहिए।
Command
yt-dlp -x --audio-format mp3 --audio-quality 0 "https://youtu.be/dQw4w9WgXcQ"- -x (--extract-audio): सिर्फ़ audio stream उतारें और audio post-processor चलाएँ।
- --audio-format mp3: नतीजे को ffmpeg से MP3 में transcode करें (ज़रूरी — नीचे देखें)।
- --audio-quality 0: सबसे अच्छी VBR quality (0 = best, 10 = worst, या 192K जैसा fixed bitrate)।
PATH में या --ffmpeg-location से ffmpeg चाहिए; इसके बिना yt-dlp “ffmpeg not found” लिखता है और MP3 की जगह मूल .webm/.m4a save करता है। install के लिए ffmpeg गाइड देखें।
Bitrate: क्या चुनें
--audio-quality 0 # VBR ~220–260 kbps, सबसे अच्छी quality (सुझाया)
--audio-quality 5 # VBR ~120–150 kbps, छोटी files
--audio-quality 192K # constant 192 kbps, उन player के लिए जो VBR नहीं पसंद करतेYouTube का source audio लगभग 128 kbps AAC या ~160 kbps Opus तक ही है। MP3 वह quality नहीं जोड़ सकता जो थी ही नहीं, इसलिए 320K ज़्यादातर file size बढ़ाता है; VBR 0 source की हर चीज़ रखता है। हर MP3 conversion lossy-से-lossy transcode है — MP3 ख़ास तौर पर न चाहिए तो original रखें (अगला section)।
क्या आपको सच में MP3 चाहिए?
yt-dlp -x --audio-format best "URL" # मूल Opus (.webm/.opus) या AAC (.m4a) रखें — कोई transcode नहीं
yt-dlp -x --audio-format m4a "URL" # .m4a में AAC: Apple devices और ज़्यादातर player पर चलता हैपुरानी car stereo, कुछ podcast app और सिर्फ़ MP3 समझने वाली हर चीज़ के लिए MP3 सही है। फ़ोन, browser और आधुनिक player के लिए मूल Opus या AAC छोटा है और बेहतर सुनाई देता है। webm-बनाम-mp3 गाइड में और गहराई है।
Cover art, title, artist
yt-dlp -x --audio-format mp3 --audio-quality 0 \
--embed-thumbnail --embed-metadata \
--parse-metadata "title:%(artist)s - %(title)s" \
"URL"--embed-thumbnail वीडियो thumbnail को ID3 cover art की तरह लिखता है (yt-dlp WebP को JPEG में ख़ुद बदल देता है)। --embed-metadata title, uploader, date और description tag भरता है। --parse-metadata लाइन “Artist - Title” जैसे वीडियो नामों को artist और title field में बाँटती है, अगर uploader ने वही ढंग अपनाया हो।
File नाम और folder
yt-dlp -x --audio-format mp3 -o "~/Music/%(uploader)s/%(title)s.%(ext)s" "URL"
# playlist: playlist के नाम वाले folder में क्रमांकित files
yt-dlp -x --audio-format mp3 -o "%(playlist)s/%(playlist_index)02d - %(title)s.%(ext)s" "PLAYLIST_URL"%(ext)s इस्तेमाल करें, hard-coded .mp3 कभी नहीं: yt-dlp पहले source extension में उतारता है और conversion के बाद rename करता है। player नख़रेबाज़ हो तो --restrict-filenames space और special character बदल देता है।
Playlist और channel
yt-dlp -x --audio-format mp3 --audio-quality 0 \
--download-archive done.txt --ignore-errors \
--sleep-interval 2 --max-sleep-interval 6 \
"https://www.youtube.com/playlist?list=PL..."--download-archive पूरे हो चुके वीडियो याद रखता है ताकि दोबारा चलाने पर सिर्फ़ नए आएँ; --ignore-errors हटाए गए या private item को रोकने की जगह skip करता है; sleep flags bulk run को YouTube की rate limit में रखते हैं — इनके बिना क्या होता है, bot-check गाइड में है।
इसे config file बना लें
# ~/.config/yt-dlp/config (Windows: %APPDATA%\yt-dlp\config.txt)
-x
--audio-format mp3
--audio-quality 0
--embed-thumbnail
--embed-metadata
-o ~/Music/%(title)s.%(ext)sइसके बाद yt-dlp URL काफ़ी है। एक बार video download के लिए --ignore-config दें।
आम समस्याएँ
- output .webm या .m4a है, .mp3 नहीं → ffmpeg गायब है; install करें या --ffmpeg-location दें।
- “Postprocessing: Conversion failed!” → corrupt partial download या बहुत पुराना ffmpeg; .part file हटाएँ, दोनों tools अपडेट करें, retry करें।
- cover art नहीं → --embed-thumbnail को ffmpeg और कुछ files के लिए mutagen Python package चाहिए (official binary और yt-dlp[default] में शामिल)।
- धीमे या throttled download, 403, bot check → यह MP3 की समस्या नहीं; yt-dlp अपडेट करें और 403 व bot-check गाइड देखें।
- multi-language वीडियो पर ग़लत audio track → -f 'ba[language=hi]' से चुनें या yt-dlp -F में track सूची देखें।
API से MP3
MP3 आपके bot या app का feature है, निजी download नहीं, तो ऊपर की pipeline — yt-dlp + ffmpeg + साफ़ IP — चलाने और patch करने वाला infrastructure बन जाती है। hosted API एक request में तैयार MP3 URL लौटाता है:
curl "https://tunelio.dev/create?url=https://youtu.be/dQw4w9WgXcQ&quality=mp3" \
-H "Authorization: Bearer tnl_your_api_key"
# → { "url": "https://…/tunnel?id=…&sig=…", "file_size_str": "3.29 MB", "status": "ok" }Tunelio हमारी अपनी सेवा है; निजी उपयोग के लिए इस page के शुरू की command काफ़ी है। नए account को 100 free credits, card की ज़रूरत नहीं।
स्रोत
- yt-dlp README — Post-processing options (-x, --audio-format, --audio-quality, --embed-*), Output template।
- yt-dlp README — Format selection और sorting (-f, -S)।
- ffmpeg documentation — libmp3lame VBR quality scale।
सामान्य सवाल
क्या --audio-quality 0 यानी 320 kbps?
नहीं। 0 सबसे अच्छी VBR setting है (सामग्री के हिसाब से लगभग 220–260 kbps)। YouTube का source वैसे भी ~128–160 kbps है, तो 320K सिर्फ़ बड़ी files बनाता है।
.mp3 की जगह .webm file क्यों मिली?
ffmpeg installed नहीं या PATH में नहीं, इसलिए yt-dlp ने मूल audio container रखा। ffmpeg install करें या --ffmpeg-location दें।
क्या पूरी playlist MP3 में download कर सकता हूँ?
हाँ: yt-dlp को playlist URL दें और --download-archive व --ignore-errors जोड़ें ताकि दोबारा चलाना incremental रहे और टूटे item batch न रोकें।
क्या MP3 में बदलने से quality घटती है?
थोड़ी — यह YouTube के Opus/AAC पर दूसरा lossy encode है। player support करे तो original रखने के लिए --audio-format best इस्तेमाल करें।