Estoy descargando un canal de YouTube completo que consta de unos 10.000 vídeos. A veces la descarga se detiene debido a errores como "contenido demasiado corto" o "conexión interrumpida". Sin embargo, ¿hay alguna forma de reiniciar automáticamente la descarga? Probablemente exista un archivo por lotes que pueda crear, pero no sé cómo hacerlo.
Este es el comando que uso para descargar:
youtube-dl -f bestvideo+bestaudio ytuser:(Channel) -o "/Videos/lhs/[%(upload_date)s - %(id)s] %(title)s.%(ext)s" --ffmpeg-location %CD%\ffmpeg\bin
Respuesta1
Esta respuesta no funcionará en versiones anteriores de youtube-dl. Debes actualizar youtube-dl a la última versión. Si tiene Python instalado en su sistema, puede instalar la última versión de youtube-dl localmente dentro de un entorno virtual de Python, o puede descargar la última versión de youtube-dl e instalarla globalmente.
En Ubuntu 14.04 y posteriores, youtube-dl también es un paquete instantáneo. Para instalarlo escriba:
sudo snap instalar youtube-dl# ejecutarlo con snap run youtube-dl
Abra la terminal y escriba:
youtube-dl -f best -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>
...donde <url-of-channel>
se reemplaza por la URL del canal.
Nota:Si está descargando muchos videos, debe cambiar los directorios al directorio donde desea guardar los videos antes de comenzar a descargarlos.
Explicación
-f, --format FORMAT
video format code. The special name "best" will pick the best quality.
-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
-v, --verbose
print various debugging information
Respuesta2
Si miras la página de manual de youtube-dl, verás la opción para reanudar las descargas parciales.
-c, --continue
Resume partially downloaded files.
Página de manualEnlace
Respuesta3
Quizás este argumento no existía cuando se formuló la pregunta, pero usar
--ignore-errors
hará que youtube-dl continúe descargándose independientemente de cualquier error. Úselo con precaución, ya que una solución general como esta tiene el potencial de causar problemas si pasa por alto un error importante, aunque con un canal con videos de 10k, probablemente no le importe si algunos de ellos no se descargan correctamente.
Además, utilizando
--download-archive archive.log
realizará un seguimiento de lo que ya se ha descargado y omitirá los videos que ya tiene, por lo que si el script se detiene debido a algo como un corte de energía, cuando lo ejecute nuevamente no intentará volver a descargar todo desde el principio. .
Respuesta4
Un guión útil:youtube_channel_archiver