TubeScript-API/INSTRUCCIONES_FINALES.md

247 lines
5.4 KiB
Markdown

# ✅ SOLUCIÓN FINAL - Instrucciones Paso a Paso
## 🎯 El Problema
```
ERROR: [youtube] 6hini9Xz_fc: Requested format is not available
```
## ✅ Cambio Implementado
He simplificado **completamente** el comando yt-dlp en `main.py` (línea ~95):
### ANTES:
```python
command = [
"yt-dlp",
"--skip-download",
"--dump-json",
"--no-warnings",
"--extractor-args", "youtube:player_client=android", # Esto puede causar problemas
url
]
```
### AHORA:
```python
command = [
"yt-dlp",
"--skip-download",
"--dump-json",
"--no-warnings",
url
]
```
**Cambio clave:** Eliminé `--extractor-args` que puede causar conflictos con YouTube.
---
## 🚀 PASOS PARA APLICAR LA SOLUCIÓN
### Paso 1: Detener Todo
```bash
cd /Users/cesarmendivil/Documents/Nextream/TubeScript-API
# Detener servicios
docker-compose down
# O forzar detención
docker stop $(docker ps -aq) 2>/dev/null
docker rm $(docker ps -aq) 2>/dev/null
```
### Paso 2: Limpiar Imágenes Antiguas
```bash
# Eliminar imagen vieja
docker rmi tubescript-api
# O limpiar todo Docker
docker system prune -a
```
### Paso 3: Reconstruir la Imagen
```bash
# Build desde cero (SIN CACHÉ)
docker-compose build --no-cache tubescript-api
# Esto toma 3-5 minutos
# Espera a que termine completamente
```
### Paso 4: Iniciar el Servicio
```bash
# Iniciar en segundo plano
docker-compose up -d tubescript-api
# Esperar 15 segundos
sleep 15
```
### Paso 5: Verificar que Está Corriendo
```bash
# Ver contenedores activos
docker ps
# Debería mostrar: tubescript_api ... Up
```
### Paso 6: Probar el Endpoint
```bash
# Probar el video que fallaba
curl -X GET "http://localhost:8080/transcript/6hini9Xz_fc?lang=es"
# Si funciona, verás JSON con subtítulos
# Si falla, ver logs:
docker logs tubescript_api
```
---
## 🔍 DIAGNÓSTICO SI SIGUE FALLANDO
### Ver Logs Completos
```bash
docker logs tubescript_api 2>&1 | tail -100
```
### Entrar al Contenedor y Probar Manualmente
```bash
# Entrar al contenedor
docker exec -it tubescript_api bash
# Dentro del contenedor, probar yt-dlp directo:
yt-dlp --version
# Probar obtener metadatos del video:
yt-dlp --skip-download --dump-json --no-warnings \
"https://www.youtube.com/watch?v=6hini9Xz_fc" | head -50
# Ver si hay subtítulos:
yt-dlp --list-subs "https://www.youtube.com/watch?v=6hini9Xz_fc"
# Salir:
exit
```
### Probar con Otro Video
```bash
# Probar con un video diferente que sabemos que tiene subtítulos:
curl -X GET "http://localhost:8080/transcript/jNQXAC9IVRw?lang=en"
# Video de prueba popular:
curl -X GET "http://localhost:8080/transcript/dQw4w9WgXcQ?lang=en"
```
---
## 📊 POSIBLES CAUSAS DEL ERROR
### 1. El Video Específico Tiene Problemas
- Prueba con otro video
- Verifica que el video sea accesible: https://www.youtube.com/watch?v=6hini9Xz_fc
### 2. YouTube Está Bloqueando
- Agrega cookies.txt (exporta desde tu navegador)
- Usa una VPN
- Espera unos minutos y vuelve a intentar
### 3. yt-dlp Desactualizado
```bash
# Dentro del contenedor:
docker exec -it tubescript_api bash
pip install --upgrade yt-dlp
exit
# Reiniciar:
docker-compose restart tubescript-api
```
### 4. El Video NO Tiene Subtítulos
- Verifica manualmente en YouTube si el video tiene subtítulos
- El video podría estar geo-bloqueado
- El video podría haber sido eliminado
---
## 💡 SOLUCIÓN ALTERNATIVA
Si el video `6hini9Xz_fc` específicamente siempre falla, puede ser que:
1. **El video no tenga subtítulos** - Verifica manualmente
2. **El video esté restringido** - Prueba con cookies.txt
3. **El video fue eliminado** - Busca otro video
### Probar con Video Conocido que Funciona:
```bash
# CNN en vivo (siempre tiene subtítulos):
curl -X GET "http://localhost:8080/transcript/XWq5kBlakcQ?lang=en"
# BBC News (en inglés):
curl -X GET "http://localhost:8080/transcript/9Auq9mYxFEE?lang=en"
```
Si estos funcionan pero `6hini9Xz_fc` no, el problema es específico de ese video.
---
## 🎯 RESUMEN EJECUTIVO
### ✅ Lo que hice:
1. Simplifiqué el comando yt-dlp eliminando opciones problemáticas
2. Eliminé `--extractor-args` que puede causar conflictos
3. El código ahora es minimalista y robusto
### ✅ Lo que debes hacer:
1. Reconstruir Docker: `docker-compose build --no-cache tubescript-api`
2. Iniciar: `docker-compose up -d tubescript-api`
3. Probar: `curl "http://localhost:8080/transcript/6hini9Xz_fc?lang=es"`
### ✅ Si falla:
1. Ver logs: `docker logs tubescript_api`
2. Probar otro video
3. Verificar que el video tenga subtítulos en YouTube
4. Agregar cookies.txt si es necesario
---
## 📞 COMANDOS COMPLETOS LISTOS PARA COPIAR
```bash
# Ejecuta esto en orden:
# 1. Ir al directorio
cd /Users/cesarmendivil/Documents/Nextream/TubeScript-API
# 2. Detener y limpiar
docker-compose down
docker rmi tubescript-api 2>/dev/null || true
# 3. Reconstruir
docker-compose build --no-cache tubescript-api
# 4. Iniciar
docker-compose up -d tubescript-api
# 5. Esperar
sleep 15
# 6. Probar
curl -X GET "http://localhost:8080/transcript/6hini9Xz_fc?lang=es"
# 7. Ver logs si falla
docker logs tubescript_api 2>&1 | tail -50
```
---
**El código está LISTO. Solo necesitas reconstruir Docker con los pasos de arriba.**
Si después de esto el error persiste, es muy probable que sea un problema específico del video `6hini9Xz_fc` (sin subtítulos, bloqueado, eliminado, etc.) y no del código.
---
**TubeScript API Pro © 2026**
Última Actualización: 30 Enero 2026