Baixando vários arquivos com o youtube-dl

32

Eu uso o youtube-dl para baixar arquivos do YouTube. Eu tentei baixar vários arquivos, mas não está funcionando para mim. Eu tenho que abrir vários terminais e começar de novo toda vez que eu quero baixar um vídeo.

Você pode me ajudar a baixar vários arquivos com uma única janela de terminal apenas mencionando todos os URLs de uma só vez? Eu uso o Ubuntu 12.04 64-bit.

    
por Mecha-Unix 18.08.2013 / 12:15

7 respostas

40

Atalhos

Se todos os vídeos estiverem na mesma lista de reprodução ou no mesmo canal, você poderá economizar tempo usando os seguintes atalhos.

Lista de reprodução

youtube-dl -f FORMAT -ci <url-of-playlist>

... onde <url-of-playlist> é substituído pelo URL da lista de reprodução e substitui FORMAT por qualquer formato de vídeo disponível, por exemplo, 18 . Você pode usar a opção -F para ver todos os formatos válidos como este:

youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'

Vídeo da lista de reprodução para começar e terminar em

youtube-dl -f FORMAT -ci --playlist-start NUMBER --playlist-end NUMBER <url-of-playlist>  

... onde <url-of-playlist> é substituído pelo URL da lista de reprodução, substitua FORMAT por qualquer formato de vídeo disponível, por exemplo, 18 e NUMBER é o número do vídeo na lista de reprodução a ser iniciado / finalizar o download em.

Canal

youtube-dl -f FORMAT -citw -v <url-of-channel>

... onde <url-of-channel> é substituído pelo URL do canal e substitui FORMAT por qualquer formato de vídeo disponível, por exemplo, 18 .

Vídeos que não estão na mesma playlist ou canal

Primeiro, crie um arquivo de lote, que é um arquivo de texto que contém uma lista de URLs de vídeos do YouTube que você deseja baixar. Os URLs devem ser organizados em uma lista com apenas um URL e nada mais em cada linha, com uma nova linha para cada URL na lista. Salve o arquivo em lote com um nome fácil de lembrar, como batch-file.txt. Se os vários arquivos estiverem todos na mesma página da Web no YouTube, você poderá gerar um arquivo de texto com uma lista que tenha todos os links nessa página, executando o seguinte comando:

lynx --dump -listonly "URL-of-YouTube-webpage" > batch-file.txt

A partir da execução do terminal:

youtube-dl -ct --simulate --batch-file='/path/to/batch-file.txt'

Este é o comando básico, no entanto, você também precisa adicionar os formatos dos vídeos que deseja baixar ou pode fazer download de vídeos com formatos indesejados. Então, primeiro simule seu download para ver se o formato desejado está disponível:

youtube-dl -ct -f 34 --simulate 'http://www.youtube.com/some-alphanumeric-string'

Se o formato de vídeo não estiver disponível, você receberá uma mensagem de erro que diz: requested format not available . Se o formato de vídeo estiver disponível, você não receberá nenhuma mensagem de erro quando usar a opção --simulate . Você também pode adicionar a opção -F para ver todos os formatos válidos como este:

youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'

No terceiro comando, usei o formato de vídeo flv 360p comum:
-f 34 . Você pode preferir testar o formato de vídeo flv 480p usando -f 35 . Então, depois de ter adicionado o formato de vídeo que você quer ao comando, o comando se torna algo assim:

youtube-dl -cit -f 35 --batch-file='/path/to/batch-file.txt'

Notas:

Eu não adicionei a opção --simulate ao último comando, então este comando seria executado de verdade.

    
por karel 18.08.2013 / 13:40
11

Você pode colocar as URLs uma após a outra, com um espaço entre elas. Youtube-dl irá baixá-los sequencialmente. Isso é um pouco mais simples do que criar um arquivo em lotes.

Observe que o --help diz youtube-dl --help Usage: youtube-dl [options] url [url...]

Exemplo de entrada:

    corey in /media/Media/Videos$ youtube-dl http://www.youtube.com/watch?v=fqULJBBEVQE http://www.youtube.com/watch?v=vDbbz-BdyYc http://www.youtube.com/watch?v=OrIFaWJ9Glo

