219 lines
5.1 KiB
Markdown
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
|