Como selecionar a qualidade do video no youtube-dl?


255

Eu instalei o youtube-dl no meu 14.04.

Eu posso baixar o vídeo seguindo o comando,

$ youtube-dl [youtube-link]

Mas quero saber como selecionar a qualidade de pixel disponível do vídeo do youtube (por exemplo , 1080p, 720p, 480p, etc. ) .

Na descrição do software, eles disseram que é possível (mostrado na imagem abaixo), mas como fazer ..

ss


1
A descrição acima é obsoleta. Na manpágina: "o youtube-dl agora assume como padrão o download da mais alta qualidade disponível, conforme relatado pelo YouTube, que será 1080p ou 720p em alguns casos".
21714 Jos

1
Observe que o YouTube empregou algum tipo de proteção que impede que as ferramentas de download baixem (ou até mesmo vejam) a versão 1080p, mas você ainda pode baixar todas as outras resoluções até 720p, inclusive.
thomasrutter

Sei que estou um pouco atrasado para a festa, mas eis a minha experiência: askubuntu.com/a/1097056/327339 . Use a -f bestopção
Gabriel Staples

Respostas:


360

Para baixar um vídeo, digite o URL após o comando da seguinte maneira:

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

Para selecionar a qualidade do vídeo , primeiro use a -Fopção para listar os formatos disponíveis. Veja um exemplo:

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

Aqui está a saída:

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

A melhor qualidade é 22, então, em -f 22vez de -Fbaixar o vídeo MP4 com resolução de 1280x720, use o seguinte:

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

Ou, opcionalmente, use os seguintes sinalizadores para baixar automaticamente as melhores faixas de áudio e vídeo disponíveis como um único arquivo:

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

Se você encontrar algum erro durante o processo de muxing ou um problema na seleção da qualidade do vídeo, poderá usar um dos seguintes comandos:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 'http://www.youtube.com/watch?v=P9pzm5b6FFY'

ou, como apontou Gabriel Staples aqui , o comando a seguir normalmente seleciona a melhor resolução de qualidade de vídeo de arquivo único, em vez da taxa de bits da qualidade de vídeo:

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

Esses comandos garantirão que você baixe o vídeo mp4 da mais alta qualidade e o áudio m4a do vídeo como um único arquivo ou os mesclará novamente em um único mp4 (usando ffmpegno meu caso). Se ffmpegou avconvnão estiver disponível, youtube-dlretorne ao arquivo único em -f best optionvez do padrão.

Clique aqui para obter informações mais detalhadas e alguns exemplos diferentes.

Além disso, clique para ver esta resposta relacionada por Gabriel Staples.


Fonte: www.webupd8.org/2014/02/video-downloader-youtube-dl-gets.html

Fonte: github.com/rg3/youtube-dl


5
Certifique-se de que você não escolhe DASH. Isso não pode ser jogado!
ps95 13/09/14

@ prakharsingh95 o áudio DASH só pode ser convertido para o formato wave ou mp3 padrão usando o gnac ou software similar.
Mchid 17/09/2014

1
Eu quis dizer DASH Video. Tentei fazer o download 4K, mas é tudo em DASHformato ( DASHpermite que o YouTube preserve a largura de banda). É radicalmente diferente, será praticamente impossível de jogar.
ps95 24/09/14

1
@ prakharsingh95 Sim, se você conseguir visualizar o mp4 usando o VLC como VLC, você poderá sincronizar o vídeo com um arquivo separado para áudio. Eu ainda não tentei. Você já tentou converter o arquivo mp4 do DASH download para o formato avi? Eu acho que eles são semelhantes.
mchid 25/09/14

2
Sim. É claro que o Dash é jogável, mas você precisa misturar os fluxos com algo parecido avconv. Muito lento para 4K.
ps95 29/09/14

110

Você pode baixar 1080p usando youtube-dl, mas precisa fazer um pouco de trabalho extra. Geralmente, o download é de apenas 720p no máximo, mesmo que você possa ver 1080p no youtube.com.

Execute com -Fpara ver os formatos disponíveis:

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)

observe que youtube-dlrotulou a última opção 1280x720 como a 'melhor' qualidade e é o que será baixado por padrão, mas que a linha que começa com 137 é na verdade uma qualidade mais alta de 1920x1080. O YouTube separou os fluxos de vídeo e áudio para as linhas rotuladas como DASH, portanto, também precisamos escolher o áudio da mais alta qualidade, que neste caso é a linha que começa com 141. Em seguida, executamos youtube-dlnovamente desta vez especificando o áudio e o vídeo:

youtube-dl -f 137+141 https://www.youtube.com/watch\?v\=-pxRXP3w-sQ

e ele baixa o vídeo 1080p e o mescla automaticamente com o áudio da mais alta qualidade. Também deve excluir automaticamente as partes baixadas separadas. Esse método é um pouco mais trabalhoso, mas você obtém os melhores resultados.


