sábado, 5 de septiembre de 2026

[FastAPI + Jinja2] Fenix Downloader

Una aplicación web moderna y ligera para descargar y convertir contenido de YouTube, orientada a un uso local y sencillo. Permite gestionar canciones en MP3, videos en MP4, listas de reproducción completas, búsqueda directa por nombre y conversión de archivos locales, con progreso en tiempo real y control total de cancelación.

## Stack Tecnológico

| Capa | Tecnologías |
|------|-------------|
| Backend | FastAPI + Jinja2 |
| Frontend | HTMX + Tailwind CSS + JavaScript |
| Extracción y media | yt-dlp + FFmpeg |

---

## Funcionalidades Principales

### Descarga desde YouTube

 
* Links sueltos: Soporte para uno o varios URLs simultáneos (canciones o videos).
* Playlists: Lectura y descarga secuencial de listas completas (audio o video).
* Exportar playlist: Genera un archivo .txt con todos los links de una playlist, sin necesidad de descargar el contenido.
* Búsqueda integrada: Búsqueda directa por nombre de canción (obteniendo el primer resultado relevante).
* Calidad de video: Selección entre 720p, 1080p (recomendado) o máxima calidad (evitando formatos AV1 pesados cuando aplica).
* Audio en español: Preferencia automática de doblaje si YouTube lo ofrece.
* Subtítulos optimizados: Español (oficial o automático) con fallback a inglés.
* Cookies opcionales: Soporte para formato Netscape (data/cookies.txt o variables de entorno) para evitar restricciones de edad, rate limits o bloqueos por región.

### Conversión Local


* MP4 / Video / Audio a MP3: Conversión flexible indicando la ruta del archivo en disco, con nombre y carpeta de salida personalizados, acompañado de una barra de progreso impulsada por FFmpeg.

### Experiencia de Uso

 
* Interfaz dinámica (HTMX): Sin recargas de página completas; incluye consolas de logs y barras de progreso independientes por cada job.
* Cancelación cooperativa: Un único botón inteligente para iniciar y detener la descarga o conversión en curso.
* Tema Claro / Oscuro: Diseño elegante con acentos verdes estilo *Gruvbox*, patrones de fondo sutiles y formularios totalmente adaptados.
* Toasts y alertas sonoras: Notificaciones visuales y de audio al finalizar una tarea (éxito, error, parcial o cancelada), incluso con la pestaña en segundo plano.
Omitir duplicados: Si el archivo final (MP3/MP4) ya existe en el disco, la descarga se omite automáticamente.

---

## Capturas de Pantalla 

 


---

## Requisitos del Sistema

* Python: 3.10+ (se recomienda 3.11+)
* yt-dlp: Con soporte para extensiones (yt-dlp-ejs)
* Runtime de JavaScript (para YouTube moderno): Deno 2.3 o superior (o Node 22 o superior)
* Opcional: curl_cffi para simulación de cliente (impersonation y reducción de errores 403)
* FFmpeg y FFprobe: Disponibles en el PATH del sistema

---

## Instalación y Configuración

### 1. Clonar el repositorio


git clone https://github.com/IsmaelHeredia/fenix-downloader-fastapi-jinja2.git
cd fenix-downloader-fastapi-jinja2
 

 ### 2. Crear entorno virtual e instalar dependencias

python -m venv .venv
# En Linux/macOS:
source .venv/bin/activate
# En Windows (CMD/PowerShell):
# .venv\Scripts\activate

pip install -U pip
pip install -r requirements.txt
pip install -U "yt-dlp[default]" yt-dlp-ejs "curl_cffi>=0.10"


### 3. Instalar Deno (Recomendado para la extracción de YouTube)

 
curl -fsSL https://deno.land/install.sh | sh

(Reiniciá tu terminal y comprobá la instalación con `deno --version`).

### 4. Ejecutar en modo desarrollo

uvicorn app.main:app --reload --host 127.0.0.1 --port 8000

Abrí en tu navegador: http://127.0.0.1:8000

 

Link del proyecto  

No hay comentarios:

Publicar un comentario

[FastAPI + Jinja2] Fenix Downloader

Una aplicación web moderna y ligera para descargar y convertir contenido de YouTube, orientada a un uso local y sencillo. Permite gestionar ...