#!/bin/bash # Script para obtener transcripts de YouTube usando cookies desde Chrome/Firefox directamente # Uso: ./get_transcript_chrome.sh VIDEO_ID [LANG] [BROWSER] [PROFILE] VIDEO_ID="${1}" LANG="${2:-es}" BROWSER="${3:-chrome}" PROFILE="${4:-}" if [ -z "$VIDEO_ID" ]; then echo "❌ Error: Debes proporcionar un VIDEO_ID" echo "" echo "Uso: $0 VIDEO_ID [LANG] [BROWSER] [PROFILE]" echo "" echo "Ejemplos:" echo " $0 K08TM4OVLyo" echo " $0 K08TM4OVLyo es chrome" echo " $0 K08TM4OVLyo es chrome:Profile1" echo " $0 K08TM4OVLyo es firefox" echo " $0 K08TM4OVLyo es brave" echo "" echo "Perfiles disponibles de Chrome (macOS):" ls -1 ~/Library/Application\ Support/Google/Chrome/ 2>/dev/null | grep -E "^(Default|Profile)" || echo " (no se encontraron)" exit 1 fi # Construir el argumento de browser if [ -n "$PROFILE" ]; then BROWSER_ARG="${BROWSER}:${PROFILE}" else BROWSER_ARG="${BROWSER}" fi echo "πŸ” Obteniendo transcript de YouTube" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo " πŸ“Ή Video ID: $VIDEO_ID" echo " 🌐 Idioma: $LANG" echo " πŸ”‘ Navegador: $BROWSER_ARG" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # Ejecutar yt-dlp yt-dlp --cookies-from-browser "$BROWSER_ARG" \ --skip-download --write-auto-sub --write-sub \ --sub-lang "$LANG" --sub-format vtt \ -o "%(id)s.%(ext)s" \ "https://www.youtube.com/watch?v=$VIDEO_ID" EXIT_CODE=$? echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" # Buscar archivos VTT generados VTT_FILES=$(ls ${VIDEO_ID}*.vtt 2>/dev/null) if [ -n "$VTT_FILES" ]; then echo "βœ… Γ‰xito: Archivos VTT generados" echo "" for file in $VTT_FILES; do LINES=$(wc -l < "$file") SIZE=$(du -h "$file" | cut -f1) echo " πŸ“„ $file ($LINES lΓ­neas, $SIZE)" done # Mostrar preview del primer archivo FIRST_VTT=$(echo "$VTT_FILES" | head -n 1) echo "" echo "πŸ“ Preview de $FIRST_VTT:" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" head -n 30 "$FIRST_VTT" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" # Crear archivo de texto plano TXT_FILE="${VIDEO_ID}_transcript.txt" grep -v "WEBVTT" "$FIRST_VTT" | grep -v "^$" | grep -v "^[0-9][0-9]:" | grep -v "^Kind:" | grep -v "^Language:" > "$TXT_FILE" echo "" echo "πŸ’Ύ Texto guardado en: $TXT_FILE" exit 0 else echo "❌ Error: No se generaron archivos VTT" echo "" echo "πŸ’‘ Posibles soluciones:" echo " 1. Verifica que estΓ©s logueado en YouTube en $BROWSER" echo " 2. Prueba con otro navegador: chrome, firefox, brave" echo " 3. Si usas mΓΊltiples perfiles, especifica el perfil:" echo " $0 $VIDEO_ID $LANG chrome Profile1" echo " 4. Cierra el navegador antes de ejecutar este script" echo "" exit 1 fi