Как выбрать качество видео с YouTube-DL?
Я установил YouTube-DL в моем 14.04.
Я могу скачать видео по следующей команде,
$ youtube-dl [youtube-link]
Но я хочу знать, как выбрать доступное качество пикселей видео на YouTube (например, 1080p, 720p, 480p и т. Д.).
В описании программного обеспечения они сказали, что это возможно (показано на рисунке ниже), но как это сделать..
10 ответов
Чтобы скачать видео, вы вводите URL после команды следующим образом:
youtube-dl 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
Чтобы выбрать качество видео, сначала используйте -F
возможность перечислить доступные форматы, вот пример,
youtube-dl -F 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
Вот вывод:
[youtube] Setting language
[youtube] P9pzm5b6FFY: Downloading webpage
[youtube] P9pzm5b6FFY: Downloading video info webpage
[youtube] P9pzm5b6FFY: Extracting video information
[info] Available formats for P9pzm5b6FFY:
format code extension resolution note
140 m4a audio only DASH audio , audio@128k (worst)
160 mp4 144p DASH video , video only
133 mp4 240p DASH video , video only
134 mp4 360p DASH video , video only
135 mp4 480p DASH video , video only
136 mp4 720p DASH video , video only
17 3gp 176x144
36 3gp 320x240
5 flv 400x240
43 webm 640x360
18 mp4 640x360
22 mp4 1280x720 (best)
Лучшее качество 22, так что используйте -f 22
вместо -F
чтобы скачать видео MP4 с разрешением 1280x720, например:
youtube-dl -f 22 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
Или при желании используйте следующие флаги для автоматической загрузки лучших аудио и видео треков, которые доступны в виде одного файла:
youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
Если вы столкнулись с какой-либо ошибкой во время процесса мультиплексирования или проблемой с выбором качества видео, вы можете использовать одну из следующих команд:
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
или, как указал здесь Gabriel Staples, следующая команда обычно выбирает фактическое лучшее разрешение качества видео в одном файле вместо битовой скорости качества видео:
youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'
Эти команды гарантируют, что вы загрузите видео MP4 самого высокого качества и аудио m4a из видео как один файл или объедините их обратно в один mp4 (используя ffmpeg
в моем случае). Если ffmpeg
или же avconv
не доступен, youtube-dl
должен вернуться к одному файлу -f best option
вместо по умолчанию.
Нажмите здесь для получения более подробной информации и нескольких различных примеров.
Кроме того, нажмите, чтобы увидеть этот связанный ответ Габриэль Стейплс.
Источник: http://www.webupd8.org/2014/02/video-downloader-youtube-dl-gets.html
Вы можете скачать 1080p используя youtube-dl
, но вам нужно сделать немного больше работы. Обычно он загружает максимум 720p, даже если вы видите 1080p на youtube.com.
Бежать с -F
чтобы увидеть доступные форматы:
youtube-dl -F https://www.youtube.com/watch\?v\=-pxRXP3w-sQ
171 webm audio only DASH audio 115k , audio@128k (44100Hz), 2.59MiB (worst)
140 m4a audio only DASH audio 129k , audio@128k (44100Hz), 3.02MiB
141 m4a audio only DASH audio 255k , audio@256k (44100Hz), 5.99MiB
160 mp4 256x144 DASH video 111k , 12fps, video only, 2.56MiB
247 webm 1280x720 DASH video 1807k , 1fps, video only, 23.48MiB
136 mp4 1280x720 DASH video 2236k , 24fps, video only, 27.73MiB
248 webm 1920x1080 DASH video 3993k , 1fps, video only, 42.04MiB
137 mp4 1920x1080 DASH video 4141k , 24fps, video only, 60.28MiB
43 webm 640x360
18 mp4 640x360
22 mp4 1280x720 (best)
заметить, что youtube-dl
пометил последнюю опцию 1280x720 как "лучшее" качество, и она будет загружена по умолчанию, но строка, начинающаяся с 137, на самом деле имеет более высокое качество 1920x1080. Youtube разделил видео и аудио потоки для строк, помеченных как DASH, поэтому нам также нужно выбрать звук самого высокого качества, в данном случае это строка, начинающаяся с 141. Затем мы запускаем youtube-dl
снова на этот раз с указанием аудио и видео:
youtube-dl -f 137+141 https://www.youtube.com/watch\?v\=-pxRXP3w-sQ
и он загрузит видео в формате 1080p и автоматически объединит его с высококачественным звуком. Следует также автоматически удалить отдельные загруженные части. Этот метод немного дополнительной работы, но даст вам лучшие результаты.
Чтобы выбрать конкретные разрешения, вы можете указать размер и качество звука, чтобы они выбирались автоматически - например, для 480p:
-f 'bestvideo[height<=480]+bestaudio/best[height<=480]'
с bestvideo[height<=720]+bestaudio/best[height<=720]
для 720p и т. д. Это можно добавить в файл конфигурации по адресу ~/.config/youtube-dl/config
(или даже /etc/youtube-dl.conf
) так что вы не получите негабаритных загрузок:
mkdir ~/.config/youtube-dl
echo "-f 'bestvideo[height<=720]+bestaudio/best[height<=720]'" >> ~/.config/youtube-dl/config
Ты можешь использовать --ignore-config
если вы хотите отключить файл конфигурации для конкретного запуска youtube-dl.
Обращаем ваше внимание, что довольно часто ему придется скачивать отдельные видео и аудио потоки и объединять их.
Больше примеров смотрите youtube-dl
Обоснование.
Ниже приведены некоторые другие варианты загрузки видеороликов лучшего качества, помимо упомянутых здесь, в зависимости от вашего удобства:
Скачайте лучший формат mp4 или любой другой лучший, если нет mp4
$ youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best'
Скачать лучший доступный формат, но не лучше, чем 480p
$ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]'
Скачать лучшее видео только в формате, но не более 50 МБ
$ youtube-dl -f 'best[filesize<50M]'
Скачать лучший формат, доступный по прямой ссылке по протоколу HTTP/HTTPS
$ youtube-dl -f '(bestvideo+bestaudio/best)[protocol^=http]'
Ссылка:
Прямо со страницы youtube-dl github
Как получить лучшее качество видео.
Этот ответ, получивший наибольшее количество голосов, должен быть правильным, чтобы дать вам лучшее доступное качество видео, но... это не так. bestvideo+bestaudio
кажется, выбирает только лучшее видео и лучшее аудио из опций, которые только видео и только аудио, тогда это объединяет их вместе. Обратите внимание, что это также похоже на поведение по умолчанию youtube-dl. Однако в видео, которое я смотрел, наилучшим качеством был один предварительно слитый файл, который уже был в формате с объединением видео и аудио. bestvideo+bestaudio
опция НЕ выбрала этот файл 720p наилучшего качества, потому что он искал только отдельные видео и аудио файлы. Подробности ниже.
Решение? Пусть он возьмет лучший файл, содержащий видео и аудио в одном, с помощью этого:
youtube-dl -f best https://youtu.be/FWGC9SqA3J0
Короче говоря: используйте -f best
вариант, а не -f bestvideo+bestaudio
вариант!
Доказательство:
Более конкретно, см. Ниже результаты бега
youtube-dl -F https://youtu.be/FWGC9SqA3J0
чтобы посмотреть, какие видео 'F'ormats доступны для скачивания:
gabriel ~ $ youtube-dl -F https://youtu.be/FWGC9SqA3J0
[youtube] FWGC9SqA3J0: Downloading webpage
[youtube] FWGC9SqA3J0: Downloading video info webpage
[youtube] FWGC9SqA3J0: Downloading MPD manifest
[youtube] FWGC9SqA3J0: Downloading MPD manifest
[info] Available formats for FWGC9SqA3J0:
format code extension resolution note
139 m4a audio only DASH audio 50k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 2.30MiB
249 webm audio only DASH audio 51k , opus @ 50k, 2.34MiB
250 webm audio only DASH audio 62k , opus @ 70k, 2.85MiB
171 webm audio only DASH audio 103k , vorbis@128k, 4.68MiB
251 webm audio only DASH audio 109k , opus @160k, 5.10MiB
140 m4a audio only DASH audio 130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 6.13MiB
160 mp4 256x138 DASH video 108k , mp4_dash container, avc1.4d400b, 24fps, video only
134 mp4 640x348 DASH video 142k , mp4_dash container, avc1.4d401e, 24fps, video only, 3.42MiB
133 mp4 426x232 DASH video 242k , mp4_dash container, avc1.4d400c, 24fps, video only
136 mp4 1280x694 DASH video 473k , mp4_dash container, avc1.4d401f, 24fps, video only, 8.01MiB
135 mp4 854x464 DASH video 1155k , mp4_dash container, avc1.4d4014, 24fps, video only
17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k, 1.63MiB
36 3gp 320x174 small , mp4v.20.3, mp4a.40.2, 2.98MiB
43 webm 640x360 medium , vp8.0, vorbis@128k, 7.44MiB
18 mp4 640x348 medium , avc1.42001E, mp4a.40.2@ 96k, 8.54MiB
22 mp4 1280x694 hd720 , avc1.64001F, mp4a.40.2@192k (best)
Обратите внимание, что строка 22 говорит "(лучше)" в крайнем правом углу. Это единственная опция, которая предлагает качество HD720, которое является наилучшим качеством, которое я могу получить при просмотре этого видео в веб-браузере на YouTube. Это самое ясное и лучшее определение. Когда я использую одну из команд, рекомендуемых верхним ответом:
youtube-dl -f bestvideo+bestaudio https://youtu.be/FWGC9SqA3J0
ИЛИ ЖЕ:
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 https://youtu.be/FWGC9SqA3J0
Я получаю видео с более низким качеством / меньшим разрешением и большим размером файла. Я не совсем понимаю, но -f best
вариант, безусловно, единственный, который действительно дает мне лучшее разрешение.
Вот несколько скриншотов:
Используя низкое качество
-f bestvideo+bestaudio
опция принята здесь как правильный ответ (ИЛИ просто используя опцию по умолчанию:youtube-dl https://youtu.be/FWGC9SqA3J0
):- Обратите внимание на то, как нечеткие значки вверху, и как трудно читать открытое окно и крошечные слова внутри него!
- Это значительно хуже, чем качество, которое я получаю при просмотре онлайн на YouTube прямо в браузере.
- Эта опция также по какой-то причине занимает больше памяти: видео занимает 18,0 МБ, и моей системе потребовалось больше времени для загрузки и повторного объединения (аудио + видео), чем
-f best
Опция ниже, которая должна была сделать только одну загрузку и без рекомбинации, поскольку это был уже один файл.
Используя более высокое качество
-f best
вариант, который я рекомендую:
Дополнительное чтение:
Увидеть man youtube-dl
для деталей.
A bash wrapper script that prompts for the format, which includes all available renditions, including audio-only, video-only, and then streams the video/audio with mpv
,
Accepts both absolute youtube URLs and video IDs.
#!/ usr/bin/env bash
# Download youtube video with desired quality
# youtube-dl accepts both fully qualified URLs and video id's such as AQcQgfvfF1M
url="$*"
echo "Fetching available formats for $url..."
youtube-dl -F "$url"
read -p "Please enter the desired quality code: " FORMAT
echo "Streaming with quality $FORMAT..."
mpv --cache=1024 $(youtube-dl -f $FORMAT -g "$url")
Образец вывода:
yt.sh https://m.youtube.com/watch?v=Dax_tnZRExc
[youtube] Dax_tnZRExc: Downloading webpage
[youtube] Dax_tnZRExc: Downloading video info webpage
[youtube] Dax_tnZRExc: Extracting video information
[youtube] Dax_tnZRExc: Downloading MPD manifest
[info] Available formats for Dax_tnZRExc:
format code extension resolution note
139 m4a audio only DASH audio 49k , m4a_dash container, mp4a.40.5@ 48k (22050Hz), 308.75KiB
249 webm audio only DASH audio 50k , opus @ 50k, 271.91KiB
250 webm audio only DASH audio 70k , opus @ 70k, 366.63KiB
171 webm audio only DASH audio 118k , vorbis@128k, 652.50KiB
140 m4a audio only DASH audio 127k , m4a_dash container, mp4a.40.2@128k (44100Hz), 820.00KiB
251 webm audio only DASH audio 130k , opus @160k, 705.84KiB
160 mp4 256x144 DASH video 109k , avc1.4d400c, 13fps, video only, 703.64KiB
278 webm 256x144 144p 111k , webm container, vp9, 25fps, video only, 439.72KiB
242 webm 426x240 240p 243k , vp9, 25fps, video only, 623.95KiB
133 mp4 426x240 DASH video 252k , avc1.4d4015, 25fps, video only, 1.54MiB
134 mp4 640x360 DASH video 388k , avc1.4d401e, 25fps, video only, 1.24MiB
243 webm 640x360 360p 458k , vp9, 25fps, video only, 1.19MiB
135 mp4 854x480 DASH video 761k , avc1.4d401e, 25fps, video only, 2.40MiB
244 webm 854x480 480p 893k , vp9, 25fps, video only, 2.00MiB
136 mp4 1280x720 DASH video 1382k , avc1.4d401f, 25fps, video only, 4.56MiB
247 webm 1280x720 720p 1754k , vp9, 25fps, video only, 3.94MiB
137 mp4 1920x1080 DASH video 2350k , avc1.640028, 25fps, video only, 8.48MiB
248 webm 1920x1080 1080p 2792k , vp9, 25fps, video only, 8.09MiB
17 3gp 176x144 small , mp4v.20.3, mp4a.40.2@ 24k
36 3gp 320x180 small , mp4v.20.3, mp4a.40.2
43 webm 640x360 medium , vp8.0, vorbis@128k
18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k
22 mp4 1280x720 hd720 , avc1.64001F, mp4a.40.2@192k (best)
Please enter the desired format #
Если вы хотите скачать видео, а не передавать его, просто удалите
mpv --cache=1024
часть и знак доллара в скобках.
Вот объяснение потоков/форматов для тех, кто плохо знаком с youtube-dl.
Некоторые видеосайты, такие как youtube, предлагают не только различные разрешения видео для загрузки, но и имеют параметры в форматах, называемых youtube-dl, для загрузки видео и аудио по отдельности. Что касается YouTube, он будет предлагать только видео самого высокого качества и звук самого высокого качества отдельно. Вот пример вывода использования
-F
флаг, чтобы показать все доступные форматы:
$ youtube-dl -F https://youtube.com/watch?v=iYWzMvlj2RQ
[youtube] iYWzMvlj2RQ: Downloading webpage
[youtube] iYWzMvlj2RQ: Downloading embed webpage
[youtube] iYWzMvlj2RQ: Refetching age-gated info webpage
[info] Available formats for iYWzMvlj2RQ:
format code extension resolution note
249 webm audio only tiny 50k , opus @ 50k (48000Hz), 238.14KiB
250 webm audio only tiny 59k , opus @ 70k (48000Hz), 284.22KiB
251 webm audio only tiny 118k , opus @160k (48000Hz), 553.74KiB
140 m4a audio only tiny 157k , m4a_dash container, mp4a.40.2@128k (44100Hz), 628.52KiB
394 mp4 192x144 144p 51k , av01.0.00M.08, 30fps, video only, 241.57KiB
278 webm 192x144 144p 72k , webm container, vp9, 30fps, video only, 309.32KiB
395 mp4 320x240 240p 97k , av01.0.00M.08, 30fps, video only, 283.55KiB
160 mp4 192x144 144p 111k , avc1.4d400c, 15fps, video only, 524.55KiB
242 webm 320x240 240p 135k , vp9, 30fps, video only, 328.15KiB
396 mp4 480x360 360p 184k , av01.0.01M.08, 30fps, video only, 472.21KiB
243 webm 480x360 360p 221k , vp9, 30fps, video only, 560.40KiB
134 mp4 480x360 360p 240k , avc1.4d401e, 30fps, video only, 826.64KiB
133 mp4 320x240 240p 247k , avc1.4d400d, 30fps, video only, 1.16MiB
397 mp4 640x480 480p 302k , av01.0.04M.08, 30fps, video only, 801.75KiB
244 webm 640x480 480p 338k , vp9, 30fps, video only, 912.64KiB
135 mp4 640x480 480p 517k , avc1.4d401e, 30fps, video only, 1.71MiB
398 mp4 960x720 720p 541k , av01.0.05M.08, 30fps, video only, 1.48MiB
247 webm 960x720 720p 604k , vp9, 30fps, video only, 1.72MiB
399 mp4 1440x1080 1080p 893k , av01.0.08M.08, 30fps, video only, 2.55MiB
248 webm 1440x1080 1080p 981k , vp9, 30fps, video only, 2.99MiB
136 mp4 960x720 720p 1046k , avc1.4d401f, 30fps, video only, 3.47MiB
137 mp4 1440x1080 1080p 1923k , avc1.640028, 30fps, video only, 7.30MiB
18 mp4 480x360 360p 316k , avc1.42001E, 30fps, mp4a.40.2@ 96k (44100Hz), 1.50MiB
22 mp4 960x720 720p 858k , avc1.64001F, 30fps, mp4a.40.2@192k (44100Hz) (best)
Итак, существует множество различных форматов, но некоторые из них помечены как «только аудио» или «только видео». Если я выберу загрузку одного из этих форматов, используя указанный код формата, например, с
-f 137
, я бы действительно получил либо аудиофайл, либо видеофайл без звука, что обычно не то, что вам нужно. Если бы у меня был установлен ffmpeg и я указал форматы видео и аудио с помощью
-f 137+140
, тогда youtube-dl будет загружать видео и аудио, а затем объединять их в один видеофайл.
Если у вас не установлен ffmpeg, youtube-dl по умолчанию выберет формат самого высокого качества, в котором есть и аудио, и видео . Это достигает максимума в 720p (и обычно определяется кодом формата 22, поэтому вы должны загружать с
-f 22
). Если у вас установлен ffmpeg, youtube-dl сможет загружать видео действительно лучшего качества (1080p или лучше, если доступно) и аудио самого высокого качества, а после загрузки мультиплексировать (объединить) их вместе в один видеофайл, поэтому я рекомендую это .
Резюме: установите ffmpeg, и тогда вы сможете просто делать
youtube-dl [youtube url]
без каких-либо флагов, чтобы автоматически получать видео и звук наилучшего качества в одном выходном видеофайле.
Я хранитель дисков, поэтому я загружаю видео в формате 1280 x 720
,
так как 4k
видео занимает больший размер моего жесткого диска.
Итак, я добавляю youtube-dl
в ~/. Файл Bashrc, как показано ниже
Настройка работы -
открыть терминал и набрать
nano ~/.bashrc
Теперь перейдите в самый конец файла и добавьте приведенную ниже командуalias yt='youtube-dl -if best'
- сохраните файл, нажав Ctrl o, затем нажмите Enter
- выйти из файла, нажав Ctrl x
- и последний запуск команды
source ~/.bashrc
в терминале
Эксперимент -
Откройте терминал и введите yt https://www.youtube.com/watch?v=puPUJlV1-W4
Начнется загрузка видео с лучшим качеством.
Пояснение -
Bash позволяет нам определять псевдонимы, которые действуют как ярлыки команд bash
в нашем случае мы определяем псевдоним как -
alias yt = 'youtube-dl -i f best'
где yt - это команда быстрого вызова для youtube-dl, которая дает облегчение
наши пальцы набирают длинные команды.
Вы можете написать что-нибудь на месте yt.
Я установил флаг -i в youtube-dl -if best
что значит
Он будет продолжать при ошибках загрузки, например, чтобы пропустить недоступные видео в плейлисте
youtube-dl
представление о лучшем не идеально. Возьмем, к примеру, этот пример:
pi@rpi-lounge:~ $ youtube-dl -F https://youtu.be/Xj3gU3jACe8
[youtube] Xj3gU3jACe8: Downloading webpage
[info] Available formats for Xj3gU3jACe8:
format code extension resolution note
249 webm audio only tiny 55k , opus @ 50k (48000Hz), 1.11MiB
250 webm audio only tiny 74k , opus @ 70k (48000Hz), 1.47MiB
140 m4a audio only tiny 130k , m4a_dash container, mp4a.40.2@128k (44100Hz), 2.92MiB
251 webm audio only tiny 143k , opus @160k (48000Hz), 2.89MiB
394 mp4 256x144 144p 81k , av01.0.00M.08, 25fps, video only, 1.54MiB
278 webm 256x144 144p 99k , webm container, vp9, 25fps, video only, 2.14MiB
160 mp4 256x144 144p 110k , avc1.4d400c, 25fps, video only, 2.38MiB
395 mp4 426x240 240p 184k , av01.0.00M.08, 25fps, video only, 3.39MiB
242 webm 426x240 240p 230k , vp9, 25fps, video only, 4.90MiB
133 mp4 426x240 240p 245k , avc1.4d4015, 25fps, video only, 5.19MiB
396 mp4 640x360 360p 395k , av01.0.01M.08, 25fps, video only, 7.20MiB
243 webm 640x360 360p 418k , vp9, 25fps, video only, 9.03MiB
134 mp4 640x360 360p 633k , avc1.4d401e, 25fps, video only, 13.61MiB
397 mp4 854x480 480p 712k , av01.0.04M.08, 25fps, video only, 13.13MiB
244 webm 854x480 480p 774k , vp9, 25fps, video only, 16.75MiB
135 mp4 854x480 480p 1160k , avc1.4d401e, 25fps, video only, 25.45MiB
398 mp4 1280x720 720p 1456k , av01.0.05M.08, 25fps, video only, 26.20MiB
247 webm 1280x720 720p 1539k , vp9, 25fps, video only, 33.49MiB
136 mp4 1280x720 720p 2316k , avc1.4d401f, 25fps, video only, 50.46MiB
399 mp4 1920x1080 1080p 2492k , av01.0.08M.08, 25fps, video only, 45.96MiB
248 webm 1920x1080 1080p 2700k , vp9, 25fps, video only, 58.80MiB
137 mp4 1920x1080 1080p 4337k , avc1.640028, 25fps, video only, 91.16MiB
400 mp4 2560x1440 1440p 7468k , av01.0.12M.08, 25fps, video only, 143.60MiB
271 webm 2560x1440 1440p 8993k , vp9, 25fps, video only, 189.90MiB
401 mp4 3840x2160 2160p 14110k , av01.0.12M.08, 25fps, video only, 278.39MiB
313 webm 3840x2160 2160p 18006k , vp9, 25fps, video only, 387.17MiB
18 mp4 640x360 360p 734k , avc1.42001E, 25fps, mp4a.40.2@ 96k (44100Hz), 16.55MiB (best)
Следующая команда:
youtube-dl -f 137+251 https://youtu.be/Xj3gU3jACe8
дает гораздо лучшие результаты, чем это использование:
youtube-dl -f 18 https://youtu.be/Xj3gU3jACe8 (marked as best)
Похоже, есть и другие ошибки, поскольку попытка указать фильтры высоты для ограничения до 1080p не работает. Он по-прежнему загружает вариант 4k (который также не отмечен как лучший)
youtube-dl -f "bestvideo[height<=1080,ext=mp4]+bestaudio[ext=m4a]" https://youtu.be/Xj3gU3jACe8
pi@rpi-lounge:~ $ youtube-dl --version
2020.06.16.1