first commit
This commit is contained in:
126
README.md
Normal file
126
README.md
Normal file
@@ -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
|
||||
1
app
Submodule
1
app
Submodule
Submodule app added at 10d2cee94f
8
docker-compose.yml
Normal file
8
docker-compose.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
services:
|
||||
web:
|
||||
build: ./app
|
||||
ports:
|
||||
- "5080:5000"
|
||||
volumes:
|
||||
- ./app/downloads:/app/downloads
|
||||
container_name: yt-downloader
|
||||
Reference in New Issue
Block a user