Questão Como selecionar a qualidade de vídeo do youtube-dl?


Eu instalei o youtube-dl no meu 14.04.

Posso baixar o vídeo seguindo o comando

$ youtube-dl [youtube-link]

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

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

ss


183
2018-06-21 10:03


origem


A descrição acima é obsoleta. De man página: "o youtube-dl agora é o padrão para baixar a mais alta qualidade disponível, conforme relatado pelo YouTube, que em alguns casos será 1080p ou 720p." - Jos
Observe que o YouTube empregou algum tipo de proteção que impede que as ferramentas de download baixem (ou mesmo vejam) a versão 1080p, mas você ainda pode baixar todas as outras resoluções até e incluindo 720p. - thomasrutter


Respostas:


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

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

Para selecionar a qualidade do vídeo, primeiro use o -F opção para listar os formatos disponíveis, aqui está 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 use -f 22 ao invés de -F para baixar o vídeo MP4 com resolução de 1280x720 como este:

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

Ou Opcionalmente, use os seguintes flags para baixar automaticamente as melhores trilhas de áudio e vídeo disponíveis:

youtube-dl -f bestvideo+bestaudio "http://www.youtube.com/watch?v=P9pzm5b6FFY"

Se você encontrar um erro durante o processo de muxing, tente o seguinte:

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

Esse comando irá garantir que você baixe o vídeo mp4 da mais alta qualidade e o áudio m4a do vídeo e junte-os em um único mp4 (usando o ffmpeg no meu caso).

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


269
2018-06-21 10:19



Certifique-se de que você não escolhe DASH. Isso não será jogável! - ps95
@ prakharsingh95 o áudio DASH só pode ser convertido em formato wave ou mp3 padrão usando o gnac ou software similar. - mchid
eu quis dizer DASH Video. Eu tentei baixar 4K, mas isso é tudo DASH formato (DASH permite ao youtube preservar a largura de banda). É radicalmente diferente, na maioria das vezes, não é jogável. - ps95
@ prakharsingh95 Sim, se alguma coisa você pode ver o mp4 usando VLC como VLC permite sincronizar o vídeo com um arquivo separado para áudio. Eu não tentei embora. Você já tentou converter o arquivo mp4 do download do DASH para o formato avi? Eu acho que eles são parecidos. - mchid
Sim. Dash é claro jogável, mas você precisa muxar os fluxos com algo parecido avconv. Muito lento para 4K. - ps95


Você pode baixar 1080p usando youtube-dl, mas você precisa fazer um pouco de trabalho extra. Normalmente, ele só fará o download de 720p como máximo, mesmo que você possa ver 1080p no youtube.com.

Correr com -F para 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)

notar que youtube-dl rotulou a última opção 1280x720 como a 'melhor' qualidade e é isso que vai baixar por padrão, mas que a linha que começa com 137 é realmente de maior qualidade 1920x1080. O Youtube separou os streams 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. Então, nós rodamos youtube-dl novamente desta vez especificando o áudio e o vídeo:

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

e vai baixar o vídeo 1080p e auto-mesclá-lo com o áudio de alta qualidade. Ele também deve excluir automaticamente as partes baixadas separadas. Este método é um pouco mais de trabalho, mas você obterá os melhores resultados.


79
2018-01-24 21:59



muito obrigado, não sabia 137 + 141 - whitesiroi
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. Eu recentemente, no entanto, encontrei-me diante de uma escolha entre DASH audio , opus @160k ou DASH audio 126k , audio@128k (44100Hz), 1.79MiB ou 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
A melhor coisa sobre youtube-dl é que é multi-plataforma. Esta solução não funciona apenas no Linux, mas também no Mac e no Windows. Obrigado! - Antony
Hoje em dia este é o padrão, mas somente se você tiver o avconv (libav) ou ffmpeg instalado para fazer a conversão do arquivo. Para o Windows, você deseja definir --ffmpeg-location dentro %APPDATA%\youtube-dl\config.txt para o diretório onde o avconv / ffmpeg está instalado. Se você tem um sistema de baixo custo, você pode querer -f bestvideo[fps<=30]+bestaudio lá também, para evitar vídeo de 60fps. - GreenReaper


Para selecionar resoluções específicas, você pode especificar o tamanho e a qualidade do áudio para que eles sejam selecionados automaticamente - assim para 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 até mesmo /etc/youtube-dl.conf) para que você não obtenha downloads superdimensionados:

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

Você pode usar --ignore-config se você quiser desabilitar o arquivo de configuração para uma execução específica do youtube-dl.

Por favor, note que muitas vezes ele terá que baixar um vídeo separado e vapor de áudio e mesclá-los.

Para mais exemplos, veja youtube-dldoucmentation.


15
2017-12-31 09:47



Eu tinha um problema em que segmentos diferentes do mesmo vídeo tinham códigos de formato diferentes para a mesma resolução (por exemplo, hls-1476 para vídeo 1 de 2 e hls-1665 para vídeo 2 de 2, onde ambos eram 540p), então não podia usar "-f hls-1476" ou "-f hls-1665" ou obteria "ERRO: formato solicitado não disponível" Seus exemplos de comando me ajudaram a recuperar o que eu queria. - ssnobody
+1 para ~/.config/youtube-dl/config - Marinos An


Um script de wrapper bash que solicita o formato, que inclui todas as renderizações disponíveis, incluindo apenas áudio, somente vídeo.

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

Amostra de saída:

    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ê quiser baixar o vídeo em vez de transmiti-lo, basta remover o mpv --cache=1024parte e o cifrão com parênteses.


3
2018-06-29 13:27





Algumas das outras opções para baixar os vídeos de melhor qualidade, além dos mencionados aqui, dependendo da sua conveniência, são fornecidas 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'

Baixe o melhor formato disponível, mas não melhor que 480p

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

Transferir apenas o melhor formato de vídeo, mas não superior a 50 MB

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

Baixe o melhor formato disponível através de 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


1
2017-08-17 13:58





Por padrão, o youtube-dl escolherá a melhor qualidade.


-3
2017-12-29 16:26



Sim, de acordo com o readme Você também tem opção (s) para selecionar o formato pretendido, veja aqui: github.com/rg3/youtube-dl/blob/master/… - AjayKumarBasuthkar