Selecionar duração máxima do vídeo baixado no youtube-dl

Desejo baixar um video do youtube via youtube-dl.
Vamos supor que aquilo que me interessa no vídeo tenha início no minuto 6, e acabe no minuto 20, existe alguma forma de informar isso no youtube-dl para que o mesmo baixe o vídeo partindo do minuto 6 e acabando no minuto 20?

Conheço muito pouco do Youtube-DL, mas um exemplo seria:

 youtube-dl -x --postprocessor-args "-ss 00:01:00.00 -t 00:00:30.00" \
   --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=CYDP_8UTAus

Ou seja:

youtube-dl -x --postprocessor-args \
  "-ss {TEMPO Final} -t {TEMPO Inicial}" [Opções extras] [Youtube_URL]

Na prática, esse tópico ainda está em aberto no Github assim como também no StackExchange, não parecer haver opções de comandos para que apenas esse intervalo seja baixado, ele acaba tendo que baixar todo vídeo, e converter via ffmpeg.

2 curtidas

Usa ffmpeg junto do youtube-dl.

  1. Primeiro veja quais são as opções de formato e qualidade do vídeo com o youtube-dl

youtube-dl -F Prismo - Stronger [NCS Release] - YouTube

Da lista eu vou escolher o “format 18”. Note que as colunas resolution e note indicam quando o arquivo é apenas vídeo (video only) e apenas áudio (audio only).

  1. Agora obtenha a URL do vídeo com o youtube-dl.

youtube-dl -f 18 -g Prismo - Stronger [NCS Release] - YouTube

Para testar antes de baixar, você pode copiar o link obtido e colar no navegador. Ele reproduzirá o vídeo.

  1. Agora eu vou ignorar o primeiro minuto do vídeo com -ss 00:01:00 e pegar os próximos trinta segundos com -t 00:00:30.

ffmpeg -ss 00:01:00 -i “URL_AQUI” -t 00:00:30 -c:v copy -c:a copy video.mp4

O comando completo fica assim.

ffmpeg -ss 00:01:00 -i “https://r1---sn-b8u-j28l.googlevideo.com/videoplayback?clen=18194593&source=youtube&sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpcm2cms%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&expire=1554144292&gir=yes&dur=212.067&initcwndbps=531250&ei=xAeiXPZKkITmBP_cgZgB&requiressl=yes&ip=2804%3A7f7%3A2382%3A5c7b%3A99a4%3Af58c%3A873d%3A4ccc&mv=m&mt=1554122572&ms=au%2Crdu&txp=5531432&mn=sn-b8u-j28l%2Csn-gpv7dn7e&mm=31%2C29&pl=37&id=o-AILUZs5Nu0Jczi4_d2gYQF-P2Ze3hxIwLLT0inPoX6va&mime=video%2Fmp4&ipbits=0&lmt=1548527090150349&key=yt6&itag=18&pcm2cms=yes&fvip=1&ratebypass=yes&c=WEB&signature=B306CE2507B49174D48C6A1172D013D20EAB2890.8FE1C918C8C9A2FA7FD03DD68F45324437BEE1AC” -t 00:00:30 -c:v copy -c:a copy video.mp4

Caso queira baixar os arquivos que são só vídeo e só áudio e depois juntar. Tente usar os comandos abaixo.

ffmpeg -i VideoArq.mp4 -i AudioArq.mp4 -vcodec copy -acodec copy mix.mp4

Ou.

ffmpeg -i VideoArq.mp4 -i AudioArq.mp4 -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 mix.mkv

Esse site vai te ajudar: Conversor Vídeo YouTube - Converter para MP4, MP3, AVI

Clicando em “Mais Definições”, vc define o tempo inicial e final para cortar. Quando os vídeos originais são longos (45min…1h…) ele pode demorar mais para gerar - o que é totalmente normal.