Як вибрати якість відео з youtube-dl?


255

Я встановив youtube-dl в 14.04.

Я можу завантажити відео, виконавши наступну команду,

$ youtube-dl [youtube-link]

Але я хочу знати, як вибрати доступну якість пікселів відео YouTube ( тобто 1080p, 720p, 480p тощо ) .

В описі програмного забезпечення вони сказали, що це можливо (показано на зображенні нижче), але як це зробити ..

сс


1
Опис вище є застарілим. Зі manсторінки: "youtube-dl тепер за замовчуванням завантажує найвищу доступну якість, як повідомляється на YouTube, яка в деяких випадках буде 1080p або 720p."
Джос

1
Зауважте, що YouTube використовував певний захист, який не дозволяє завантажувати інструменти (або навіть бачити) версію 1080p, але ви все ще можете завантажувати всі інші роздільні рішення до 720p і включати їх.
thomasrutter

Я знаю, що я трохи спізнююся на вечірку, але ось мій досвід: 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


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

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-dldoucmentation «s .


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

Сценарій баш-обгортки, що вимагає формату, який включає всі наявні видання, включаючи лише аудіо, лише відео, а потім передає відео / аудіо за допомогою 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частину та знак долара з дужками.


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 Aah. Так, це має сенс. Вибач за те.
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

Він продовжуватиметься при помилках завантаження, наприклад, для пропуску недоступних відео у списку відтворення


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.