Скачать только формат MP4 на YouTube-DL

74

Как я могу использовать download-dl для загрузки видео через плейлист url только формат mp4 вместо format .mkvили .webm?

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

Результатом этой команды является видео с расширением .mp4, .mkvили.webm

Эдгар Оливейра
источник
посмотрите на --list-formatsи --format nnпереключатели.
jc__
Используется -f mp4. Но один раз скачал файл, на mp4, с 150 Мб, а другой раз с 90 Мб. Я прочитал справку, доступную через "youtube --help", и я не могу найти другой параметр, в котором я могу указать конкретное качество загрузки!
Эдгар Оливейра

Ответы:

81

Для просмотра списка доступных форматов введите:

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

Чтобы получить наилучшее качество видео (1080p DASH - формат «137») и лучшее качество звука (DASH аудио - формат «140»), необходимо использовать следующую команду:

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

РЕДАКТИРОВАТЬ

Вы можете получить больше вариантов здесь

Выбор видео:

--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)
GAD3R
источник
Когда я загружаю видео в плейлист, через "youtube-dl -itcv --yes-playlist url" появляются видео, которые не загружаются. Как я могу обойти это? Или эта проблема существовала, потому что я не использовал параметр "-f mp4" и произошла ошибка, когда программа выбрала лучший формат для загрузки?
Эдгар Оливейра
просто введитеyoutube-dl --yes-playlist url
GAD3R
продолжить с той же проблемой. В плейлисте я пытаюсь скачать указывать 42 видео на YouTube. Но только 34 видео было загружено. Выходные данные: [youtube: playlist] плейлист Имя Плейлист: Загрузка 34 видео
Эдгар Оливейра
1
@EdgarOliveira часто в плейлистах есть несколько удаленных видео, но youtube продолжает включать в плейлист ... это вызывает проблему
Скотт Стенсланд
110

Как это ( источник ):

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4' url
s4y
источник
круто, это скачанное лучшее видео + лучшее аудио и слитое воедино.
Ренетик
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
Фрэнк Брейтлинг
источник