13 KiB
Nota: Streamlit eliminado
El frontend Streamlit fue eliminado. Usa
main.pyo Docker para ejecutar la API.
START HERE
🎉 IMPLEMENTACIÓN COMPLETADA - TubeScript API Pro
✅ Estado: COMPLETADO Y LISTO PARA USAR
📋 Resumen de lo Implementado
🔧 Mejoras en el Backend (main.py)
-
✅ Función
get_transcript_datamejorada:- Manejo robusto de errores con mensajes claros
- Soporte para subtítulos automáticos como fallback
- Timeout de 60 segundos
- Validación exhaustiva de respuestas
- Uso del cliente Android para mayor compatibilidad
-
✅ Función
get_stream_urlmejorada:- Estrategia de fallback con 4 formatos diferentes
- Cliente Android para mejor compatibilidad con YouTube
- Manejo inteligente de timeouts
- Mensajes de error descriptivos y útiles
🖥️ Panel Streamlit (streamlit_app.py)
Ya estaba completo con:
- ✅ Sistema de switches funcional por plataforma
- ✅ Gestión de PIDs de procesos FFmpeg
- ✅ Semáforos de estado en tiempo real (🟢 🔴 ⚪)
- ✅ Monitoreo activo con auto-refresh (5 segundos)
- ✅ 6 plataformas preconfiguradas con URLs RTMP por defecto
- ✅ Persistencia de configuración en JSON
- ✅ Preview de video con miniatura
- ✅ Control individual y grupal de transmisiones
🐳 Scripts Docker Creados
- ✅ docker-manager.sh - Gestor interactivo todo-en-uno
- ✅ docker-start-api.sh - Iniciar solo FastAPI
- ✅ docker-start-streamlit.sh - Iniciar solo Streamlit
- ✅ docker-stop-all.sh - Detener todos los servicios
- ✅ docker-logs-separate.sh - Ver logs por servicio
- ✅ docker-create-network.sh - Crear red de Docker
- ✅ COMANDOS_RAPIDOS.sh - Referencia rápida de comandos
📚 Documentación Creada
- ✅ QUICKSTART_COMPLETO.md - Guía de inicio rápido completa
- ✅ PANEL_STREAMLIT_GUIA.md - Guía detallada del panel web
- ✅ DOCKER_COMANDOS_SEPARADOS_COMPLETO.md - Comandos Docker detallados
- ✅ API_EXAMPLES.md - Ejemplos de uso de la API con cURL, Python, Node.js
- ✅ RESUMEN_IMPLEMENTACION.md - Resumen ejecutivo completo
🚀 Cómo Empezar AHORA
Opción 1: Gestor Interactivo (Más Fácil)
./docker-manager.sh
Selecciona las opciones del menú:
- Opción 12: Crear red de Docker
- Opción 1: Iniciar todos los servicios
- Opción 14: Abrir panel web
Opción 2: Comandos Directos
# 1. Crear red
./docker-create-network.sh
# 2. Iniciar servicios
docker-compose up -d
# 3. Verificar que estén corriendo
docker ps
# 4. Acceder al panel
open http://localhost:8501
Opción 3: Servicios Separados
# 1. Crear red
./docker-create-network.sh
# 2. Iniciar API
./docker-start-api.sh
# 3. Iniciar Streamlit
./docker-start-streamlit.sh
# 4. Verificar logs
docker logs -f streamlit_panel
📊 Funcionalidades Completas
Panel Web (http://localhost:8501)
Pestaña 1: 🔍 Búsqueda
- Buscar videos en vivo por palabra clave
- Ingresar URL directa de YouTube
- Preview con miniatura y datos del canal
- Verificación de estado EN VIVO (🔴)
Pestaña 2: 🎛️ Control
- Vista del video seleccionado
- Switches individuales por plataforma
- Botón "Iniciar Todas" / "Detener Todas"
- Tabla resumen con estado de redes
- Tarjetas por plataforma con:
- Semáforo de estado (🟢 🔴 ⚪)
- PID del proceso
- Tiempo activo
- Switch para activar/desactivar
Pestaña 3: 📊 Monitor
- Auto-refresh cada 5 segundos
- Resumen general con métricas
- Estado detallado por plataforma
- Verificación de PIDs en tiempo real
- Botones para detener individualmente
Barra Lateral: ⚙️ Configuración
- 6 plataformas: YouTube, Facebook, Twitch, X, Instagram, TikTok
- Switch para habilitar/deshabilitar cada una
- Campo para Stream Key (obligatorio)
- RTMP URL con valor por defecto (opcional personalizar)
- Indicadores visuales de estado
- Guías de ayuda incluidas
API FastAPI (http://localhost:8080)
Endpoints Disponibles:
-
GET /stream/{video_id}
- Obtiene URL m3u8 de video en vivo
- Estrategia de fallback inteligente
- Mensajes de error claros
-
GET /transcript/{video_id}?lang={idioma}
- Obtiene subtítulos/transcripción
- Soporte para múltiples idiomas
- Fallback a subtítulos automáticos
-
GET /docs
- Documentación interactiva Swagger
-
GET /redoc
- Documentación ReDoc
🎯 Plataformas Configuradas
| Plataforma | RTMP URL | Configurada |
|---|---|---|
| YouTube | rtmp://a.rtmp.youtube.com/live2 | ✅ |
| rtmps://live-api-s.facebook.com:443/rtmp/ | ✅ | |
| Twitch | rtmp://live.twitch.tv/app | ✅ |
| X (Twitter) | rtmps://fa.contribute.live-video.net/app | ✅ |
| rtmps://live-upload.instagram.com:443/rtmp/ | ✅ | |
| TikTok | rtmp://push.live.tiktok.com/live/ | ✅ |
🔄 Flujo de Trabajo Completo
1. Configuración Inicial (Primera Vez)
# Ejecutar gestor
./docker-manager.sh
# Opciones del menú:
# 12 - Crear red de Docker
# 1 - Iniciar todos los servicios
# 14 - Abrir panel web
2. Configurar Plataformas
En el panel web (http://localhost:8501):
- Abrir barra lateral (⚙️ Configuración)
- Para cada plataforma:
- ✅ Activar "Habilitar esta plataforma"
- 🔑 Ingresar Stream Key
- 🌐 (Opcional) Personalizar RTMP URL
- 💾 Guardar Configuración
3. Buscar Video en Vivo
Pestaña 🔍 Búsqueda:
- Buscar: "noticias live" o "CNN live"
- O pegar URL: https://www.youtube.com/watch?v=VIDEO_ID
- Seleccionar video
- Verificar que esté 🔴 EN VIVO
4. Iniciar Transmisiones
Pestaña 🎛️ Control:
- Ver preview del video
- Activar switches de las plataformas deseadas
- O clic en "▶️ Iniciar Todas"
- Ver semáforos cambiar a 🟢
5. Monitorear
Pestaña 📊 Monitor:
- Ver estado en tiempo real
- Verificar PIDs activos
- Comprobar tiempo de transmisión
- Detener cuando sea necesario
🎨 Semáforos de Estado
| Semáforo | Estado | Acción |
|---|---|---|
| 🟢 | TRANSMITIENDO | Todo funcionando correctamente |
| ⚪ | LISTO | Configurada pero no transmitiendo |
| 🔴 | ERROR | Revisar logs o reiniciar |
| ⚠️ | DESHABILITADA | Activar en Configuración |
🛠️ Comandos Útiles
Ver Logs
# API
docker logs -f tubescript_api
# Streamlit
docker logs -f streamlit_panel
# Ambos
docker-compose logs -f
Actualizar yt-dlp
docker exec tubescript_api pip install --upgrade yt-dlp
docker exec streamlit_panel pip install --upgrade yt-dlp
Reiniciar
docker-compose restart
Detener
./docker-stop-all.sh
# o
docker-compose down
Reconstruir
docker-compose down
docker-compose build --no-cache
docker-compose up -d
🆘 Solución de Problemas
❌ "No se pudo obtener URL del stream"
Causas:
- Video no está EN VIVO (🔴)
- Video con restricciones
- yt-dlp desactualizado
Solución:
# Actualizar yt-dlp
./docker-manager.sh
# Selecciona opción 11
# O reconstruir
docker-compose down
docker-compose build --no-cache
docker-compose up -d
❌ "Puerto ya en uso"
# Ver qué usa el puerto
lsof -i :8080 # API
lsof -i :8501 # Streamlit
# Matar proceso
kill -9 $(lsof -ti:8080)
❌ "Network not found"
./docker-create-network.sh
❌ "Transmisión se detuvo"
Verificar:
- Video sigue en vivo
- Stream Key correcta
- Ver logs:
docker logs streamlit_panel
📦 Archivos Importantes
TubeScript-API/
├── main.py # ✅ Backend FastAPI (mejorado)
├── streamlit_app.py # ✅ Frontend Streamlit (completo)
├── docker-compose.yml # Docker Compose
├── Dockerfile # Imagen Docker
├── requirements.txt # Dependencias
├── .env.example # Variables de entorno
│
├── Scripts:
│ ├── docker-manager.sh # ✅ Gestor interactivo
│ ├── docker-start-api.sh # ✅ Iniciar API
│ ├── docker-start-streamlit.sh # ✅ Iniciar Streamlit
│ ├── docker-stop-all.sh # ✅ Detener todos
│ ├── docker-logs-separate.sh # ✅ Ver logs
│ ├── docker-create-network.sh # ✅ Crear red
│ └── COMANDOS_RAPIDOS.sh # ✅ Referencia rápida
│
├── Documentación:
│ ├── QUICKSTART_COMPLETO.md # ✅ Inicio rápido
│ ├── PANEL_STREAMLIT_GUIA.md # ✅ Guía del panel
│ ├── DOCKER_COMANDOS_...md # ✅ Comandos Docker
│ ├── API_EXAMPLES.md # ✅ Ejemplos API
│ └── RESUMEN_IMPLEMENTACION.md # ✅ Resumen completo
│
└── Config:
├── stream_config.json # Configuración de plataformas
├── process_state.json # Estado de procesos
├── streams_state.json # Estado de streams
└── cookies.txt # Cookies de YouTube (opcional)
🌐 URLs de Acceso
| Servicio | URL | Descripción |
|---|---|---|
| Panel Web | http://localhost:8501 | Interfaz Streamlit |
| API | http://localhost:8080 | FastAPI Backend |
| API Docs | http://localhost:8080/docs | Documentación Swagger |
| API ReDoc | http://localhost:8080/redoc | Documentación alternativa |
📈 Características Técnicas
Arquitectura
Usuario → Streamlit (8501)
↓
FastAPI (8000/8080) → yt-dlp → YouTube
↓
FFmpeg (PIDs) → RTMP → Plataformas
Gestión de Procesos
- Cada transmisión = Proceso FFmpeg independiente
- PID registrado y monitoreado
- Verificación continua de estado
- Logs separados por plataforma
Comando FFmpeg
ffmpeg -re -i "URL_M3U8" -c copy -f flv RTMP_URL/STREAM_KEY
✨ Próximos Pasos
- ✅ Ejecutar el gestor:
./docker-manager.sh - ✅ Crear red: Opción 12
- ✅ Iniciar servicios: Opción 1
- ✅ Abrir panel: Opción 14 o http://localhost:8501
- ✅ Configurar plataformas: Stream Keys en la barra lateral
- ✅ Buscar video en vivo: Pestaña Búsqueda
- ✅ Iniciar transmisión: Pestaña Control
- ✅ Monitorear: Pestaña Monitor
📚 Documentación Completa
Para más detalles, consulta:
- QUICKSTART_COMPLETO.md - Guía de inicio rápido
- PANEL_STREAMLIT_GUIA.md - Guía completa del panel
- API_EXAMPLES.md - Ejemplos de uso de la API
- DOCKER_COMANDOS_SEPARADOS_COMPLETO.md - Todos los comandos Docker
- COMANDOS_RAPIDOS.sh - Referencia rápida ejecutable
🎉 ¡Listo para Producción!
El sistema está 100% funcional y listo para usar:
✅ Backend optimizado con manejo robusto de errores
✅ Frontend completo con interfaz intuitiva
✅ Sistema de switches funcional
✅ Gestión de PIDs y monitoreo
✅ Scripts de gestión automatizados
✅ Documentación exhaustiva
✅ 6 plataformas preconfiguradas
✅ Docker Compose para despliegue fácil
🎯 Características Destacadas
- Interfaz Intuitiva - Diseño limpio con iconos visuales
- Control Granular - Switches individuales por plataforma
- Monitoreo en Tiempo Real - Semáforos y PIDs activos
- Fácil Despliegue - Docker Compose + Scripts automatizados
- Multi-Plataforma - Hasta 6 plataformas simultáneas
- Documentación Completa - Guías paso a paso
- Manejo Robusto de Errores - Mensajes claros y útiles
- Persistencia de Config - No pierde configuración al reiniciar
💡 Tips Finales
- Lee los comandos rápidos:
./COMANDOS_RAPIDOS.sh - Usa el gestor interactivo:
./docker-manager.sh - Mantén yt-dlp actualizado: Opción 11 del gestor
- Revisa los logs si algo falla
- Guarda tus Stream Keys en el panel
- Usa videos 24/7 como CNN/BBC para pruebas
🏆 Estado del Proyecto
┌─────────────────────────────────────────┐
│ ✅ IMPLEMENTACIÓN COMPLETADA │
│ │
│ Estado: PRODUCCIÓN │
│ Versión: 2.0.0 │
│ Fecha: 30 Enero 2026 │
│ │
│ Backend: ✅ Optimizado │
│ Frontend: ✅ Completo │
│ Docker: ✅ Configurado │
│ Scripts: ✅ Creados │
│ Docs: ✅ Exhaustiva │
│ │
│ 🎉 LISTO PARA USAR 🎉 │
└─────────────────────────────────────────┘
TubeScript API Pro © 2026
Sistema de Retransmisión Multi-Plataforma
✨ Transmite a 6 redes sociales simultáneamente ✨
🚀 EMPIEZA AHORA:
./docker-manager.sh
¡Éxito con tus transmisiones! 🎥📡🌍