TubeScript-API/GUIA_CHROME_TRANSCRIPTS.md

219 lines
5.1 KiB
Markdown

# 🎯 Guía Rápida: Obtener Transcripts de YouTube usando Chrome
## ✅ Método Recomendado: Usar cookies desde Chrome directamente
Este método es el **MÁS FÁCIL** porque no necesitas exportar cookies manualmente. yt-dlp lee las cookies directamente desde tu navegador.
### 📋 Requisitos
- Chrome, Firefox o Brave instalado
- Estar logueado en YouTube en el navegador
- yt-dlp actualizado: `pip install -U yt-dlp`
---
## 🚀 Opción 1: Usar el script automático (Recomendado)
### Paso 1: Ejecutar el script
```bash
./get_transcript_chrome.sh VIDEO_ID
```
**Ejemplos:**
```bash
# Usar perfil por defecto de Chrome
./get_transcript_chrome.sh K08TM4OVLyo
# Especificar idioma
./get_transcript_chrome.sh K08TM4OVLyo es
# Usar Firefox en lugar de Chrome
./get_transcript_chrome.sh K08TM4OVLyo es firefox
# Usar un perfil específico de Chrome
./get_transcript_chrome.sh K08TM4OVLyo es chrome Default
./get_transcript_chrome.sh K08TM4OVLyo es chrome "Profile 1"
```
### Paso 2: Resultado
El script generará:
- `VIDEO_ID.LANG.vtt` - Archivo de subtítulos
- `VIDEO_ID_transcript.txt` - Texto plano del transcript
---
## 🔧 Opción 2: Comando manual de yt-dlp
### Comando básico
```bash
yt-dlp --cookies-from-browser chrome \
--skip-download --write-auto-sub \
--sub-lang es --sub-format vtt \
-o "%(id)s.%(ext)s" \
"https://www.youtube.com/watch?v=VIDEO_ID"
```
### Con perfil específico
```bash
yt-dlp --cookies-from-browser "chrome:Profile 1" \
--skip-download --write-auto-sub \
--sub-lang es --sub-format vtt \
-o "%(id)s.%(ext)s" \
"https://www.youtube.com/watch?v=VIDEO_ID"
```
---
## 📂 Encontrar tus perfiles de Chrome
### macOS:
```bash
ls -la ~/Library/Application\ Support/Google/Chrome/
```
### Linux:
```bash
ls -la ~/.config/google-chrome/
```
### Windows:
```cmd
dir "%LOCALAPPDATA%\Google\Chrome\User Data"
```
Los perfiles típicos son:
- `Default` - Perfil por defecto
- `Profile 1`, `Profile 2`, etc. - Perfiles adicionales
---
## 🔍 Ver qué perfil estás usando en Chrome
1. Abre Chrome
2. Haz clic en tu avatar (esquina superior derecha)
3. El nombre del perfil aparece en el menú
4. O ve a `chrome://version/` y busca "Profile Path"
---
## ⚠️ Solución de Problemas
### Problema 1: "ERROR: Unable to extract cookies"
**Solución**: Cierra Chrome completamente antes de ejecutar el comando.
```bash
# macOS: Cerrar Chrome por completo
killall "Google Chrome"
# Luego ejecuta el comando
./get_transcript_chrome.sh VIDEO_ID
```
### Problema 2: "HTTP Error 429"
Significa que YouTube está bloqueando tu IP. **Soluciones**:
1. **Usa Tor/VPN** (más efectivo):
```bash
# Instalar y arrancar Tor
brew install tor && tor &
# Usar con proxy
yt-dlp --cookies-from-browser chrome \
--proxy "socks5h://127.0.0.1:9050" \
--skip-download --write-auto-sub \
--sub-lang es --sub-format vtt \
-o "%(id)s.%(ext)s" \
"https://www.youtube.com/watch?v=VIDEO_ID"
```
2. **Espera unas horas** y vuelve a intentar
3. **Usa otra red** (móvil 4G/5G, otra WiFi)
### Problema 3: No se generan archivos
Verifica que:
- Estés logueado en YouTube en ese navegador
- El video tenga subtítulos (prueba con otro video)
- Tengas la última versión de yt-dlp: `pip install -U yt-dlp`
---
## 📖 Ejemplos Prácticos
### Obtener transcript de un video en vivo
```bash
./get_transcript_chrome.sh VIDEO_ID_EN_VIVO es chrome
```
### Obtener en múltiples idiomas
```bash
# Español
./get_transcript_chrome.sh VIDEO_ID es chrome
# Inglés
./get_transcript_chrome.sh VIDEO_ID en chrome
# Español (variantes latinoamericanas)
yt-dlp --cookies-from-browser chrome \
--skip-download --write-auto-sub \
--sub-lang "es,es-419,es-MX" --sub-format vtt \
-o "%(id)s.%(ext)s" \
"https://www.youtube.com/watch?v=VIDEO_ID"
```
### Convertir VTT a texto plano
```bash
# Usando grep (rápido)
grep -v "WEBVTT" VIDEO_ID.es.vtt | grep -v "^$" | grep -v "^[0-9][0-9]:" > transcript.txt
# Usando el script de Python del proyecto
python3 << 'EOF'
from main import parse_subtitle_format
with open('VIDEO_ID.es.vtt', 'r') as f:
vtt = f.read()
segments = parse_subtitle_format(vtt, 'vtt')
text = '\n'.join([s['text'] for s in segments])
print(text)
EOF
```
---
## 🔗 Integración con la API
Una vez que obtengas el archivo VTT, puedes subirlo al API:
```bash
curl -X POST "http://127.0.0.1:8000/upload_vtt/VIDEO_ID" \
-F "file=@VIDEO_ID.es.vtt" | jq .
```
La API te devolverá:
- `segments`: Array de segmentos parseados con timestamps
- `text`: Texto concatenado completo
- `count`: Número de segmentos
---
## 🎯 Resumen: ¿Qué método usar?
| Situación | Método Recomendado |
|-----------|-------------------|
| **Uso diario, varios videos** | Script `get_transcript_chrome.sh` |
| **Comando rápido, un video** | `yt-dlp --cookies-from-browser chrome ...` |
| **Tienes HTTP 429** | Usar Tor/VPN + cookies desde Chrome |
| **No puedes ejecutar comandos** | Subir VTT manualmente al API |
---
## 📞 Ayuda Adicional
Ver documentación completa: `SOLUCION_HTTP_429_TRANSCRIPT.md`
**Comando de ayuda del script:**
```bash
./get_transcript_chrome.sh
```
---
**Última actualización**: 2025-02-22