11
muito obrigado, não sabia sobre 137 + 141 #
whitesiroi 05/05

3
Seu exemplo e outros apresentam opções fáceis para o áudio - ou seja, para alta qualidade, escolha aquele com o maior valor de taxa de bits. Recentemente, no entanto, me vi diante de uma escolha entre DASH audio , opus @160kou DASH audio 126k , audio@128k (44100Hz), 1.79MiBou DASH audio 127k , m4a_dash container, aac @128k (44100Hz), 1.94MiB. Eu tive que escolher, mas não tenho certeza sobre a qualidade, ou talvez a compatibilidade.
user643722

1
A melhor coisa do youtube-dl é que ele é multiplataforma. Esta solução não funciona apenas no Linux, mas também no Mac e Windows. Obrigado!
Antony

2
Atualmente, esse é o padrão, mas apenas se você tiver o avconv (libav) ou o ffmpeg instalado para fazer a conversão do arquivo. Para o Windows, que pretende definir --ffmpeg-locationno %APPDATA%\youtube-dl\config.txtpara o diretório onde avconv / ffmpeg está instalado. Se você -f bestvideo[fps<=30]+bestaudiopossui um sistema low-end, também pode querer estar lá, para evitar vídeos a 60fps.
GreenReaper

29

Para selecionar resoluções específicas, você pode especificar o tamanho e a qualidade do áudio para que sejam selecionados automaticamente - como 480p :

-f 'bestvideo[height<=480]+bestaudio/best[height<=480]'

com bestvideo[height<=720]+bestaudio/best[height<=720]para 720p etc. Isso pode ser adicionado ao arquivo de configuração em ~/.config/youtube-dl/config(ou mesmo /etc/youtube-dl.conf) para que você não obtenha downloads grandes:

mkdir ~/.config/youtube-dl
echo "-f 'bestvideo[height<=720]+bestaudio/best[height<=720]'" >> ~/.config/youtube-dl/config

Você pode usar --ignore-configse quiser desativar o arquivo de configuração para uma determinada execução do youtube-dl.

Observe que, com bastante frequência, será necessário fazer o download de um vapor de vídeo e áudio separado e mesclá-los.

Para mais exemplos, veja youtube-dla duplicação .


1
Eu tive um problema em que diferentes segmentos do mesmo vídeo tinham códigos de formato diferentes para a mesma resolução (por exemplo, hls-1476 para o vídeo 1 de 2 e hls-1665 para o vídeo 2 de 2, onde ambos eram 540p), então não pude usar apenas "-f hls-1476" ou "-f hls-1665" ou eu receberia "ERROR: formato solicitado não disponível" Seus exemplos de comando me ajudaram a recuperar o que eu queria.
ssnobody

1
+1 para~/.config/youtube-dl/config
Marinos Um

10

Algumas das outras opções para baixar os vídeos de melhor qualidade que não os mencionados aqui, dependendo da sua conveniência, são apresentados abaixo:

Baixe o melhor formato mp4 disponível ou qualquer outro melhor, se não houver mp4 disponível

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

Faça o download do melhor formato disponível, mas não melhor que 480p

$ youtube-dl -f 'bestvideo[height<=480]+bestaudio/best[height<=480]'

Faça o download do melhor formato somente de vídeo, mas não superior a 50 MB

$ youtube-dl -f 'best[filesize<50M]'

Baixe o melhor formato disponível via link direto através do protocolo HTTP / HTTPS

$ youtube-dl -f '(bestvideo+bestaudio/best)[protocol^=http]'

Referência:

Diretamente da página do youtube-dl github


Como combinar ext=mp4 && height<=480 && filesize<50M?
mrgloom 21/06

6

Um script do bash wrapper que solicita o formato, que inclui todas as renderizações disponíveis, incluindo somente áudio, somente vídeo e depois transmite o vídeo / áudio mpv.

Aceita URLs absolutos do YouTube e IDs de vídeo.

#!/ 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")

Saída de amostra :

    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 #

Se você deseja fazer o download do vídeo, em vez de transmiti-lo, remova a mpv --cache=1024parte e o cifrão com colchetes.


2

Como obter a melhor qualidade de vídeo disponível.

Esta resposta aqui, com o maior número de votos, deve ser correta para fornecer a melhor qualidade de vídeo disponível, mas ... não é. bestvideo+bestaudioparece escolher apenas o melhor vídeo e o melhor áudio das opções que são apenas o vídeo e apenas o áudio , depois ele mescla os dois. Observe que isso também parece ser idêntico ao comportamento padrão do youtube-dl. No entanto, no vídeo que eu estava vendo, a melhor qualidade era um único arquivo pré-mesclado que já estava em um formato com vídeo e áudio combinados. A bestvideo+bestaudioopção NÃO escolheu este arquivo 720p da melhor qualidade, pois estava procurando apenas arquivos de vídeo e áudio separados . Detalhes abaixo.

