Hi friends,

I’ve been using yt-dlp to download a few things off of YouTube Music, and I just wanted to ask a few questions about best practice. Right now, I’ve just been doing it this way:

yt-dlp -f bestaudio -x

I’ve found that has usually downloaded .opus files (though, .m4a as of late—anyone know why this is?), but, I was wondering (for the sake of compatibility with different music players), do I lose anything by passing --recode mp3?

Also, about losing the .opus files, I got this output when I ran yt-dlp -F on a link:

|ID |  EXT   RESOLUTION FPS CH |    FILESIZE  TBR PROTO | VCODEC         VBR ACODEC      ABR ASR MORE INFO
--------------------------------------------------------------------------------------------------------------------------
233 mp4   audio only        |                  m3u8  | audio only         unknown             Default
234 mp4   audio only        |                  m3u8  | audio only         unknown             Default
249 webm  audio only      2 |     1.30MiB  64k https | audio only         opus        64k 48k low, THROTTLED, webm_dash
250 webm  audio only      2 |     1.64MiB  81k https | audio only         opus        81k 48k low, THROTTLED, webm_dash
139 m4a   audio only      2 |  1019.36KiB  49k https | audio only         mp4a.40.5   49k 22k low, m4a_dash
251 webm  audio only      2 |     3.03MiB 149k https | audio only         opus       149k 48k medium, THROTTLED, webm_dash
140 m4a   audio only      2 |     2.64MiB 130k https | audio only         mp4a.40.2  130k 44k medium, m4a_dash

Any insights as to why I’m getting that throttling, and why it’s downloading m4a instead of opus? Is it even that much of a difference? Is there some option I can pass to yt-dlp to avoid this?

Any help is much appreciated!

  • @ssm
    link
    English
    24 months ago

    I don’t think opus can be stored in an mp3 container without reencoding. Opus can be stored in mkv, ogg (or opus, an alias of the ogg file format, unless that changed), mp4 (I think this may be experimental?), and webm, off the top of my head. Try using ffmpeg to copy to various formats: ffmpeg -i in.opus -c copy out.ext, replacing ext with whatever file format you need. -c copy will always be lossless.

    You can also try reencoding as flac or another lossless audio codec, but this may balloon your file size.