Descargue videos de YouTube desde el inicio del lote hasta el final del lote que es parte de una lista de reproducción

10

Un video de Youtube se puede ver de forma independiente o puede ser parte de una lista de reproducción.
Ejemplo:
https://www.youtube.com/watch?v=vbsNiOkm0BU y
https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA

Note la parte vbsNiOkm0BU.

La pregunta es obtener esta parte para todos los videos del canal / lista de reproducción.

El motivo es descargar todos los videos de este canal (aproximadamente 3600). Pero no he tenido éxito con la youtube-dldescarga de una sola vez.
Así que deseo descargarlo en un montón de cientos, como ejemplo.

Si pudiera continuar con esta pregunta, ¿puedo escribir un script bash para descargar solo índices particulares de una lista de reproducción?

Si ve el enlace anterior:
https://www.youtube.com/watch?v=vbsNiOkm0BU&index=141&list=UUmM7KPLEthAXiPVAgBF6rhA
Observe la parte &index=141.

Ahora si haces algo como esto:

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

Note la parte &index=${i}.

Esto es descargar el mismo video una y otra vez, debido a vbsNiOkm0BU.

Cualquier ayuda en esto sería muy apreciada. Gracias.

Rishiraj Surti
fuente

Respuestas:

14

Lista de reproducción

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

... donde <url-of-playlist>se reemplaza por la URL de la lista de reproducción, reemplazar FORMATcon cualquier formato de video disponible, por ejemplo 18, NUMBER-STARTes el número del video en la lista de reproducción para comenzar a descargar primero, y NUMBER-ENDes el número del video en la lista de reproducción para descargar el último .

Canal

Si un canal tiene más de una lista de reproducción, haga clic en la primera lista de reproducción y descargue todos los videos de la lista de reproducción seleccionada con el comando anterior. Luego repita para cada lista de reproducción en el canal.

Explicación

-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 

Convierte todos los títulos de video a 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/' {} +

Explicación

--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
fuente
¡Gracias! ¡Eso funciono! Solo una consulta más, ¿puedo convertir todos los títulos de video a minúsculas durante la descarga? Puedo especificar el formato como --output "%(title)s". ¿Puedo convertirlo también a minúsculas?
Rishiraj Surti