GUI YouTube Downloader es una aplicacin de escritorio para Windows, macOS y Linux que permite descargar contenido multimedia desde URLs en mltiples formatos. Construida con Python y Tkinter, esta herramienta ofrece una interfaz gráfica intuitiva para gestionar descargas de videos y audio, aprovechando el poder de la librería yt-dlp.
- Características Principales
- Arquitectura del Sistema
- Stack Tecnológico
- Guía de Inicio Rápido
- Cómo Usar
- Contribuciones
- Licencia
- Múltiples Formatos: Descarga videos en MP4 y WEBM, o extrae solo el audio en formato MP3.
- Soporte para Playlists: Alterna fácilmente entre descargar un solo video o una lista de reproducción completa.
- Incrustación de Metadatos: Añade automáticamente metadatos (título, artista) y miniaturas a tus archivos descargados.
- Autocompletado de Título: El nombre del archivo se rellena automáticamente con el título del video al pegar la URL.
- Seguimiento en Tiempo Real: Monitorea el progreso de la descarga con una barra de progreso, velocidad y tamaño total.
- Interfaz Responsiva: La interfaz gráfica se mantiene siempre activa y sin bloqueos gracias a una arquitectura multihilo.
- Validación de Entradas: Comprueba que la URL y la carpeta de destino sean válidas antes de iniciar la descarga.
La aplicación sigue una arquitectura de tres capas que separa la interfaz de usuario, la lógica de negocio y las utilidades de validación. Para mantener la interfaz gráfica responsiva, las operaciones de red (obtención de metadatos y descargas) se ejecutan en hilos de fondo.
graph TB
subgraph "Capa de Interfaz de Usuario (gui.py)"
GUI["DownloaderApp (Tkinter)"]
end
subgraph "Capa de Lógica de Negocio (downloader.py)"
DL["Función descargar()"]
HOOK["Función progreso_hook()"]
end
subgraph "Capa de Validación (utils.py)"
UTILS["Función validar_campos()"]
end
subgraph "Dependencias Externas"
YTDLP["Librería yt_dlp"]
FFMPEG["Binarios FFmpeg"]
end
GUI -- "Inicia" --> DL
GUI -- "Valida con" --> UTILS
DL -- "Utiliza" --> YTDLP
DL -- "Crea callback" --> HOOK
YTDLP -- "Post-procesa con" --> FFMPEG
HOOK -- "Actualiza" --> GUI
La comunicación entre los hilos de fondo y la interfaz principal se realiza de forma segura a través del método root.after(), garantizando que todas las actualizaciones de la GUI ocurran en el hilo principal.
| Componente | Tecnología / Versión | Propósito |
|---|---|---|
| Lenguaje | Python 3.7+ | Lenguaje de programación principal |
| Framework GUI | Tkinter / Ttk | Interfaz gráfica de usuario (incluido en Python) |
| Motor de Descarga | yt-dlp |
Librería para la extracción y descarga de medios |
| Post-procesamiento | FFmpeg | Conversión de formatos y manejo de metadatos |
| Concurrencia | threading |
Módulo para la ejecución de tareas en segundo plano |
Sigue estos pasos para tener la aplicación funcionando en tu sistema.
-
Python 3.7 o superior: Asegúrate de tener Python instalado y añadido a tu
PATH. -
FFmpeg:
yt-dlprequiere FFmpeg para procesar los archivos de audio y video.- Windows: Descárgalo desde ffmpeg.org y añade la carpeta
bina tuPATH. - macOS:
brew install ffmpeg - Linux (Debian/Ubuntu):
sudo apt update && sudo apt install ffmpeg
Verifica la instalación ejecutando
ffmpeg -versionen tu terminal. - Windows: Descárgalo desde ffmpeg.org y añade la carpeta
-
Clona el repositorio:
git clone https://github.com/OAQR/GUI-YouTube-Downloader.git cd GUI-YouTube-Downloader(Reemplaza la URL si es diferente)
-
Crea un entorno virtual (recomendado):
python -m venv venv
- Actívalo en Windows:
venv\Scripts\activate - Actívalo en macOS/Linux:
source venv/bin/activate
- Actívalo en Windows:
-
Instala las dependencias de Python:
pip install yt-dlp
(Nota: En algunas distribuciones de Linux, puede que necesites instalar
tkinterpor separado:sudo apt-get install python3-tk)
Una vez completada la instalación, ejecuta el siguiente comando desde la raíz del proyecto:
python gui.pyEsto lanzará la aplicación. Sigue estos pasos para descargar:
- Pega una URL en el campo correspondiente.
- Elige una carpeta de destino haciendo clic en "Elegir...".
- (Opcional) Modifica el nombre del archivo (se autocompleta al pegar la URL).
- Selecciona si es un video único o una lista.
- Elige los formatos que deseas descargar (MP4, WEBM, MP3).
- Haz clic en "Descargar".
Este es un proyecto de portafolio personal y actualmente no se aceptan contribuciones externas. Sin embargo, si encuentras algún error o tienes alguna sugerencia, no dudes en abrir un Issue en el repositorio.
Este proyecto está distribuido bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.