From d972d40f7ae05d118352365898919d13dfe428c2 Mon Sep 17 00:00:00 2001 From: marti Date: Tue, 8 Jul 2025 15:09:09 +0000 Subject: [PATCH] first commit --- README.md | 126 +++++++++++++++++++++++++++++++++++++++++++++ app | 1 + docker-compose.yml | 8 +++ 3 files changed, 135 insertions(+) create mode 100644 README.md create mode 160000 app create mode 100644 docker-compose.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..ffe5827 --- /dev/null +++ b/README.md @@ -0,0 +1,126 @@ +# 🧩 Descargador de YouTube - Interfaz Web (Docker + Flask + yt-dlp) + +Esta aplicación proporciona una interfaz web simple para descargar vídeos o audios (en formato MP3) de YouTube, tanto de forma individual como a partir de listas de reproducción. Está desarrollada con **Flask**, usa **Bootstrap 5** para el frontend y **yt-dlp** para las descargas. Se ejecuta fácilmente mediante **Docker**. + +--- + +## 🚀 Características + +✅ Descarga de **vídeo o audio MP3** individual +✅ Descarga de **listas completas** de reproducción en formato ZIP +✅ Interfaz moderna con pestañas (Bootstrap) +✅ Envío automático del archivo al cliente tras la descarga +✅ Funcionamiento 100% en servidor local (no se sube nada a la nube) +✅ Preparado para ejecutarse dentro de Docker + +--- + +## 📁 Estructura del proyecto + +``` +ytdwl/ +├── app/ +│ ├── main.py # Backend en Flask +│ ├── requirements.txt # Dependencias Python +│ ├── templates/ +│ │ └── index.html # Interfaz HTML (Bootstrap) +│ └── downloads/ # Carpeta donde se guardan descargas temporales +├── Dockerfile # Imagen con Python, yt-dlp, ffmpeg +├── docker-compose.yml # Configuración del contenedor +└── README.md # Este documento +``` + +--- + +## 🧰 Requisitos + +- Docker +- Docker Compose + +--- + +## 🛠️ Instalación y ejecución + +### 1. Clonar el repositorio o copiar los archivos + +```bash +git clone https://github.com/tuusuario/ytdwl.git +cd ytdwl +``` + +> O copia el contenido manualmente si no usas Git. + +--- + +### 2. Construir la imagen Docker + +```bash +docker compose build +``` + +--- + +### 3. Ejecutar el contenedor + +```bash +docker compose up -d +``` + +Esto levantará la aplicación en el puerto **5000** por defecto (puedes cambiarlo en `docker-compose.yml` si está ocupado). + +--- + +### 4. Acceder a la web + +Abre tu navegador en: + +``` +http://localhost:5000 +``` + +--- + +## 🌐 Uso + +### ▸ Descargar un solo vídeo o canción: +- Ve a la pestaña **"Vídeo / MP3 individual"** +- Pega la URL del vídeo +- Selecciona "Vídeo" o "MP3" +- Pulsa **Descargar** +- El navegador descargará el archivo directamente + +### ▸ Descargar una lista de reproducción: +- Ve a la pestaña **"Lista de reproducción"** +- Pega la URL de la lista +- Selecciona "Vídeo" o "MP3" +- Pulsa **Descargar Lista** +- El navegador descargará un ZIP con todos los elementos + +--- + +## 🧹 Limpieza + +Todos los archivos descargados se eliminan automáticamente tras ser enviados al cliente. +No se acumula contenido en el servidor. + +--- + +## 🛑 Parar el contenedor + +```bash +docker compose down +``` + +--- + +## 🔐 Notas de seguridad + +- Esta aplicación está pensada para **uso personal y educativo**. +- Respeta siempre los derechos de autor y las condiciones de uso de las plataformas. +- No expongas la aplicación a Internet sin protección adecuada. + +--- + +## 📜 Licencia + +MIT © Marti Vich diff --git a/app b/app new file mode 160000 index 0000000..10d2cee --- /dev/null +++ b/app @@ -0,0 +1 @@ +Subproject commit 10d2cee94f222f54fa6d8eb0de0533251309f58e diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..5ed007c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +services: + web: + build: ./app + ports: + - "5080:5000" + volumes: + - ./app/downloads:/app/downloads + container_name: yt-downloader