TubeScript-API/GUIA_CHROME_TRANSCRIPTS.md

5.1 KiB

🎯 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

./get_transcript_chrome.sh VIDEO_ID

Ejemplos:

# 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

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

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:

ls -la ~/Library/Application\ Support/Google/Chrome/

Linux:

ls -la ~/.config/google-chrome/

Windows:

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.

# 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):
# 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"
  1. Espera unas horas y vuelve a intentar
  2. 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

./get_transcript_chrome.sh VIDEO_ID_EN_VIVO es chrome

Obtener en múltiples idiomas

# 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

# 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:

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:

./get_transcript_chrome.sh

Última actualización: 2025-02-22