Baixe vídeos do YouTube do início ao fim do lote que faz parte de uma lista de reprodução

10

Um vídeo do YouTube pode ser assistido de forma independente ou pode fazer parte de uma lista de reprodução.
Exemplo:
https://www.youtube.com/watch?v=vbsNiOkm0BU e
https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA

Observe a parte vbsNiOkm0BU.

A questão é obter essa parte para todos os vídeos do canal / lista de reprodução.

O motivo é baixar todos os vídeos deste canal (aproximadamente 3600). Mas não obtive sucesso com o youtube-dldownload de uma só vez.
Então, eu desejo baixá-lo em um monte de 100, como um exemplo.

Se eu pudesse levar essa questão adiante, posso escrever um script bash para baixar apenas índices específicos de uma lista de reprodução?

Se você vir o link acima:
https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA
Observe a peça &index=141.

Agora, se fizer algo assim:

for i in {100..200}
do
youtube-dl https://www.youtube.com/watch?v=vbsNiOkm0BU&index=${i}&list=UUmM7KPLEthAXiPVAgBF6rhA
done

Observe a parte &index=${i}.

Isso está baixando o mesmo vídeo repetidamente, devido a vbsNiOkm0BU.

Qualquer ajuda neste assunto seria altamente apreciada. Obrigado.

Rishiraj Surti
fonte

Respostas:

14

Lista de reprodução

youtube-dl -f FORMAT -ciw --output '%(title)s.%(ext)s' --playlist-start NUMBER-START --playlist-end NUMBER-END <url-of-playlist>  

... onde <url-of-playlist>é substituído pelo URL da lista de reprodução, substitua FORMATpor qualquer formato de vídeo disponível, por exemplo 18, NUMBER-STARTé o número do vídeo na lista de reprodução para começar a baixar primeiro e NUMBER-ENDé o número do vídeo na lista de reprodução para baixar pela última vez .

Canal

Se um canal tiver mais de uma lista de reprodução, clique na primeira lista de reprodução e faça o download de todos os vídeos na lista selecionada usando o comando acima. Em seguida, repita para cada lista de reprodução no canal.

Explicação

-f, --format FORMAT
    video format code. The -F option (capital F) displays all available video  
    formats for a video link. Example: youtube-dl -F <url-of-video>

-c, --continue                   
    force resume of partially downloaded files

-i, --ignore-errors              
    continue on download errors, for example to skip unavailable videos  
    in a channel   

-w, --no-overwrites
    do not overwrite files 

Converta todos os títulos de vídeo em minúsculas

youtube-dl -f FORMAT -ciw --output '%(title)s.%(ext)s' --playlist-start NUMBER-START --playlist-end NUMBER-END <url-of-playlist>     
find -type f -exec rename 'y/A-Z/a-z/' {} +

Explicação

--output '%(title)s.%(ext)s'  
    output file name(s) as the name of the video, followed by a dot character and the video's extension  

find -type f 
    Find all files.

y/source/destination/  
    Transliterate the characters in the pattern space which appear in source   
    to the corresponding character in destination.
karel
fonte
Obrigado! Isso funcionou! Apenas mais uma consulta, posso converter todos os títulos de vídeo em minúsculas durante o download? Eu posso especificar o formato como --output "%(title)s". Também posso convertê-lo para minúsculas?
Rishiraj Surti