Как выбрать качество видео с YouTube-DL?

255

Я установил YouTube-DL в моем 14.04.

Я могу скачать видео по следующей команде,

$ youtube-dl [youtube-link]

Но я хочу знать, как выбрать доступное качество пикселей видео на YouTube ( например, 1080p, 720p, 480p и т . Д. ) .

В описании программного обеспечения они сказали, что это возможно (показано на рисунке ниже), но как это сделать ..

сс

AJ
источник
1
Вышеприведенное описание устарело. Со manстраницы: «youtube-dl теперь по умолчанию загружает наивысшее доступное качество, как сообщает YouTube, которое в некоторых случаях будет 1080p или 720p».
Джос
1
Обратите внимание, что YouTube использует своего рода защиту, которая не позволяет загрузочным инструментам загружать (или даже видеть) версию 1080p, но вы все равно можете загружать все другие разрешения вплоть до 720p.
Томасруттер
Я знаю, что немного опоздал на вечеринку, но вот мой опыт: askubuntu.com/a/1097056/327339 . Используйте -f bestопцию.
Габриэль Стейплс

Ответы:

360

Чтобы скачать видео, вы вводите 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'

или, как указал здесь Габриэль Стейплс , следующая команда обычно выбирает фактическое лучшее разрешение качества видео в одном файле вместо битовой скорости качества видео:

youtube-dl -f best 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

Эти команды гарантируют, что вы загрузите видео MP4 самого высокого качества и аудио m4a из видео как один файл или объедините их обратно в один mp4 (используя ffmpegв моем случае). Если ffmpegили avconvнедоступно, youtube-dlследует использовать один файл -f best optionвместо файла по умолчанию.

Нажмите здесь для получения более подробной информации и нескольких различных примеров.

Кроме того, нажмите, чтобы увидеть этот связанный ответ Габриэль Стейплс.


Источник: www.webupd8.org/2014/02/video-downloader-youtube-dl-gets.html

Источник: github.com/rg3/youtube-dl

mchid
источник
5
Убедитесь, что вы не выбираете DASH. Это будет неиграбельно!
PS95
@ prakharsingh95 только аудио DASH может быть преобразовано в стандартный формат волны или mp3 с использованием gnac или аналогичного программного обеспечения.
mchid
1
Я имел в виду DASH Video. Я пытался скачать 4K, но это все в DASHформате ( DASHпозволяет YouTube сохранить пропускную способность). Это радикально отличается, это будет в основном неиграбельно.
PS95
1
@ prakharsingh95 Да, если у вас есть возможность просмотреть mp4 с помощью VLC в качестве VLC, вы можете синхронизировать видео с отдельным файлом для аудио. Я не пробовал это все же. Вы пытались преобразовать файл mp4 из загрузки DASH в формат AVI? Я думаю, что они похожи.
mchid
2
Да. Тире, конечно, можно играть, но вам нужно смешивать потоки с чем-то вроде avconv. Слишком медленно для 4K.
PS95
110

Вы можете скачать 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 и автоматически объединит его с высококачественным звуком. Следует также автоматически удалить отдельные загруженные части. Этот метод немного дополнительной работы, но даст вам лучшие результаты.

Райан Хоррисбергер
источник
11
большое спасибо, не знал о 137 + 141
whitesiroi
3
Ваш пример и другие представляют легкий выбор для аудио - то есть для высокого качества выберите тот, который имеет наибольшее значение битрейта. Однако недавно я столкнулся с выбором между DASH audio , opus @160kили DASH audio 126k , audio@128k (44100Hz), 1.79MiBили DASH audio 127k , m4a_dash container, aac @128k (44100Hz), 1.94MiB. Я должен был выбрать, но не уверен в качестве или совместимости.
user643722 10.06.15
1
Самое лучшее в youtube-dl - это то, что он мультиплатформенный. Это решение не только работает на Linux, но также на Mac и Windows. Спасибо!
Антоний
2
В настоящее время это значение по умолчанию, но только если у вас установлены avconv (libav) или ffmpeg для преобразования файлов. Для Windows, вы хотите установить --ffmpeg-locationв %APPDATA%\youtube-dl\config.txtк директории , где установлена avconv / FFmpeg. Если у вас низкоуровневая система, возможно, вы захотите использовать ее -f bestvideo[fps<=30]+bestaudio, чтобы избежать видео со скоростью 60 кадров в секунду.
GreenReaper
29

