Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

youtube-dl DASH video and audio in highest quality without human intervention

With youtube-dl I first look what video quality is available and then in second step I download highest possible quality (in this example -f 137+140). Youtube-dl will automatically merge audio and video stream (DASH format)

How to automate that with shell script? With every URL, choose highest audio and video quality?

> youtube-dl -F 'https://www.youtube.com/watch?v=VAdRBLyjLRQ&feature=youtu.be&t=8m14s'                               [youtube] Downloading login page                                                                                                       [youtube] Logging in                                                                                                                   [youtube] VAdRBLyjLRQ: Downloading webpage                                                                                             [youtube] VAdRBLyjLRQ: Downloading video info webpage                                                                                  [youtube] VAdRBLyjLRQ: Extracting video information                                                                                    [youtube] VAdRBLyjLRQ: Downloading DASH manifest                                                                                       [youtube] VAdRBLyjLRQ: Downloading DASH manifest                                                                                       [info] Available formats for VAdRBLyjLRQ:                                                                                              format code  extension  resolution note                                                                                                249          webm       audio only DASH audio , opus @ 50k                                                                             250          webm       audio only DASH audio , opus @ 70k                                                                             251          webm       audio only DASH audio , opus @160k                                                                             171          webm       audio only DASH audio  117k , vorbis@128k (44100Hz), 7.68MiB                                                   140          m4a        audio only DASH audio  128k , m4a_dash container, aac  @128k (44100Hz), 11.58MiB                               160          mp4        256x144    DASH video  112k , avc1.4d400c, 15fps, video only, 9.94MiB                                          278          webm       256x144    DASH video  136k , webm container, VP9, 15fps, video only, 9.10MiB                                  133          mp4        426x240    DASH video  248k , avc1.4d4015, 30fps, video only, 22.27MiB                                         242          webm       426x240    DASH video  316k , vp9, 30fps, video only, 22.20MiB                                                 243          webm       640x360    DASH video  557k , vp9, 30fps, video only, 41.05MiB                                                 134          mp4        640x360    DASH video  609k , avc1.4d401e, 30fps, video only, 52.94MiB                                         244          webm       854x480    DASH video 1021k , vp9, 30fps, video only, 74.05MiB                                                 135          mp4        854x480    DASH video 1115k , avc1.4d401f, 30fps, video only, 97.02MiB                                         247          webm       1280x720   DASH video 2011k , vp9, 30fps, video only, 150.61MiB                                                136          mp4        1280x720   DASH video 2282k , avc1.4d401f, 30fps, video only, 189.40MiB                                        248          webm       1920x1080  DASH video 3838k , vp9, 30fps, video only, 286.61MiB                                                137          mp4        1920x1080  DASH video 4209k , avc1.640028, 30fps, video only, 354.19MiB                                        17           3gp        176x144                                                                                                        36           3gp        320x240                                                                                                        5            flv        400x240                                                                                                        43           webm       640x360                                                                                                        18           mp4        640x360                                                                                                        22           mp4        1280x720   (best)                                                                                              > youtube-dl -f 137+140 'https://www.youtube.com/watch?v=VAdRBLyjLRQ&feature=youtu.be&t=8m14s'                       [youtube] Downloading login page                                                                                                       [youtube] Logging in                                                                                                                   [youtube] VAdRBLyjLRQ: Downloading webpage                                                                                             [youtube] VAdRBLyjLRQ: Downloading video info webpage                                                                                  [youtube] VAdRBLyjLRQ: Extracting video information                                                                                    (...) 
like image 315
Josefine Avatar asked Jul 25 '15 21:07

Josefine


People also ask

Does youtube-dl automatically download highest quality?

If you don't have ffmpeg installed, youtube-dl will by default select the highest quality format that has both audio and video. This maxes out at 720p (and is usually specified by format code 22 so you would download with -f 22 ).

Can youtube-dl be detected?

Yes it is different (in the special case of using youtube-dl ) which can be seen by the fact that the traffic while watching on youtube.com website uses a https:// transfer and the traffic generated by youtube-dl is using an unencrypted http://. Can't youtube-dl be made to use an https connection?

Can youtube-dl download just audio?

Download only audio with youtube-dl If you only want to download audio from a YouTube video, you can use the -x option with youtube-dl. This extract-audio option converts the video files to audio-only files. The file is saved in the same directory from where you ran the youtube-dl command.


2 Answers

Just use -f bestvideo+bestaudio/best for highest resulting quality available.

If you wanted to prefer MP4 format containers instead of WebM, use:

-f bestvideo[ext!=webm]‌​+bestaudio[ext!=webm]‌​/best[ext!=webm].

like image 67
dstftw Avatar answered Sep 18 '22 14:09

dstftw


I've found some weird cases where the default (see #5447, #5456) bestvideo+bestaudio/best would download 720p video even when a 1080p was available. The reason that the bitrate on the 720p was very slightly higher, therefore it seemed better quality for youtube-dl. I prefer the higher res, also all other fancy youtube downloader applications downloaded the 1080p (as control).

Therefore I propose and use this:

-f ("bestvideo[width>=1920]"/bestvideo)+bestaudio/best 

It will look for the best, at least 1920 wide video. If that's not available, it'll resort to what it would normally choose. The /best part at the end is part of the default config.

On a side note I recommend putting the %(format_id)s somewhere in the filename, so you know what that file is using. If you later want to re-download a bunch of videos without using archive, with --no-overwrites, a better/different quality will form a new filename next to the old one (so you can compare or whatever).

like image 24
Firsh - justifiedgrid.com Avatar answered Sep 20 '22 14:09

Firsh - justifiedgrid.com