13

Typically youtube-dl aims to shoot for the highest quality possible. That's not always practical. Flip side I've seen was for minimum quality possible. That's not practical either. What would be a command to make youtube-dl find the highest quality format that is within a set limit?

Say: having resolution width equal to or below a certain value. See this example for available formats for a given video link:

youtube -F <link>
...
format code               extension  resolution note
2242414685833597ad        m4a        audio only DASH audio   21k , m4a_dash container, mp4a.40.2 (48000Hz)
572715713158985v          mp4        426x240    DASH video  216k , mp4_dash container, avc1.4D401E, video only
110928776481884vd         mp4        640x360    DASH video  420k , mp4_dash container, avc1.4D401E, video only
896314927220784v          mp4        854x480    DASH video  738k , mp4_dash container, avc1.4D401E, video only
313835759204486v          mp4        1280x720   DASH video 1372k , mp4_dash container, avc1.4D401F, video only
dash_sd_src               mp4        unknown    
dash_sd_src_no_ratelimit  mp4        unknown    (best)

I want to tell youtube-dl to choose the highest quality video stream whose width does not exceed 640 pixels. That would be the 110928776481884vd in this case.

If its not possible to do with resolution width, we could do with bitrate. So in this same example, bitrate should be 500k or lower.

Note: This question is specifically for non-youtube videos from different providers having different kinds of formats. The youtube ones have standard format names so I've already fixed for that.

1 Answer 1

20

Read the fine manual:

   Format selection examples
       Note  that on Windows you may need to use double quotes instead of sin‐
       gle.

              # Download best mp4 format available or any other best if no mp4 available
              $ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'

              # Download best format available but not better that 480p
              $ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]'

              # Download best video only format but no bigger than 50 MB
              $ youtube-dl -f 'best[filesize<50M]'
2
  • 4
    That is incredibly ugly. I have a hard time believing that software as advanced as youtube-dl does not have a straightforward way to get 480p video.
    – felwithe
    Nov 5, 2019 at 11:05
  • 1
    Made my life simple by adding to my zshrc the following: alias ytdl1="youtube-dl -f 'bestvideo[height<=720]+bestaudio/best[height<=720]'". Now it's simply ytdl1 -o <filename> <url> for me. Dec 1, 2022 at 15:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .