Descargar múltiples archivos con youtube-dl

45

Yo uso youtube-dl para descargar archivos de YouTube. He intentado descargar varios archivos, pero no me está funcionando. Tengo que abrir múltiples terminales y comenzar de nuevo cada vez que quiero descargar un video.

¿Me pueden ayudar a descargar varios archivos con una sola ventana de terminal simplemente mencionando todas las URL a la vez? Yo uso Ubuntu 12.04 de 64 bits.

Mecha-Unix
fuente
1
No es una respuesta a su pregunta, pero otros pueden tropezar con esto. Si los videos están relacionados de alguna manera, recuerde que youtube-dl puede descargar todos los videos de una lista de reproducción, usuario o canal.
Dennis
vea la respuesta a continuación (no la más votada actualmente) que sugiere simplemente agregar un espacio entre las URL y ya está.
gota

Respuestas:

54

Atajos

Si todos los videos están en la misma lista de reproducción o en el mismo canal, puede ahorrar tiempo utilizando los siguientes accesos directos.

Lista de reproducción

youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-playlist>

... donde <url-of-playlist>se reemplaza por la URL de la lista de reproducción y se reemplaza FORMATcon cualquier formato de video disponible, por ejemplo 18. Puede usar la -Fopción para ver todos los formatos válidos como este:

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

Descargue parte de una lista de reproducción desde el inicio del lote hasta el final del lote

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

... donde <url-of-playlist>se reemplaza por la URL de la lista de reproducción, reemplácela FORMATcon cualquier formato de video disponible, por ejemplo 18, y NUMBERes el número del video en la lista de reproducción para comenzar / finalizar la descarga.

Canal

youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>

... donde <url-of-channel>se reemplaza por la URL del canal y se reemplaza FORMATcon cualquier formato de video disponible, por ejemplo 18.

Videos que no están en la misma lista de reproducción o canal

Primero cree un archivo por lotes que es un archivo de texto que contiene una lista de URL de videos de YouTube que desea descargar. Las URL deben organizarse en una lista que tenga solo una URL y nada más en cada línea, con una nueva línea para cada URL de la lista. Guarde el archivo por lotes con un nombre que sea fácil de recordar, como por ejemplo file-file.txt. Si todos los archivos están en la misma lista de reproducción, canal o página web de usuario en YouTube, puede generar un archivo de texto con una lista que tenga todos los enlaces en esa página ejecutando el siguiente comando:

sudo apt install jq  
youtube-dl -j --flat-playlist "https://<yourYoutubeWebpage>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt

Desde la terminal ejecutada:

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

Este es el comando básico, sin embargo, también debe agregar los formatos de los videos que desea descargar o de lo contrario puede encontrarse descargando videos con formatos que no deseaba. Entonces, primero simule su descarga para ver si el formato que desea está disponible:

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

Si el formato de vídeo no está disponible, un mensaje de error que dice: requested format not available. Si el formato de video está disponible, no recibirá ningún mensaje de error cuando use la --simulateopción. También puede agregar la opción -F para ver todos los formatos válidos como este:

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

En el tercer comando He utilizado el formato de vídeo FLV 360p común:
-f 34. Es posible que prefiera probar el formato de video flv 480p usando -f 35. Entonces, después de agregar el formato de video que desea al comando, el comando se convierte en algo como esto:

youtube-dl -ciw -o "%(title)s.%(ext)s" --batch-file='/path/to/batch-file.txt'

Notas:

No agregué la --simulateopción al último comando, por lo que este comando se ejecutaría de verdad.

karel
fuente
18

Puedes poner las URL una tras otra, con un espacio en el medio. Youtube-dl los descargará secuencialmente. Esto es un poco más simple que hacer un archivo por lotes.

Observe que la ayuda dice youtube-dl --help Usage: youtube-dl [options] url [url...]

Entrada de muestra:

youtube-dl http://www.youtube.com/watch?v=fqULJBBEVQE http://www.youtube.com/watch?v=vDbbz-BdyYc http://www.youtube.com/watch?v=OrIFaWJ9Glo

Salida de muestra:

    [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
coreyb
fuente
1
La mejor respuesta en mi opinión! ¡Muy simple!
gota
5

Paso 1: ve a tu escritorio y crea un documento de texto llamadolist(o cualquier otro nombre). Copie y pegue las URL si los archivos que desea descargar en el archivo, una URL por línea

Paso 2: abre la terminal y ve al escritorio

cd Desktop

Paso 3: para descargar los archivos en su lista, escriba (reemplace enlistconsecuencia si ha nombrado a su archivo de otra manera)

youtube-dl -a list

Para descargar un canal de YouTube

Ejecute este comando

youtube-dl -citk -format mp4 -yes-playlist VIDEO_PLAYLIST_LINK
  • -c reanudar archivos parcialmente descargados
  • -i ignorar cualquier error.
  • -t use el título del video como el nombre del archivo.
  • -k mantenga el video en el disco después de que finalice el procesamiento posterior.
  • --format mp4 guarde los archivos de video como archivos MP4.
  • --yes-playlist afirma que la URL que sigue apunta a una lista de reproducción de video.
Ahmed Ismail
fuente
1
-citkes muy engañoso y puede provocar errores. -cfuerzas de reanudación, incluso si no tiene mucho sentido. El valor predeterminado ya es continuar. -ipuede estar bien, pero tenga en cuenta que puede perder errores en algunos videos. -tya es el predeterminado y está en desuso. -kno tiene sentido con -f mp4. Consulte las preguntas frecuentes de youtube-dl para obtener más detalles.
phihag
3

Si tiene varias URL de video, simplemente agréguelas en una lista de reproducción a su lista de reproducción de YouTube creando una nueva o usando una existente.

Luego use el comando a continuación.

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

La opción --yes-playlistdescargará la lista de reproducción, si la URL se refiere a un video y una lista de reproducción.

Esta es la opción más simple y rápida que encontré con mi propósito de descargar cientos de videos de un sitio web que tenía videos vinculados desde YouTube.

usuario669330
fuente
Esto es útil para descargar muchos videos del mismo canal. Puede usar una lista de reproducción no listada para no hacerla pública
qwr
3

Para descargar varios videos puede usar esta estructura. Es similar a la respuesta de @ coreyb con la adición de que puede usarlo en otro lugar en bash, por ejemplo, con echo. Aquí hay dos formas:

Tirantes

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

Repita el último comando sin el último argumento.

youtube-dl -f FORMAT url1; !:- url2; !:-url...
Xui
fuente
3

la solución más sencilla sería hacer un 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"

simplemente copie y pegue los enlaces de video en ese archivo txt en la carpeta de documentos con cada url de video en una nueva línea y ejecute este script , descargará los videos uno por uno Por defecto, la -f 18opción es para video 360p

Shantanu Bedajna
fuente
1

Escriba el comando y luego escriba &&y escriba el siguiente comando como:

youtube-dl--add-metadata -xic http://(the url) && youtube-dl--add-metadata -xic http://(the url) 
user859198
fuente
1

Prueba con el script bash:

while read LL ; do youtube-dl "$LL" ; done < your_file
totolezero
fuente
1

El tema sigue siendo relevante, entonces:

  • Obtenga su enlace de YouTube.
  • Elimine el primer parámetro de video que comienza con ?
  • usar así :-)

    youtube-dl.exe --yes-playlist https://www.youtube.com/watch?list=yourlistlink
    

Esto funciona para mi.

Studen
fuente