TubeScript-API/START_HERE.md

13 KiB

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)

./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

# 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:

  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)

# 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:

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

  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:

./docker-manager.sh

¡Éxito con tus transmisiones! 🎥📡🌍