Proyecto en Python para descargar videos de YouTube en calidad maxima de 720p, guardarlos con el titulo del video, bajar su miniatura principal en la mayor calidad disponible y generar un .txt con sus metadatos.
Este proyecto se distribuye bajo la licencia GNU GPLv3. Consulta LICENSE.
- Python 3.10 o superior
ffmpegopcional, pero recomendado para combinar mejor video y audio- Se recomienda instalar
yt-dlpcon extras por defecto para incluir componentes EJS necesarios en YouTube
cd /youtube_downloader
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtpython3 download_youtube.pyEl script lee por defecto el archivo videos.csv. Usa una URL por fila:
url
https://www.youtube.com/watch?v=VIDEO_ID
https://www.youtube.com/watch?v=OTRO_VIDEO_IDpython3 download_youtube.py "https://www.youtube.com/watch?v=VIDEO_ID"Para elegir otra carpeta de salida o un CSV distinto:
python3 download_youtube.py --csv-file videos.csv --output-dir mis_videosPara descargar solo los primeros 60 segundos de un video:
python3 download_youtube.py --duration 60 "https://www.youtube.com/watch?v=VIDEO_ID"Para omitir archivos que ya existan y ajustar los reintentos:
python3 download_youtube.py --skip-existing --retry-delay 90 --max-retries 5Para descargar solo el audio:
python3 download_youtube.py --audio-only "https://www.youtube.com/watch?v=VIDEO_ID"Para descargar solo la miniatura y metadatos:
python3 download_youtube.py --thumbnail-only "https://www.youtube.com/watch?v=VIDEO_ID"Para guardar cada video en su propia carpeta:
python3 download_youtube.py --per-video-dir "https://www.youtube.com/watch?v=VIDEO_ID"Si YouTube pide verificacion de bot, puedes usar cookies del navegador:
python3 download_youtube.py --cookies-from-browser chromeTambien puedes usar un archivo cookies.txt exportado manualmente:
python3 download_youtube.py --cookies ~/Downloads/cookies.txtSi tienes node o deno instalado, puedes indicarlo como runtime JavaScript:
python3 download_youtube.py --cookies-from-browser chrome --js-runtime node- El nombre del archivo se genera con el titulo y el ID del video para evitar colisiones.
- La miniatura principal tambien se descarga y se guarda junto al video en la mejor calidad que YouTube exponga.
- Por cada video descargado se crea un archivo
.txtcon titulo, canal, URL, ID, duracion, fecha, vistas y descripcion. - Cada ejecucion genera
downloads/results.csvcon el estado de cada URL procesada. - Cada ejecucion genera
downloads/logs/last_run.logcon detalles tecnicos y errores. --skip-existingomite videos ya descargados cuando detecta un archivo con el mismo ID.--retry-delayy--max-retriespermiten ajustar la estrategia de reintentos antibot.--audio-onlydescarga solo el audio del video.--thumbnail-onlydescarga solo la miniatura y el archivo de metadatos.--per-video-dirguarda cada descarga en una carpeta separada nombrada con titulo e ID.- Si
ffmpegesta instalado,yt-dlppuede descargar mejor combinacion de video y audio manteniendo el objetivo de 720p. - Si no existe una version exacta a 720p, se descargara la mejor disponible que no supere esa altura.
- Algunos videos de YouTube pueden requerir cookies de sesion para pasar la verificacion antibot.
- Instalar
nodeodenoayuda ayt-dlpa extraer mejor la informacion de YouTube. - Si aparece
n challenge solving faileduOnly images are available for download, actualiza dependencias conpip install -U -r requirements.txt. --durationsolo acepta enteros mayores que 0.