Завантажте лише формат mp4 на youtube-dl


73

Як я можу використовувати файл download-dl для завантаження відео лише у форматі відтворення у форматі url, а не у форматі mp4 .mkvабо .webm?

Я використовую цю команду для завантаження відео: youtube-dl -itcv --yes-playlist https://www.youtube.com/playlist?list=....

Результатом цієї команди є відео з розширенням .mp4, .mkvабо.webm


подивіться на --list-formatsі --format nnперемикачі.
jc__

Використовується -f mp4. Але один раз завантажували файл, на mp4, з 150mb, а інший раз з 90mb. Мені було прочитано довідку, доступну через "youtube --help", і я не можу знайти інший параметр, де я можу конкретно завантажити максимальну якість!
Едгар Олівейра

Відповіді:


80

Щоб переглянути список доступних типів форматів:

youtube-dl -F url

Тоді вибирайте найкращий

Приклад: youtube-dl -f 11 url

Приклад з webupd8

youtube-dl -F http://www.youtube.com/watch?v=3JZ_D3ELwOQ

вибірка вибірки:

[youtube] Setting language
[youtube] 3JZ_D3ELwOQ: Downloading webpage
[youtube] 3JZ_D3ELwOQ: Downloading video info webpage
[youtube] 3JZ_D3ELwOQ: Extracting video information
[info] Available formats for 3JZ_D3ELwOQ:
format code extension resolution  note 
171         webm      audio only  DASH webm audio , audio@ 48k (worst)
140         m4a       audio only  DASH audio , audio@128k
160         mp4       192p        DASH video 
133         mp4       240p        DASH video 
134         mp4       360p        DASH video 
135         mp4       480p        DASH video 
136         mp4       720p        DASH video 
137         mp4       1080p       DASH video 
17          3gp       176x144     
36          3gp       320x240     
5           flv       400x240     
43          webm      640x360     
18          mp4       640x360     
22          mp4       1280x720    (best)

Ви можете вибрати bestта ввести

youtube-dl -f 22 http://www.youtube.com/watch?v=3JZ_D3ELwOQ

Для отримання найкращої якості відео (формат "137" у форматі 1080p DASH) та найкращої якості звуку (аудіоформат DASH "140"), ви повинні скористатися такою командою:

youtube-dl -f 137+140 http://www.youtube.com/watch?v=3JZ_D3ELwOQ

EDIT

Ви можете отримати більше варіантів тут

Вибір відео:

--playlist-start NUMBER          Playlist video to start at (default is 1)
--playlist-end NUMBER            Playlist video to end at (default is last)
--playlist-items ITEM_SPEC       Playlist video items to download. Specify
                             indices of the videos in the playlist
                             separated by commas like: "--playlist-items
                             1,2,5,8" if you want to download videos
                             indexed 1, 2, 5, 8 in the playlist. You can
                             specify range: "--playlist-items
                             1-3,7,10-13", it will download the videos
                             at index 1, 2, 3, 7, 10, 11, 12 and 13.
--match-title REGEX              Download only matching titles (regex or
                             caseless sub-string)
--reject-title REGEX             Skip download for matching titles (regex or
                             caseless sub-string)
--max-downloads NUMBER           Abort after downloading NUMBER files
--min-filesize SIZE              Do not download any videos smaller than
                             SIZE (e.g. 50k or 44.6m)
--max-filesize SIZE              Do not download any videos larger than SIZE
                             (e.g. 50k or 44.6m)
--date DATE                      Download only videos uploaded in this date
--datebefore DATE                Download only videos uploaded on or before
                             this date (i.e. inclusive)
--dateafter DATE                 Download only videos uploaded on or after
                             this date (i.e. inclusive)
--min-views COUNT                Do not download any videos with less than
                             COUNT views
--max-views COUNT                Do not download any videos with more than
                             COUNT views
