TubeScript-API/START_HERE.md

498 lines
13 KiB
Markdown

# Nota: Streamlit eliminado
> El frontend Streamlit fue eliminado. Usa `main.py` o 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)
1. **✅ Función `get_transcript_data` mejorada:**
- 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
2. **✅ Función `get_stream_url` mejorada:**
- 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
1. **✅ docker-manager.sh** - Gestor interactivo todo-en-uno
2. **✅ docker-start-api.sh** - Iniciar solo FastAPI
3. **✅ docker-start-streamlit.sh** - Iniciar solo Streamlit
4. **✅ docker-stop-all.sh** - Detener todos los servicios
5. **✅ docker-logs-separate.sh** - Ver logs por servicio
6. **✅ docker-create-network.sh** - Crear red de Docker
7. **✅ COMANDOS_RAPIDOS.sh** - Referencia rápida de comandos
### 📚 Documentación Creada
1. **✅ QUICKSTART_COMPLETO.md** - Guía de inicio rápido completa
2. **✅ PANEL_STREAMLIT_GUIA.md** - Guía detallada del panel web
3. **✅ DOCKER_COMANDOS_SEPARADOS_COMPLETO.md** - Comandos Docker detallados
4. **✅ API_EXAMPLES.md** - Ejemplos de uso de la API con cURL, Python, Node.js
5. **✅ RESUMEN_IMPLEMENTACION.md** - Resumen ejecutivo completo
---
## 🚀 Cómo Empezar AHORA
### Opción 1: Gestor Interactivo (Más Fácil)
```bash
./docker-manager.sh
```
Selecciona las opciones del menú:
1. Opción 12: Crear red de Docker
2. Opción 1: Iniciar todos los servicios
3. Opción 14: Abrir panel web
### Opción 2: Comandos Directos
```bash
# 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
```bash
# 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:
1. **GET /stream/{video_id}**
- Obtiene URL m3u8 de video en vivo
- Estrategia de fallback inteligente
- Mensajes de error claros
2. **GET /transcript/{video_id}?lang={idioma}**
- Obtiene subtítulos/transcripción
- Soporte para múltiples idiomas
- Fallback a subtítulos automáticos
3. **GET /docs**
- Documentación interactiva Swagger
4. **GET /redoc**
- Documentación ReDoc
---
## 🎯 Plataformas Configuradas
| Plataforma | RTMP URL | Configurada |
|------------|----------|-------------|
| YouTube | rtmp://a.rtmp.youtube.com/live2 | ✅ |
| Facebook | rtmps://live-api-s.facebook.com:443/rtmp/ | ✅ |
| Twitch | rtmp://live.twitch.tv/app | ✅ |
| X (Twitter) | rtmps://fa.contribute.live-video.net/app | ✅ |
| Instagram | rtmps://live-upload.instagram.com:443/rtmp/ | ✅ |
| TikTok | rtmp://push.live.tiktok.com/live/ | ✅ |
---
## 🔄 Flujo de Trabajo Completo
### 1. Configuración Inicial (Primera Vez)
```bash
# 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):
1. Abrir barra lateral (⚙️ Configuración)
2. Para cada plataforma:
- ✅ Activar "Habilitar esta plataforma"
- 🔑 Ingresar Stream Key
- 🌐 (Opcional) Personalizar RTMP URL
3. 💾 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
```bash
# API
docker logs -f tubescript_api
# Streamlit
docker logs -f streamlit_panel
# Ambos
docker-compose logs -f
```
### Actualizar yt-dlp
```bash
docker exec tubescript_api pip install --upgrade yt-dlp
docker exec streamlit_panel pip install --upgrade yt-dlp
```
### Reiniciar
```bash
docker-compose restart
```
### Detener
```bash
./docker-stop-all.sh
# o
docker-compose down
```
### Reconstruir
```bash
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:**
```bash
# 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"
```bash
# Ver qué usa el puerto
lsof -i :8080 # API
lsof -i :8501 # Streamlit
# Matar proceso
kill -9 $(lsof -ti:8080)
```
### ❌ "Network not found"
```bash
./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
```bash
ffmpeg -re -i "URL_M3U8" -c copy -f flv RTMP_URL/STREAM_KEY
```
---
## ✨ Próximos Pasos
1.**Ejecutar el gestor:** `./docker-manager.sh`
2.**Crear red:** Opción 12
3.**Iniciar servicios:** Opción 1
4.**Abrir panel:** Opción 14 o http://localhost:8501
5.**Configurar plataformas:** Stream Keys en la barra lateral
6.**Buscar video en vivo:** Pestaña Búsqueda
7.**Iniciar transmisión:** Pestaña Control
8.**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
1. **Interfaz Intuitiva** - Diseño limpio con iconos visuales
2. **Control Granular** - Switches individuales por plataforma
3. **Monitoreo en Tiempo Real** - Semáforos y PIDs activos
4. **Fácil Despliegue** - Docker Compose + Scripts automatizados
5. **Multi-Plataforma** - Hasta 6 plataformas simultáneas
6. **Documentación Completa** - Guías paso a paso
7. **Manejo Robusto de Errores** - Mensajes claros y útiles
8. **Persistencia de Config** - No pierde configuración al reiniciar
---
## 💡 Tips Finales
1. **Lee los comandos rápidos:** `./COMANDOS_RAPIDOS.sh`
2. **Usa el gestor interactivo:** `./docker-manager.sh`
3. **Mantén yt-dlp actualizado:** Opción 11 del gestor
4. **Revisa los logs** si algo falla
5. **Guarda tus Stream Keys** en el panel
6. **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:
```bash
./docker-manager.sh
```
¡Éxito con tus transmisiones! 🎥📡🌍