MrS0m30n3 / youtube-dl-gui

A cross platform front-end GUI of the popular youtube-dl written in wxPython.
The Unlicense
9.3k stars 1.59k forks source link

Does youtube-dl downloads the best quality available by default? #218

Closed Nottt closed 7 years ago

Nottt commented 7 years ago

Sorry for asking this here but I can't find it anywhere and I really want to download only the highest available video/audio.

I'm using .mp4 as the output in the GUI. Does this mean the file will be muxed into mp4 instead of converted ?

It looks like this : http://imgur.com/a/rEgFB

If it possible I would love if you could add a output just named as "highest quality" as it a little confusing now.

So how can I make sure I'm getting the best quality possible?

nodiscc commented 7 years ago

I'm using .mp4 as the output in the GUI. Does this mean the file will be muxed into mp4 instead of converted ?

If the video exists natively in mp4 format on the server, it will just download that (sometimes mux it if audio is in a separate stream). If the server doesn't have an mp4 version available the video will be downloaded, then converted to mp4.

So how can I make sure I'm getting the best quality possible?

Don't force any output format - leave the default format selected in the main window. "highest quality" = default: https://github.com/rg3/youtube-dl#format-selection. No conversion will occur.

GhillieGuy commented 4 years ago

the yt videos have 1080p60 but youtube dlg is downloading 720p

joshgarde commented 4 years ago

@GhillieGuy It appears to be a querk of how YouTube-DL (not this GUI wrapper) determines the "best" quality video. Instead of using a predetermined priority list of formats, YouTube-DL uses the ABR/VBR (audio/video bitrate) to determine the best quality formats. Some videos have a lower VBR for their 1080P60 format than their 720P30 format which is caused by whatever mysteriousness that powers the YouTube encoding backend. Sucks that we might have to manually override YouTube-DL's automatic format selection in these cases incase there's anything missed in the 30 fps down conversion.

youtube_dl/extractor/common.py, line 1357, as of commit 416da574ec

joshgarde commented 4 years ago

This is the output of -F on one of the videos I found this behavior on:

format code  extension  resolution note
249          webm       audio only tiny   51k , opus @ 50k (48000Hz), 4.14MiB
250          webm       audio only tiny   66k , opus @ 70k (48000Hz), 4.71MiB
251          webm       audio only tiny  126k , opus @160k (48000Hz), 8.64MiB
140          m4a        audio only tiny  130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 10.82MiB
278          webm       256x144    144p   98k , webm container, vp9, 30fps, video only, 7.58MiB
160          mp4        256x144    144p  111k , avc1.4d400c, 30fps, video only, 7.33MiB
242          webm       426x240    240p  228k , vp9, 30fps, video only, 16.21MiB
133          mp4        426x240    240p  319k , avc1.4d4015, 30fps, video only, 17.07MiB
243          webm       640x360    360p  422k , vp9, 30fps, video only, 29.58MiB
134          mp4        640x360    360p  667k , avc1.4d401e, 30fps, video only, 35.67MiB
244          webm       854x480    480p  771k , vp9, 30fps, video only, 50.56MiB
135          mp4        854x480    480p 1044k , avc1.4d401f, 30fps, video only, 57.06MiB
247          webm       1280x720   720p 1540k , vp9, 30fps, video only, 115.25MiB
302          webm       1280x720   720p60 2716k , vp9, 60fps, video only, 163.23MiB
298          mp4        1280x720   720p60 2841k , avc1.4d4020, 60fps, video only, 107.82MiB
303          webm       1920x1080  1080p60 4499k , vp9, 60fps, video only, 339.44MiB
299          mp4        1920x1080  1080p60 6311k , avc1.64002a, 60fps, video only, 366.75MiB
136          mp4        1280x720   720p 7996k , avc1.4d401f, 30fps, video only, 207.13MiB
18           mp4        640x360    360p  697k , avc1.42001E, 30fps, mp4a.40.2@ 96k (44100Hz), 58.23MiB
22           mp4        1280x720   720p 2608k , avc1.64001F, 30fps, mp4a.40.2@192k (44100Hz) (best)

I'm currently scraping a large volume of videos and I think that these types of issues only appear when working with larger sample sizes. Unfortunately my example videos are likely to be deleted in a few days so I'd be posting dead links by the time anyone else stumbles upon this thread

joshgarde commented 4 years ago

Going forward, whenever YouTube-DL gets a repo back up (2020 amiright?), I think it'll be good to open a PR to change the bestvideo and bestaudio format selectors to sort by the estimated file size first and only fallback on the bitrate when the file size is unavailable