Чтобы выбрать конкретные разрешения, вы можете указать размер и качество звука, чтобы они выбирались автоматически - например, для 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документации .

Уилф
источник
1
У меня была проблема, когда разные сегменты одного и того же видео имели разные коды формата для одного и того же разрешения (например, hls-1476 для видео 1 из 2 и hls-1665 для видео 2 из 2, где оба были 540p), поэтому я не мог просто использовать «-f hls-1476» или «-f hls-1665», или я получу «ОШИБКА: запрашиваемый формат недоступен». Ваши примеры команд помогли мне получить то, что я хотел.
ssnobody
1
+1 за~/.config/youtube-dl/config
Маринос Ан
10

Ниже приведены некоторые другие варианты загрузки видеороликов лучшего качества, помимо упомянутых здесь, в зависимости от вашего удобства:

Скачайте лучший формат 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

Куриан Беной
источник
Как совместить ext=mp4 && height<=480 && filesize<50M?
mrgloom
6

Скрипт bash-оболочки, который запрашивает формат, который включает в себя все доступные версии, включая только аудио, только видео, а затем передает потоковое видео / аудио с помощью mpv.

Принимает как абсолютные URL-адреса YouTube и идентификаторы видео.

#!/ 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часть и знак доллара в скобках.

ccpizza
источник
2

Как получить лучшее качество видео.

Этот ответ, получивший наибольшее количество голосов, должен быть правильным, чтобы дать вам лучшее доступное качество видео, но ... это не так. 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вариант, безусловно, единственный, который действительно дает мне лучшее разрешение.

Вот несколько скриншотов:

  1. Использование параметра низкого качества, -f bestvideo+bestaudio принятого здесь как правильный ответ (ИЛИ просто использование параметра по умолчанию:) youtube-dl https://youtu.be/FWGC9SqA3J0:

    • введите описание изображения здесь
    • Обратите внимание на то, как нечеткие значки вверху, и как трудно читать открытое окно и крошечные слова внутри него!
    • Это значительно хуже, чем качество, которое я получаю при просмотре онлайн на YouTube прямо в браузере.
    • Эта опция также требует больше памяти по какой-то причине: видео занимает 18,0 МБ, и моей системе потребовалось больше времени для загрузки и повторного объединения (аудио + видео), чем в -f bestприведенном ниже варианте, для которого потребовалась только одна загрузка и никакой рекомбинации так как это был уже один файл.
  2. Используя более качественный -f best вариант, который я рекомендую:

    • введите описание изображения здесь
    • Обратите внимание, насколько понятнее маленькие иконки вверху и маленький шрифт в окне!
    • Это то же разрешение, которое я получаю при просмотре в самом высоком разрешении, которое возможно прямо в браузере на YouTube.
    • Эта опция также почему-то занимает меньше памяти: видео занимает 14,8 МБ.

Дополнительное чтение:

Смотрите man youtube-dlподробности.

Габриэль Стейплс
источник
1
странно, что я вижу списки для вариантов 1920x1080, но вариант 1280x720 (hd720) по-прежнему говорит «лучший»
nmz787
Все ваши скриншоты показывают некоторые электронные вещи.
localhost
@localhost, это верно. Все они - скриншоты с видео, URL которого вы видите во всех моих фрагментах кода на протяжении всего поста: youtu.be/FWGC9SqA3J0 .
Габриэль Стейплс
@GabrielStaples Ааа. Да, это имеет смысл. Прости за это.
localhost
Разве это не странно, что наибольшее число с левой стороны не соответствует наибольшему количеству пикселей на экране в вашем примере кода доступных форматов?
Бен
0

Я хранитель дисков, поэтому я загружаю видео в формате 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

Он будет продолжать при ошибках загрузки, например, чтобы пропустить недоступные видео в плейлисте

Абхишек Камаль
источник
-1

По умолчанию youtube-dl выберет лучшее качество.

нерол
источник
2
Да, согласно readme. У вас также есть возможность выбрать
нужный