247 lines
5.4 KiB
Markdown
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
|