Convierte videos de YouTube a MP3 y responde por Telegram. Incluye API FastAPI con webhook y endpoint de descargas.
/
├─ app/
│ ├─ Dockerfile
│ ├─ requirements.txt
│ ├─ main.py
│ ├─ utils.py
│ └─ README.md
├─ docker-compose.yml
├─ .env.example
└─ README.md
-
Copia variables:
cp .env.example .env # edita .env y coloca tu TELEGRAM_BOT_TOKEN, WEBHOOK_HOST y DOWNLOAD_BASE_URL
-
Construye y levanta:
docker-compose up --build
-
Registra el webhook en Telegram:
# Reemplaza TOKEN y HOST curl -sS -X POST "https://api.telegram.org/botTOKEN/setWebhook?url=HOST/webhook/TOKEN" | jq
-
Desarrollo local con ngrok (opcional):
ngrok http 8000 # Usa la URL https de ngrok como HOST y vuelve a registrar el webhook
- Envía un mensaje al bot con una URL de YouTube. El bot:
- Descarga el audio con yt-dlp
- Convierte a MP3 con ffmpeg
- Si < 50MB: te envía el MP3
- Si >= 50MB: te envía un enlace de descarga
/downloads/{filename}
- Telegram limita documentos a ~50MB.
- El webhook valida el token a través de la ruta. Protege tu token y usa HTTPS.
- Considera límites de tasa y limpieza de archivos antiguos en
media
.
- Redis + RQ/Celery para cola de trabajos.
- S3/GCS para almacenamiento robusto.
- Autenticación o enlaces firmados para descargas.