Faça o download apenas do formato mp4 no youtube-dl

74

Como posso usar o download-dl para baixar vídeos através da lista de reprodução de URL, apenas no formato mp4 .mkvou no formato .webm?

Eu uso este comando para baixar vídeos: youtube-dl -itcv --yes-playlist https://www.youtube.com/playlist?list=....

O resultado deste comando são de vídeo com extensão .mp4, .mkvou.webm

Edgar Oliveira
fonte
olhar os --list-formatse --format nnswitches.
jc__
Usado -f mp4. Mas uma vez baixou o arquivo, no mp4, com 150mb e outra com 90mb. Fui ler a ajuda, disponível no "youtube --help" e não consigo encontrar outro parâmetro em que possa específico para baixar a qualidade máxima!
Edgar Oliveira

Respostas:

81

Para listar os formatos disponíveis, digite:

youtube-dl -F url

Então escolha o melhor

Exemplo: youtube-dl -f 11 url

Exemplo de webupd8

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

saída de amostra:

[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)

Você pode escolher beste digitar

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

Para obter a melhor qualidade de vídeo (formato DASH em 1080p "137") e a melhor qualidade de áudio (formato de áudio DASH "140"), você deve usar o seguinte comando:

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

EDITAR

Você pode obter mais opções aqui

Seleção de vídeo:

--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
fonte
Ao baixar vídeos na lista de reprodução, através de "youtube-dl -itcv --yes-playlist url" existem alguns vídeos que não foram baixados. Como posso fazer isso? Ou, esse problema existia porque eu não usei o parâmetro "-f mp4" e ocorreu um erro quando o programa escolheu o melhor formato para baixar?
Edgar Oliveira
apenas digiteyoutube-dl --yes-playlist url
GAD3R
continue com o mesmo problema. A lista de reprodução que eu tento baixar indica 42 vídeos no youtube. Mas apenas 34 vídeos foram baixados. A saída é: [youtube: playlist] playlist Nome Playlist: baixando 34 vídeos
Edgar Oliveira
11
@EdgarOliveira muitas vezes em playlists existem alguns vídeos excluídos ainda youtube continua a incluir na lista de reprodução ... é esta a causa do problema
Scott Stensland
110

Assim ( fonte ):

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4' url
s4y
fonte
legal, isso baixou o melhor vídeo + o melhor áudio e o mesclou.
Renetik
5
Se você não se importa com os formatos específicos solicitados pelo OP, vale a pena notar que, desde 2015, os padrões do youtube-dl são -f bestvideo+bestaudio/best, então já está configurado para baixar o bestvideo e o bestaudio (e agrupá-los automaticamente em um arquivo resultante) . Fonte: github.com/rg3/youtube-dl/blob/master/…
jj_
@jj_ Definitivamente - quando eu uso essa linha de comando, é para obter uma versão H.264 + AAC compatível com a mais ampla gama de dispositivos.
S4y
@ s4y sim, mas isso vem com o risco de transcodificação. Para evitar isso, eu gerenciaria isso de maneira diferente, sem forçar um único formato de contêiner em todos os arquivos baixados.
jj_
11
@ s4y O youtube-dl realmente transcodificará quando necessário ( --audio-formatopção), mas você está aqui: não deve ser o caso dessa linha, porque você está forçando o youtube-dl a baixar dois arquivos (bestaudio [ext = mp4] e bestvideo [ext = m4a]) que possuem o mesmo tipo de contêiner em comum (mp4); portanto, qualquer que seja seu conteúdo, ao remuxá-lo, eles serão empilhados em outro mp4 sem necessidade de transcodificação.
jj_
10

De acordo com este comentário de glenn-slayden, um formato mp4 com a mais alta qualidade de vídeo é obtido da seguinte forma:

Sei que esse segmento é um pouco antigo, mas acho que a situação mudou um pouco. Para o meu objetivo:

  • Em primeiro lugar, obtenha sempre a melhor qualidade de vídeo disponível, independentemente do formato;
  • mas nunca deixe o formato de áudio sozinho fazer com que você perca o mp4 .

Anteriormente, eu estava usando bestvideo+bestaudio/best, mas acho que a seguinte variante funciona muito melhor para reduzir mkv(aparentemente) eliminar webm, mas ainda assim garantir o vídeo da mais alta qualidade (não use a --merge-output-formatopção ao usar isso):

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

Observe que, no primeiro termo, o extfiltro é especificado para o áudio, mas não para o vídeo , uma técnica que não vi mencionada na discussão acima. Se isso parece inverso para meus objetivos declarados, pode ser porque, considerando que estamos tentando garantir que o formato do vídeo seja mp4, por que a restrição é dada ao áudio?

A chave é que cada termo de fallback (separado pelas barras) falhará se alguma parte de seu requisito falhar, passando para o próximo termo. Ao usar bestvideo+bestaudio, muitos casos de obtenção de um contêiner não-mp4 são exibidos apenas porque essa seleção de formato insiste inequivocamente bestaudio, o que pode significar um formato misto. É porque o bestvideo+bestaudiocomando é muito insistente para que você seja forçado a sair mp4.

Mas e se você se importa mais em obter um contêiner de mp4 do que em relação à qualidade do áudio ? Ao insistir em m4aáudio em primeiro lugar - mas, em seguida, cedendo apenas em parte ao emitir bestvideonovamente - (usando a seleção do formato acima) você basicamente expressar um flexível preferência por mp4sobre os outros recipientes; você certamente não quer mp4se possível, mas não à custa da qualidade de vídeo reduzida.

Como eu disse, você ainda pode obter alguns mkv, mas eles serão bastante reduzidos em número e usados ​​apenas quando necessário para fornecer um vídeo (supostamente) melhor. E até agora com essa configuração, eu não vi nenhuma webm, porque algo como 248 + 140 funciona como mkv.

Neste último caso, a adição --merge-output-format mp4será convertida para mp4, se necessário. Portanto, o comando completo é:

youtube-dl --format "bestvideo+bestaudio[ext=m4a]/bestvideo+bestaudio/best" --merge-output-format mp4
Frank Breitling
fonte