debian 12.11, yt-dlp stable@2025.06.30.
I used this argument: “-f bv*[ext=mp4]+ba[ext=m4a]/b[ext=mp4]”
and it works: it downloads the best available video, audio and ffmpeg merges both in a single file. Automatically.
Except that the maximum resolution I need is 1920 x 1080 p. Best available video is oftentimes 4096 x 2160 p, too much for the target hardware.
Using -F to check different resolutions to then select one (like -f 299 or -f 148) is tiresome.
How do I do that? Ideally for whole playlists involving between 25 and 50 videos.
Others have given good examples for formats you were aiming for.
For bulk download, simply create a list.txt file in your target directory, bulk add all urls in separate lines. Then
Yt-dlp list.txt {your options here}
It is noteworthy that, instead of listing urls manually, you can also grab entire playlists from relevant platforms if that’s what you’re after, including preserving the playlist names as directory names. Same even goes for entire channels.
an approach I wasn’t aware of. thanks
deleted by creator
The following numeric meta fields can be used with comparisons <, <=, >, >=, = (equals), != (not equals):
filesize: The number of bytes, if known in advance
filesize_approx: An estimate for the number of bytes
width: Width of the video, if known
height: Height of the video, if known
aspect_ratio: Aspect ratio of the video, if knownSo a height<=1080 should be it.
Taken from https://github.com/yt-dlp/yt-dlp. Replace 480 with 1080. Multiple options in the documentation to choose from.
Download the best video available with the largest height but no better than 480p, or the best video with the smallest resolution if there is no video under 480p
$ yt-dlp -S "height:480"