Exemplo de saída:

    [youtube] Setting language
    [youtube] fqULJBBEVQE: Downloading video webpage
    [youtube] fqULJBBEVQE: Downloading video info webpage
    [youtube] fqULJBBEVQE: Extracting video information
    [download] Destination: Web Components - A Tectonic Shift for Web Development - Google I_O 2013-fqULJBBEVQE.mp4
    [download] 100% of 238.14MiB in 36:54
    [youtube] vDbbz-BdyYc: Downloading video webpage
    [youtube] vDbbz-BdyYc: Downloading video info webpage
    [youtube] vDbbz-BdyYc: Extracting video information
    [download] Paul Irish on Web Application Development Workflow-vDbbz-BdyYc.mp4 has already been downloaded
    [youtube] OrIFaWJ9Glo: Downloading video webpage
    [youtube] OrIFaWJ9Glo: Downloading video info webpage
    [youtube] OrIFaWJ9Glo: Extracting video information
    [download] Got server HTTP error. Retrying (attempt 1 of 20)...
    [download] Destination: Single Page Web Applications - JavaScript End-to-End (The Hard Stuff)-OrIFaWJ9Glo.mp4
    [download] 100% of 553.10MiB in 42:17
    
por coreyb 13.11.2013 / 16:23
3

Se você tiver vários URLs de vídeo, basta adicioná-los em uma lista de reprodução à sua lista de reprodução do YouTube criando uma nova ou usando uma existente.

Em seguida, use o comando abaixo.

youtube-dl -f FORMAT --yes-playlist [url-of-playlist]

A opção --yes-playlist fará o download da lista de reprodução, se o URL se referir a um vídeo e a uma lista de reprodução.

Esta é a opção mais simples e rápida que encontrei para o meu propósito de baixar centenas de vídeos de um site que tinha vídeos vinculados do YouTube.

    
por user669330 24.03.2017 / 18:29
2

Para baixar vários vídeos, você pode usar essa estrutura. É semelhante à resposta do @ coreyb com a adição que você pode usar em outro lugar no bash, por exemplo, com echo. Aqui estão duas maneiras:

Aparelho

youtube-dl -f FORMAT {url1,url2,url...}

Repete o último comando sem o último argumento

youtube-dl -f FORMAT url1; !:- url2; !:-url...
    
por Xui 26.06.2017 / 13:51
2

a solução mais simples seria criar um script bash como este

#!/bin/bash
terminal='tty'
exec < ~/Documents/youtubevideolinks.txt

while read -r line
do
    cd ~/Desktop/TilakDa/
    youtube-dl -f 18 "$line"
done
exec < "$terminal"

apenas copie e cole os links de vídeo nesse arquivo txt na pasta de documentos com cada URL de vídeo em uma nova linha e execute este script baixará os vídeos um por um Por padrão, a opção -f 18 é para vídeo em 360p

    
por Shantanu Bedajna 26.06.2017 / 14:07
2

etapa 1: vá para a sua área de trabalho e crie um documento de texto chamado list (ou qualquer outro nome). Copie e cole os URLs, se os arquivos que você deseja baixar no arquivo, um URL por linha

etapa 2: abra o terminal e vá para a área de trabalho

cd Desktop

passo 3: para baixar os arquivos da sua lista, digite (substitua list de acordo se você nomear o arquivo de outra forma)

youtube-dl -a list

Para fazer o download de um canal do YouTube

Execute este comando

youtube-dl -citk –format mp4 –yes-playlist VIDEO_PLAYLIST_LINK
  • -c resume arquivos parcialmente baixados
  • -i ignora quaisquer erros.
  • -t usa o título do vídeo como o nome do arquivo.
  • -k mantém o vídeo no disco após o término do pós-processamento.
  • --format mp4 salva os arquivos de vídeo como arquivos MP4.
  • --yes-playlist afirma que o URL que segue aponta para uma lista de reprodução de vídeos.
por Ahmed Ismail 19.08.2017 / 05:32
1

Digite o comando e digite && e digite o próximo comando como:

youtube-dl--add-metadata -xic http://(the url) && youtube-dl--add-metadata -xic http://(the url) 
    
por user859198 12.08.2018 / 06:07