Solução? Faça com que ele pegue o melhor arquivo único que contém vídeo e áudio em um, com o seguinte:

youtube-dl -f best https://youtu.be/FWGC9SqA3J0

Em resumo: use a -f bestopção, NÃO a -f bestvideo+bestaudioopção!

Prova:

insira a descrição da imagem aqui

Mais especificamente, veja abaixo os resultados da execução

youtube-dl -F https://youtu.be/FWGC9SqA3J0

para ver quais vídeos 'F'ormats estão disponíveis para download:

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) 

Observe que a linha 22 diz "(melhor)" à extrema direita. Essa é a única opção que oferece qualidade hd720, que é a melhor qualidade que eu posso obter ao assistir a este vídeo em um navegador da web no YouTube. É o mais claro e tem a melhor definição. Quando uso um dos comandos recomendados pela resposta superior:

youtube-dl -f bestvideo+bestaudio https://youtu.be/FWGC9SqA3J0

OU:

youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/bestvideo+bestaudio' --merge-output-format mp4 https://youtu.be/FWGC9SqA3J0

Acabo com um vídeo com qualidade inferior / resolução mais baixa e tamanho de arquivo maior. Não entendi exatamente, mas a -f bestopção é definitivamente a única que realmente me dá a melhor resolução.

Aqui estão algumas capturas de tela:

  1. Usando a opção de qualidade mais baixa -f bestvideo+bestaudio aceita aqui como a resposta certa (OU apenas usando a opção padrão:) youtube-dl https://youtu.be/FWGC9SqA3J0:

    • insira a descrição da imagem aqui
    • Observe como os ícones estão confusos no topo e como é difícil ler a janela aberta e as pequenas palavras dentro dela!
    • Isso é significativamente pior do que a qualidade que recebo ao assistir online no YouTube diretamente no navegador.
    • Essa opção também ocupa mais memória por algum motivo: o vídeo tem 18,0 MB e demorou mais tempo para o meu sistema baixar e combinar novamente (áudio + vídeo) do que a -f bestopção abaixo, que só precisava fazer um download e não recombinar já que já era um arquivo.
  2. Usando a opção de qualidade mais alta -f best que eu recomendo:

    • insira a descrição da imagem aqui
    • Observe quão claros são os ícones pequenos na parte superior e a fonte pequena na janela!
    • Esta é a resolução idêntica à que recebo ao assistir na resolução mais alta possível diretamente no navegador do YouTube.
    • Essa opção também ocupa menos memória por algum motivo: o vídeo tem 14,8 MB.

Leitura adicional:

Veja man youtube-dlpara detalhes.


1
estranho que eu veja listagens de opções de 1920x1080, mas a opção de 1280x720 (hd720) ainda diz "melhor"
nmz787

Todas as suas capturas de tela estão mostrando algumas coisas eletrônicas.
localhost

@localhost, isso mesmo. São todas as capturas de tela do vídeo cujo URL você vê em todos os meus trechos de código ao longo da postagem: youtu.be/FWGC9SqA3J0 .
Gabriel Staples

@GabrielStaples Aah. Sim, isso faz sentido. Me desculpe por isso.
localhost

Não é estranho que o número mais alto no lado esquerdo não corresponda à maior quantidade de pixels na tela no seu exemplo de código de formatos disponíveis?
Ben

0

Como economizo em disco, faço o download de vídeos no formato 1280 x 720,
porque os 4kvídeos ocupam mais tamanho do meu disco rígido.
Então eu adiciono youtube-dl~ /. arquivo bashrc como dado abaixo

Configurando um trabalho -

abra o terminal e digite

  • nano ~/.bashrc
    Agora vá para a parte inferior do arquivo e adicione o comando abaixo
  • alias yt='youtube-dl -if best'
  • salvar o arquivo pressionando Ctrl oe pressioneEnter
  • sair do arquivo pressionando Ctrl x
  • e último comando de execução source ~/.bashrcno terminal

Experiência -

Abra o terminal e digite
yt https://www.youtube.com/watch?v=puPUJlV1-W4
Ele começará a baixar o vídeo com a melhor qualidade.

Explicação - O
Bash nos permite definir aliases que funcionam como atalhos para bash comandos
no nosso caso, definimos alias como -
alias yt = 'youtube-dl -i f best', em
que yt é o comando de atalho para 'youtube-dl', que fornece alívio
nossos dedos para digitar comando longo.
Você pode escrever qualquer coisa no lugar de yt .
Eu defino uma bandeira -i , o que significayoutube-dl -if best

Ele continuará com erros de download, por exemplo, para pular vídeos indisponíveis em uma lista de reprodução


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.