Skip to content

GuiSchet/simple-youtube-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 YouTube Video Downloader

Un script en Python para descargar videos de YouTube de forma fácil y rápida usando yt-dlp. Descarga automáticamente en calidad 720p (si está disponible) y guarda los videos en una carpeta organizada.

🌟 Características

  • Descarga en calidad 720p (o la mejor disponible)
  • Soporte para videos individuales y playlists completas
  • Vista previa del video antes de descargar (título, canal, duración)
  • Descarga de subtítulos automática en español e inglés
  • Interfaz interactiva con menú fácil de usar
  • Uso desde línea de comandos para automatización
  • Manejo de errores robusto
  • Organización automática en carpeta downloaded-videos

📋 Requisitos

  • Python 3.6 o superior
  • Conexión a internet

🚀 Instalación

1. Instalar dependencias

# Navegar a la carpeta del proyecto
cd video-downloader

# Instalar dependencias
pip install -r requirements.txt

2. Verificar instalación

# Ejecutar el script para ver si funciona
python video_youtube_downloader.py

📖 Modo de Uso

🎯 Modo Interactivo (Recomendado)

Ejecuta el script sin argumentos para acceder al menú interactivo:

python video_youtube_downloader.py

Opciones del menú:

  1. Descargar video individual - Pega una URL de un video
  2. Descargar playlist - Pega una URL de una playlist completa
  3. Salir - Termina el programa

⚡ Modo Línea de Comandos

Para uso rápido o automatización:

# Descargar un video individual
python video_youtube_downloader.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

# Descargar una playlist
python video_youtube_downloader.py "https://www.youtube.com/playlist?list=PLplaylistID"

🎮 Ejemplos de Uso

Ejemplo 1: Video Individual

python video_youtube_downloader.py
# Seleccionar opción 1
# Pegar: https://www.youtube.com/watch?v=dQw4w9WgXcQ

Salida esperada:

🔍 Obteniendo información del video...
📹 Título: Rick Astley - Never Gonna Give You Up
👤 Canal: Rick Astley
⏱️ Duración: 3:33

¿Descargar este video? (s/n): s

⬇️ Descargando 'Rick Astley - Never Gonna Give You Up'...
✅ Descarga completada: Rick Astley - Never Gonna Give You Up

Ejemplo 2: Playlist Completa

python video_youtube_downloader.py
# Seleccionar opción 2
# Pegar URL de playlist

Salida esperada:

🔍 Obteniendo información de la playlist...
📂 Playlist: Mi Playlist Favorita
📹 Videos encontrados: 25

¿Descargar toda la playlist? (s/n): s

⬇️ Descargando playlist 'Mi Playlist Favorita'...
✅ Playlist descargada completamente

📁 Estructura de Archivos

video-downloader/
├── video_youtube_downloader.py    # Script principal
├── requirements.txt               # Dependencias
├── README.md                     # Este archivo
└── downloaded-videos/            # Carpeta de descargas (se crea automáticamente)
    ├── Video 1.mp4
    ├── Video 2.mp4
    ├── Video 1.es.vtt           # Subtítulos en español
    ├── Video 1.en.vtt           # Subtítulos en inglés
    └── ...

⚙️ Configuración Avanzada

Calidad de Video

El script está configurado para descargar en 720p por defecto. Si quieres cambiar esto, edita la línea en get_download_options():

'format': 'best[height<=720]/best',  # Actual: 720p máximo
'format': 'best[height<=1080]/best', # Para 1080p máximo
'format': 'worst',                   # Para la menor calidad
'format': 'best',                    # Para la mejor calidad disponible

Formatos Soportados

  • Video: MP4, WebM, MKV, etc.
  • Audio: MP3, M4A, WebM, etc.
  • Subtítulos: VTT, SRT

Idiomas de Subtítulos

Por defecto descarga subtítulos en español e inglés. Para cambiar:

'subtitleslangs': ['es', 'en'],      # Actual
'subtitleslangs': ['es', 'en', 'fr'], # Agregar francés
'subtitleslangs': ['all'],           # Todos los idiomas disponibles

🔧 Funciones del Script

download_video(url, download_path)

  • Descarga un video individual
  • Muestra información previa
  • Pide confirmación antes de descargar

download_playlist(url, download_path)

  • Descarga todos los videos de una playlist
  • Muestra cantidad de videos
  • Pide confirmación antes de descargar

create_download_folder()

  • Crea la carpeta downloaded-videos automáticamente
  • No da error si ya existe

get_download_options(download_path)

  • Configura todas las opciones de descarga
  • Define calidad, formato, subtítulos, etc.

🛠️ Solución de Problemas

Error: "No module named 'yt_dlp'"

pip install yt-dlp

Error: "Permission denied"

  • Ejecuta como administrador en Windows
  • Usa sudo en Linux/Mac

Video no disponible

  • Verifica que la URL sea correcta
  • Algunos videos pueden estar geo-bloqueados
  • Videos privados no se pueden descargar

Descarga muy lenta

  • Verifica tu conexión a internet
  • YouTube puede limitar la velocidad de descarga

Error de formato

  • El script intentará automáticamente con diferentes formatos
  • Algunos videos muy antiguos pueden no tener 720p

📝 Comandos Útiles

# Ver videos descargados
ls downloaded-videos/

# Ver espacio usado
du -sh downloaded-videos/

# Limpiar descargas
rm -rf downloaded-videos/*

# Actualizar yt-dlp
pip install --upgrade yt-dlp

🔍 URLs Soportadas

  • Videos individuales: https://www.youtube.com/watch?v=VIDEO_ID
  • Playlists: https://www.youtube.com/playlist?list=PLAYLIST_ID
  • Canales: https://www.youtube.com/channel/CHANNEL_ID
  • Videos cortos: https://www.youtube.com/shorts/SHORT_ID
  • URLs abreviadas: https://youtu.be/VIDEO_ID

⚠️ Consideraciones Legales

  • Solo descarga contenido que tengas derecho a descargar
  • Respeta los términos de servicio de YouTube
  • No redistribuyas contenido con derechos de autor
  • Uso personal y educativo recomendado

🤝 Contribuir

Si encuentras errores o quieres mejorar el script:

  1. Reporta errores con detalles específicos
  2. Sugiere nuevas funcionalidades
  3. Comparte casos de uso interesantes

📄 Licencia

Este script es de uso libre para propósitos educativos y personales.


¡Disfruta descargando tus videos favoritos! 🎉

About

a simple youtube video and data downloader

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages