#!/bin/bash # ============================================================ # TubeScript API - COMANDOS RÁPIDOS # ============================================================ # Usa este archivo como referencia rΓ‘pida de comandos # Copia y pega los comandos que necesites echo "πŸ“š TubeScript API - Comandos RΓ‘pidos" echo "" # ============================================================ # πŸš€ INICIO RÁPIDO # ============================================================ cat << 'EOF' πŸš€ INICIO RÁPIDO (3 pasos): ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1️⃣ Crear red: ./docker-create-network.sh 2️⃣ Iniciar servicios: ./docker-manager.sh # O: docker-compose up -d 3️⃣ Acceder: Panel: http://localhost:8501 API: http://localhost:8080/docs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸŽ›οΈ GESTIΓ“N DE SERVICIOS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Gestor Interactivo (Recomendado): ./docker-manager.sh πŸ“ Iniciar TODO: docker-compose up -d πŸ“ Iniciar SOLO API: ./docker-start-api.sh πŸ“ Iniciar SOLO Streamlit: ./docker-start-streamlit.sh πŸ“ Detener TODO: ./docker-stop-all.sh # O: docker-compose down πŸ“ Reiniciar TODO: docker-compose restart πŸ“ Ver Estado: docker ps docker ps -a # Incluir detenidos ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“‹ LOGS Y MONITOREO ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Ver Logs API: docker logs -f tubescript_api # O: ./docker-logs-separate.sh api πŸ“ Ver Logs Streamlit: docker logs -f streamlit_panel # O: ./docker-logs-separate.sh streamlit πŸ“ Ver Logs AMBOS: docker-compose logs -f # O: ./docker-logs-separate.sh both πŸ“ Ver ΓΊltimas 100 lΓ­neas: docker logs --tail 100 tubescript_api docker logs --tail 100 streamlit_panel πŸ“ Ver recursos (CPU/RAM): docker stats # O solo TubeScript: docker stats tubescript_api streamlit_panel ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ”„ ACTUALIZACIΓ“N Y MANTENIMIENTO ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Actualizar yt-dlp: docker exec tubescript_api pip install --upgrade yt-dlp docker exec streamlit_panel pip install --upgrade yt-dlp πŸ“ Reconstruir Contenedores: docker-compose down docker-compose build --no-cache docker-compose up -d πŸ“ Actualizar cΓ³digo (con Git): git pull docker-compose down docker-compose build docker-compose up -d πŸ“ Limpiar contenedores viejos: docker container prune -f πŸ“ Limpiar imΓ‘genes viejas: docker image prune -a -f πŸ“ Limpiar TODO (⚠️ cuidado): docker system prune -a --volumes ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ› DEBUGGING Y SOLUCIΓ“N DE PROBLEMAS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Entrar al contenedor (shell): docker exec -it tubescript_api /bin/bash docker exec -it streamlit_panel /bin/bash πŸ“ Verificar versiΓ³n yt-dlp: docker exec tubescript_api yt-dlp --version docker exec streamlit_panel yt-dlp --version πŸ“ Probar endpoint manualmente: curl http://localhost:8080/stream/G01-33V6I2g πŸ“ Ver error completo: docker logs tubescript_api 2>&1 | tail -50 docker logs streamlit_panel 2>&1 | tail -50 πŸ“ Reiniciar un servicio: docker restart tubescript_api docker restart streamlit_panel πŸ“ Ver quΓ© usa un puerto: lsof -i :8080 # API lsof -i :8501 # Streamlit πŸ“ Matar proceso en un puerto (macOS/Linux): kill -9 $(lsof -ti:8080) kill -9 $(lsof -ti:8501) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🌐 ACCESO Y URLs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Panel Web: http://localhost:8501 πŸ“ API FastAPI: http://localhost:8080 πŸ“ API Docs (Swagger): http://localhost:8080/docs πŸ“ API ReDoc: http://localhost:8080/redoc πŸ“ Abrir en navegador (macOS): open http://localhost:8501 open http://localhost:8080/docs πŸ“ Abrir en navegador (Linux): xdg-open http://localhost:8501 xdg-open http://localhost:8080/docs ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ βš™οΈ CONFIGURACIΓ“N ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Crear/Editar .env: cp .env.example .env nano .env # O: vim .env πŸ“ Ver configuraciΓ³n actual: cat stream_config.json | python3 -m json.tool πŸ“ Ver procesos activos: cat process_state.json | python3 -m json.tool πŸ“ Reiniciar despuΓ©s de cambiar .env: docker-compose down docker-compose up -d ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ§ͺ TESTING Y PRUEBAS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Probar obtener stream: curl -X GET "http://localhost:8080/stream/G01-33V6I2g" | jq πŸ“ Probar obtener transcripciΓ³n: curl -X GET "http://localhost:8080/transcript/WODSeZfCnUg?lang=es" | jq πŸ“ Probar con HTTPie: http GET localhost:8080/stream/G01-33V6I2g πŸ“ Extraer solo la URL del stream: curl -s http://localhost:8080/stream/G01-33V6I2g | jq -r '.stream_url' πŸ“ Test completo de transmisiΓ³n: # 1. Obtener URL STREAM_URL=$(curl -s http://localhost:8080/stream/G01-33V6I2g | jq -r '.stream_url') # 2. Transmitir (test de 10 segundos) timeout 10 ffmpeg -re -i "$STREAM_URL" -c copy -f flv rtmp://test/key ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“Š INFORMACIΓ“N DEL SISTEMA ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Ver informaciΓ³n de contenedores: docker inspect tubescript_api docker inspect streamlit_panel πŸ“ Ver red de Docker: docker network inspect tubescript-network πŸ“ Ver volΓΊmenes: docker volume ls πŸ“ Ver tamaΓ±o de imΓ‘genes: docker images | grep tubescript πŸ“ Ver uso de disco de Docker: docker system df πŸ“ Ver procesos dentro del contenedor: docker top tubescript_api docker top streamlit_panel ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ” SEGURIDAD Y PERMISOS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Dar permisos a scripts: chmod +x *.sh πŸ“ Ver permisos actuales: ls -la *.sh πŸ“ Cambiar permisos de archivos de config: chmod 600 stream_config.json chmod 600 cookies.txt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🎯 COMANDOS DE PRODUCCIΓ“N ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Iniciar en segundo plano: docker-compose up -d πŸ“ Ver estado de salud: docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" πŸ“ Reinicio automΓ‘tico (ya configurado): # En docker-compose.yml: restart: unless-stopped πŸ“ Backup de configuraciΓ³n: tar -czf backup_$(date +%Y%m%d).tar.gz \ stream_config.json \ process_state.json \ streams_state.json \ cookies.txt \ .env πŸ“ Restaurar backup: tar -xzf backup_20260130.tar.gz ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ’‘ TIPS Y TRUCOS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Alias ΓΊtiles (agregar a ~/.zshrc o ~/.bashrc): alias ts-start='docker-compose up -d' alias ts-stop='docker-compose down' alias ts-logs='docker-compose logs -f' alias ts-restart='docker-compose restart' alias ts-panel='open http://localhost:8501' alias ts-api='open http://localhost:8080/docs' πŸ“ Ver logs con colores (si tienes grc): grc docker logs -f tubescript_api πŸ“ Buscar en logs: docker logs tubescript_api 2>&1 | grep "ERROR" docker logs streamlit_panel 2>&1 | grep "stream" πŸ“ Seguir solo errores: docker logs -f tubescript_api 2>&1 | grep -i error πŸ“ Contar lΓ­neas de log: docker logs tubescript_api 2>&1 | wc -l ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“š DOCUMENTACIΓ“N ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“ Ver documentaciΓ³n disponible: ls -1 *.md πŸ“ Abrir documentaciΓ³n: QUICKSTART_COMPLETO.md # Inicio rΓ‘pido PANEL_STREAMLIT_GUIA.md # GuΓ­a del panel DOCKER_COMANDOS_SEPARADOS_COMPLETO.md # Comandos Docker API_EXAMPLES.md # Ejemplos de API RESUMEN_IMPLEMENTACION.md # Resumen completo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ†˜ AYUDA RÁPIDA ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ❌ PROBLEMA: "No se pudo obtener URL del stream" βœ… SOLUCIΓ“N: docker exec streamlit_panel pip install --upgrade yt-dlp # O reconstruir: docker-compose down && docker-compose build --no-cache && docker-compose up -d ❌ PROBLEMA: "Puerto ya en uso" βœ… SOLUCIΓ“N: lsof -i :8080 # Ver quΓ© lo usa # Cambiar puerto en docker-compose.yml o matar proceso ❌ PROBLEMA: "Error al descargar subtΓ­tulos" βœ… SOLUCIΓ“N: # El video puede no tener subtΓ­tulos # Prueba con otro video ❌ PROBLEMA: "Contenedor se detiene" βœ… SOLUCIΓ“N: docker logs tubescript_api docker logs streamlit_panel # Ver el error especΓ­fico ❌ PROBLEMA: "Network not found" βœ… SOLUCIΓ“N: ./docker-create-network.sh ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ Para ayuda interactiva, ejecuta: ./docker-manager.sh πŸ“– Para documentaciΓ³n completa: cat QUICKSTART_COMPLETO.md 🌐 Para acceder al panel: open http://localhost:8501 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ TubeScript API Pro Β© 2026 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ EOF