Las opciones relevantes que necesita:
# Filesystem
--write-annotations
--write-description
--write-info-json
# Thumbnail images
--write-all-thumbnails
# Video format
--format bestvideo+bestaudio/best
--merge-output-format mkv
# Subtitle
--all-subs
--write-auto-sub
--write-sub
# Post-processing
--add-metadata
--embed-subs
Copie eso en su archivo de configuración (ya sea /etc/youtube-dl.conf
o ~/.config/youtube-dl/config
).
Usando esa configuración, descargué este video y youtube-dl
escribí los siguientes archivos:
$ ls
The Problem with Time & Timezones - Computerphile.annotations.xml
The Problem with Time & Timezones - Computerphile.description
The Problem with Time & Timezones - Computerphile.info.json
The Problem with Time & Timezones - Computerphile.jpg
The Problem with Time & Timezones - Computerphile.mkv
No puedo publicar mediainfo
el resultado aquí porque excede el límite de caracteres, pero puedes verlo en github .
También quiero descargar el video / audio en la mejor calidad posible, sin pérdida de calidad.
youtube-dl
descargas de vídeos de la más alta calidad posible de forma predeterminada, pero se puede forzar el uso de este comportamiento --format bestvideo+bestaudio/best
.
Aunque no es YouTube, también quería descargar algunos de los cursos de udemy que compré para poder verlos mientras estoy en un largo viaje por carretera.
Lea el artículo ¿Puedo descargar un curso en mi computadora? :
Por defecto, los cursos completos no se pueden descargar desde una computadora. Hacemos esto por preocupación por la piratería.
Tenga en cuenta que siempre puede guardar cursos para verlos sin conexión en la aplicación móvil Udemy . Para obtener información sobre cómo descargar video conferencias en su dispositivo móvil iOS, haga clic aquí . Para conocer los pasos sobre cómo descargar videos para verlos sin conexión en un dispositivo Android, haga clic aquí .
He ffmpeg
instalado y escuché que necesitas esto para descargas sin pérdida de YouTube, pero no estoy seguro de cómo vincularlo youtube-dl
.
youtube-dl
utiliza avconv
de forma predeterminada, pero le --prefer-ffmpeg
permite usar ffmpeg
en su lugar. De todos modos, esta opción no es necesaria para " descargas sin pérdida ". En el ejemplo que proporcioné, youtube-dl
solo se usa ffmpeg
para combinar todos los formatos descargados en un solo archivo mkv.
youtube-dl
?youtube-dl [youtube-link]
?youtube-dl
no habría podido descargar ciertos videos si la--youtube-skip-dash-manifest
opción no estuviera presente. Acabo de editar esa opción, gracias por decírmelo.Para simplemente descargar el video, puede usar esto:
Para seleccionar la calidad del video, primero debe usar la opción -F para enumerar los formatos disponibles.
Y esta es la salida para tu video:
Aquí hay algunas opciones útiles para los subtítulos:
Y para miniaturas:
También puede encontrar más información sobre la calidad del video aquí.
fuente
youtube-dl
utiliza los mejores formatos de video y audio disponibles de forma predeterminada. Si desea anular una configuración diferente en el archivo de configuración, puede usarla-f bestvideo+bestaudio/best
(que es la misma que la predeterminada) o ignorar el archivo de configuración (--ignore-config
).youtube-dl https://www.youtube.com/watch?v=KYBok-XGsKM
@leetbacoon ver la respuesta al comentario en la parte inferior. (baja reputación todavía sry)
Nota: utilizaré los nombres de cambio más largos para evitar confusiones. Muchos de los interruptores utilizados tienen versiones más cortas. Ver Documentos: Opciones .
Nota: - por conveniencia visual
\
se utiliza para mostrar los interruptores por separado; todo\
puede ser omitido; si usa\
asegúrese de que no haya caracteres de espacio después\
.Sinopsis: Un comando ytdl para descargar un solo archivo de video con la mejor calidad de video y audio disponible. Guarda el video en su propio directorio (especificado por usted). Descarga todos los metadatos disponibles, escribe cada uno en los formatos de archivo respectivos y los guarda en el mismo directorio. Agrega metadatos de video al archivo de salida de video.
Sustitúyalo por el suyo:
/archive/videos/TED_Archive/
en los interruptores--download-archive
y--output
con una ruta de directorio de su elección.====
Nota: Incluya todos los argumentos
' '
para analizar la seguridad.Explicación de los interruptores recomendados:
--limit-rate '0.25M'
se usa para limitar la velocidad máxima de descarga disponible de cada instancia de youtube-dl en B / s (bytes por segundo).Argumentos: cualquier número entero positivo con un sufijo de unidad en mayúscula.
Sufijos de unidad: K para Kilobyte; M para Megabyte; No está claro si Gigabyte es compatible.
Adición:
1. evitar el bloqueo de la conexión a internet.
2. útil al administrar velocidades de descarga de múltiples instancias simultáneas de ytdl.
Omisión:
1. obstruye internet; incapaz de navegar, retrasándose la reproducción de videos de YouTube.
2. descargará el video lo más rápido posible.
Nota: puede ejecutar varias instancias de youtube-dl al mismo tiempo.
--retries '5'
se usa para volver a intentar automáticamente la descarga de un video si falla. Útil al descargar una lista de reproducción o un canal completo (que es, en términos de Youtube, también una lista de reproducción (de ese canal específico)).Valores: elija cualquier número entero positivo. Por defecto es
10
. Max esinfinite
(ingrese como cadena literal).--continue
Argumentos: ninguno
Adición:
1. obligará a reanudar la descarga de archivos parciales
Nota: ytdl descarga videos en fragmentos; los fragmentos se conservan si ytdl termina inesperadamente durante la descarga.
Ommisión:
1. Por defecto, ytdl reanudará las descargas, si es posible.
--no-overwrites
Argumentos: ninguno
de adición: se no sobrescribir los archivos de metadatos con los mismos nombres existente.
Ommission: sobrescribirá los archivos de metadatos existentes con los mismos nombres, pero no el archivo de video.
--call-home
se usa para contactar al servidor ytdl para la depuración.--write-info-json
Argumentos: ninguno
Formato de salida: json;
Contenido de información: recuento de visitas, me gusta, fecha de carga, información de calidad de video y audio, etc. (pero no la descripción del texto del video (publicado debajo del video por el cargador (diseño de YouTube 2018)))
Adición: escribe los metadatos del video en un
.info.json
archivo separado . Guardado en la misma carpeta que el archivo de video.Omisión: no afecta a quién
--add-metadata
seguirá escribiendo metadatos de video en el archivo de salida de video.--write-description
Argumentos: ninguno
Formato de salida: texto sin formato;
Adición: escribe el texto publicado por el cargador de video en la sección de descripción de un video (debajo del video (diseño de YouTube 2018)) en un
Write .description
archivo separado . Guardado en la misma carpeta que el archivo de video.--write-thumbnail
escribe la miniatura de mayor resolución disponible (llamadamaxresdefault.jpg
por youtube) en el.jpg
archivo Renombrado según la plantilla especificada con--output
. Guardado en el mismo directorio que el archivo de video.Argumentos: ninguno
Formato de salida: solo JPEG;
Nota: Úselo
youtube-dl --list-thumbnails '<video_url>'
para investigar las miniaturas disponibles de un video específico (no funciona en los enlaces de listas de reproducción); Ex.:youtube-dl --list-thumbnails 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--write-annotations
escribe anotaciones de video para.annotations.xml
archivar. Renombrado según la plantilla especificada con--output
. Guardado en el mismo directorio que el archivo de video.Argumentos: ninguno
Formato de salida: .xml;
--all-subs
escribe todos los subtítulos disponibles personalizado creado para un vídeo a sus respectivos archivos (ej .:subtitles.en.vtt
,subtitles.fr.vtt
,subtitles.es.vtt
)Argumentos: ninguno
Formato de salida: por defecto
.vtt
; puede especificar otros formatos con--sub-format
mensajes de error: si no hay subtítulos disponibles, se imprimirá un mensaje de ADVERTENCIA en formato stdout:
WARNING: video doesn't have subtitles
Comando útil:
Nota: Úselo
youtube-dl --list-subs '<video_url>'
para investigar las miniaturas disponibles de un video específico (no funciona en los enlaces de listas de reproducción);Ex.:
youtube-dl --list-subs 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--convert-subs 'srt'
Argumentos: Cadena: extensión de formato ass, srt o mejor
Formato de salida: Predeterminado .vtt; o de acuerdo con las especificaciones
de la adición: escribe subtítulos de formato de archivo especificado (ej .:
.srt
). Guardado en la misma carpeta que el archivo de video.Ommisión: los subtítulos se escribirán como
.vtt
mensajes de error: si no hay subtítulos disponibles, se imprimirá un mensaje INFO en formato stdout:
[ffmpeg] There aren't any subtitles to convert
Nota: la conversión se ejecutará como un paso de procesamiento posterior en el
.vtt
archivo después de la descarga. Si la ejecución de ytdl finaliza inesperadamente, es posible que algunos archivos de subtítulos no se conviertan (en este caso, ejecute nuevamente el comando).--add-metadata
Argumentos: ninguno
Comportamiento: escribe metadatos en el archivo de salida de video.
Nota: no requiere un
.info.json
generado por--write-info-json
--embed-subs
Argumentos: ninguno
Comportamiento:
1. escribe subtítulos en el archivo de salida de video;
2. solo para videos mp4, webm y mkv
Mensajes de error: Si no hay subtítulos disponibles, se imprimirá un mensaje INFO en formato stdout:
[ffmpeg] There aren't any subtitles to embed
Nota: no requiere un
.vtt
generado por--write-sub
,--write-auto-sub
o--all-sub
--download-archive '<archive_path>/<channel_name>/<channel_name>.ytdlarchive'
Comportamiento: se utiliza para crear un archivo de texto que contiene enlaces de videos descargados previamente. Permite omitir estos videos al descargar un canal completo. No es necesario al descargar videos individuales solamente.
Argumentos: Cadena: compuesto de la ruta a su archivo de video, directorio con el nombre del canal. El nombre del archivo consiste en el nombre del canal con
.ytdlarchive
extensión de archivo. (también podría ser .txt; pero el formato único permite una fácil diferenciación)Formato de salida: texto sin formato; un videoID por línea
Adición:
1. ytdl lee este archivo, ignora y omite todos los videos enumerados con su videoID, incluso si aún no se ha descargado.
2. agrega automáticamente el videoID del último video descargado a este archivo
Ommission: si existen archivos de video y metadatos, ytdl los descargará nuevamente.
--format ''
Argumentos: Cadena recomendada:
bestvideo+bestaudio/best
para garantizar la mejor combinación de video y calidad de audio.Adición: control total sobre la calidad de video y la calidad de audio y sus combinaciones, así como las cualidades de
respaldo Ommission: Predeterminado
youtube-dl will guess it for you by default
- DocsNota: Ver Docs: Ejemplos de selección de formato
--merge-output-format '<video_format>'
Argumentos: formato de archivo de video. (ej .: mp4, mkv, 3gp, etc.)
Adición: puede especificar el formato de archivo de video
Ommission: Predeterminado
youtube-dl will guess it for you by default
- DocsNota: Ver Docs: Selección de formato
Comando útil:
Nota: Úselo
youtube-dl --list-formats '<video_url>'
para investigar las calidades y formatos de video y audio disponibles de un video específico (no funciona en enlaces de listas de reproducción);Ex.:
youtube-dl --list-formats 'https://www.youtube.com/watch?v=odwfHu6MDuU'
--output '<template>'
Argumentos:
1. formato de archivo de video. (ej .: mp4, mkv, 3gp, etc.);
2. Recomendado:
%(upload_date)s_%(id)s_%(title)s.%(ext)s
adición: influye en la convención de nomenclatura de archivos para archivos de video y todos los archivos de metadatos.
Ommisión: por defecto, el título del video será el nombre del archivo. Plantilla predeterminada:
%(id)s.%(ext)s
generará, por ejemplo:testvideo.mkv
Nota: No olvide el
%
prefijo y els
sufijo (también existen otros sufijos); Thee_
entre elementos de plantilla es solo un separador y puede ser cualquier otro carácter. ej .%(upload_date)s-%(id)s
: Nota: Ver Documentos: Plantilla de salida
'<video_url>'
Argumentos: Cadena: url a video específico
Mensaje de error:
1. Si no se envió una url de video, ytdl no se ejecutará y mostrará ayuda.
2. Si la url de video inválida envió el mensaje de ERROR se imprimirá en formato stdout:
ERROR: u'' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:" ) to search YouTube
Recomendaciones de almacenamiento:
haga un
misc
directorio en su archivo de video y almacene todos los videos individuales allí.cuando descargue uno o más videos de un canal, cree un directorio dedicado para ese canal. En este caso, el nombre del canal es
TED Archive
y el nombre del directorio seráTED_Archive
. (Sustituyo preventivamente todos los caracteres de espacio con guiones bajos para facilitar la navegación del directorio y las acciones de E / S de archivo cuando utilizo los scripts bash (o python)).Respondiendo a tu comentario @leetbacoon
De los documentos
You can also use a file extension (currently 3gp, aac, flv, m4a, mp3, mp4, ogg, wav, webm are supported) to download the best quality format of a particular file extension served as a single file
best: Select the best quality format represented by a single file with video and audio.
bestvideo: Select the best quality video-only format
Creo que cuando selecciona solo
best
y especifica un formato de salida, YouTube envía el formato que cree que es el mejor combo de video + audio para ese formato. Esto podría estar sujeto a algunas decisiones de equilibrio interno de YouTube (especulación).En mi experiencia de uso, he tenido que especificar específicamente
bestvideo+bestaudio
para obtener la MÁXIMA calidad disponible de video y audio respectivamente y luego combinarlos en un contenedor .mkv.Lo uso
/best
como argumento alternativo solo para estar seguro.fuente