--match-filter FILTER            Generic video filter (experimental).
                             Specify any key (see help for -o for a list
                             of available keys) to match if the key is
                             present, !key to check if the key is not
                             present,key > NUMBER (like "comment_count >
                             12", also works with >=, <, <=, !=, =) to
                             compare against a number, and & to require
                             multiple matches. Values which are not
                             known are excluded unless you put a
                             question mark (?) after the operator.For
                             example, to only match videos that have
                             been liked more than 100 times and disliked
                             less than 50 times (or the dislike
                             functionality is not available at the given
                             service), but who also have a description,
                             use --match-filter "like_count > 100 &
                             dislike_count <? 50 & description" .
--no-playlist                    Download only the video, if the URL refers
                             to a video and a playlist.
--yes-playlist                   Download the playlist, if the URL refers to
                             a video and a playlist.
--age-limit YEARS                Download only videos suitable for the given
                             age
--download-archive FILE          Download only videos not listed in the
                             archive file. Record the IDs of all
                             downloaded videos in it.
--include-ads                    Download advertisements as well
                             (experimental)

Коли я завантажую відео в список відтворення, через "youtube-dl -itcv --yes-playll url" існують деякі відео, які не завантажуються. Як я можу зробити це навколо? Або ця проблема існувала тому, що я не використовував параметр "-f mp4" і сталася помилка, коли програма вибирала найкращий формат для завантаження?
Едгар Олівейра

просто наберітьyoutube-dl --yes-playlist url
GAD3R

продовжуйте з тією ж проблемою. У списку відтворення, я намагаюся завантажити, вказують 42 відео на YouTube. Але було завантажено лише 34 відео. Вихід такий: [youtube: playlist] Плейлист Ім'я Плейлист: Завантаження 34 відео
Edgar Oliveira

1
@EdgarOliveira часто в списках відтворення є кілька видалених відео, але youtube продовжує включатись у список відтворення ... це спричиняє проблему
Скотт Стенсленд

109

Ось так ( джерело ):

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4' url

класно, це завантажене найкраще відео + найкраще аудіо та об’єднало його разом.
Ренетик

5
Якщо вас не цікавлять конкретні формати, запитувані OP, то варто зауважити, що з 2015 року типовими для youtube-dl є типові налаштування -f bestvideo+bestaudio/best, тому вже налаштовано завантажувати bestvideo та bestaudio (і автоматично відключати їх разом у отриманому файлі) . Джерело: github.com/rg3/youtube-dl/blob/master/…
jj_

@jj_ Однозначно - коли я використовую цей командний рядок, він повинен отримати версію H.264 + AAC, сумісну з найширшим діапазоном пристроїв.
s4y

@ s4y так, але це пов'язано з ризиком перекодування. Щоб уникнути цього, я би керував цим інакше, не примушуючи до кожного завантаженого файлу одного формату контейнера.
jj_

1
@ s4y youtube-dl дійсно буде перекодувати, коли це потрібно ( --audio-formatопція), але ви маєте право тут: це не повинно бути з цим рядком, тому що ви змушуєте youtube-dl завантажувати два файли (bestaudio [ext = mp4] і bestvideo [ext = m4a]), які мають один і той же тип контейнера (mp4), тому незалежно від їх вмісту при повторному відтворенні вони будуть зберігатися в іншому mp4 без необхідності перекодування.
jj_

10

Відповідно до цього коментаря glenn-slayden, формат mp4 з найвищою якістю відео виходить таким чином:

Я усвідомлюю, що ця нитка трохи стара, але я думаю, що ситуація дещо змінилася. Для моєї мети:

  • в першу чергу завжди беруть найкращу доступну якість відео незалежно від формату;
  • але тоді ніколи не дозволяйте лише аудіоформату втратити mp4 .

Раніше я використовував bestvideo+bestaudio/best, але я вважаю, що наступний варіант працює набагато краще для зменшення mkv(мабуть) усунення webm, але все ж гарантує відео найвищої якості (не використовуйте --merge-output-formatпараметр при використанні цього):

--format bestvideo+bestaudio[ext=m4a]/bestvideo+bestaudio/best 

Зауважте, що в першому терміні extфільтр задається для аудіо, а не для відео , про техніку, про яку я не бачив згадування в обговоренні вище. Якщо це здається зворотним для моїх заявлених цілей, це може бути тому, що, враховуючи, що ми намагаємося забезпечити формат відео mp4, чому саме для звуку задано обмеження?

Ключовим є те, що кожен запасний термін (розділений косою рисою) буде невдалим, якщо будь-яка частина його вимоги не виконана , переходячи до наступного терміну. Під час використання bestvideo+bestaudioбагато випадків отримання контейнера без mp4 відображаються лише тому, що такий вибір формату однозначно наполягає bestaudio, що може означати змішаний формат. Це тому, що bestvideo+bestaudioкоманда занадто наполеглива, щоб вас змусили вигнати mp4.

Але що робити, якщо ви більше піклуєтесь про отримання контейнера mp4, ніж про якість аудіо ? Наполягаючи на m4aаудіо першого - але потім пом'якшити тільки на ту частину при видачі bestvideoзнову - (за допомогою вибору формату вище) ви істотно висловити гнучке перевагу по mp4порівнянні з іншими контейнерами; Ви , звичайно ж хочете , mp4якщо це можливо, але не за рахунок зниження якості відео.

Як я вже говорив, ви все одно можете отримати деякі mkv, але їх кількість значно зменшиться і використовуватиметься лише тоді, коли вимагатиметься (нібито) кращого відео. І поки що з цією конфігурацією я взагалі не бачив webm, тому що щось на зразок 248 + 140 працює mkv.

В останньому випадку додавання --merge-output-format mp4перетворює на mp4, якщо потрібно. Отже, повна команда:

youtube-dl --format "bestvideo+bestaudio[ext=m4a]/bestvideo+bestaudio/best" --merge-output-format mp4
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.