← Ruta Perico
Etapa 02

Encontrar las fuentes antes de escribir el scraper

Llano Publicada Investigación
02

Casi no hay código aquí, y aun así es donde se decide el resultado. En un proyecto RAG, el corpus es el producto: un pipeline impecable sobre un corpus pobre da una app que repite las mismas cuatro frases y aburre a la segunda visita.

La regla: averigua cuánto material hay antes de construir nada. Es media hora que te ahorra rehacer el proyecto entero.

Primer instinto, y por qué falla

Lo natural es buscar páginas de citas — «las mejores frases de X». Existen, se scrapean fácil, y tienen un techo bajísimo: entre 30 y 100 frases cada una, y se copian entre sí. Todas juntas no pasan de unos cientos, la mayoría duplicados.

Dónde está el volumen de verdad

En los subtítulos automáticos de YouTube. La herramienta es yt-dlp, y lo bueno es que baja solo el texto — nunca el vídeo. El formato que le pedimos, .vtt, es el estándar de subtítulos de la web: texto plano con una marca de tiempo delante de cada línea.

terminal
brew install yt-dlp

# ¿tiene subtitulos en español?
yt-dlp --list-subs "https://www.youtube.com/watch?v=1dNftj7NZRk"

# bajar solo el .vtt, sin tocar el video
yt-dlp --write-auto-subs --skip-download \
       --sub-lang es --sub-format vtt \
       "https://www.youtube.com/watch?v=1dNftj7NZRk"

Estas son las cifras reales que dieron las fuentes que probamos. La última columna, la densidad, es qué proporción de esas palabras suena de verdad a él — porque bajar mucho texto y que casi nada valga es el resultado más habitual. Es la columna que decide, y en la etapa 3 la medimos en serio en vez de estimarla:

FuenteDuraciónPalabrasDensidad
Podcast El Pinganillo #28
1dNftj7NZRk108 min20.004Muy alta
Entrevista en Late Motiv
D0AcsBquY0U16 min2.615Alta
Recopilatorio de retransmisiones
pNKQzSTRK2U9 min1.503Baja
Página de citas recopiladas~600Alta, pero se agota

Un solo podcast rinde treinta veces más que un recopilatorio de vídeo, y él habla casi todo el rato. Cinco o seis vídeos así superan el objetivo de miles de frases.

La sorpresa: los recopilatorios de fans no sirven

Parecía el filón — vídeos tipo «las perlas de Perico», ya curados por aficionados. Pero están curados por momentos de ciclismo, no por su forma de hablar. Esto es lo que salió del recopilatorio:

«Cambia el ritmo Armstrong. Quiere reaccionar también Alejandro Valverde. Vamos a ver si puede cogerle la rueda. Lo está consiguiendo. Fantástico Valverde.»

Recopilatorio de retransmisiones — narración deportiva normal

Correcto, pero no tiene estilo. Ahora el podcast, mismo método de extracción:

«…ostras que yo tenía unas condiciones para la bicicleta. Yo, del hecho de un chico de Segovia ir a Madrid o ir a Valladolid, era ese gran día. […] Trato de reírme de mí mismo para no cortarme las venas, para no ponerme de una mala leche.»

El Pinganillo #28 — Perico sin diluir
Lección transferible

Antes de dar por buena una fuente, extrae una muestra y léela. «Recopilatorio de las mejores frases» sonaba a oro y era narración deportiva. Diez minutos de comprobación evitan semanas construyendo sobre material equivocado.

Tres limitaciones de los subtítulos automáticos

  1. No dicen quién habla. En un podcast donde él lleva el 70% del tiempo, un LLM puede separarlo por contexto. En una retransmisión el reparto es 50/50 con el otro comentarista y el riesgo de meter frases ajenas en el corpus es alto. Es la razón principal para priorizar podcasts.
  2. La calidad depende de la antigüedad del vídeo. Los recientes traen puntuación y mayúsculas; los antiguos son un chorro continuo en minúscula. Ambos sirven, el segundo da más trabajo.
  3. YouTube censura los tacos, que salen como [ __ ]. Pierdes parte del registro coloquial y no hay arreglo desde esta fuente.

Los nombres propios salen destrozados — Armstrong aparece como «Amstrong» y «Lamstron» — pero para extraer estilo da igual.

Lo que decidimos no scrapear

Forocoches tiene Cloudflare delante, muchos hilos piden login y sus condiciones de uso prohíben el scraping automatizado. Coste alto, botín pequeño y ya duplicado en otras fuentes. Si aparece un hilo que merezca la pena, se copia a mano al mismo formato JSONL — un objeto JSON por línea, que montamos en la etapa 4. Para cuarenta frases, esa es la herramienta correcta.

Ciclo de vida del corpus

Esto no es un pipeline recurrente. Perico lleva treinta años hablando igual: no seguimos un feed de noticias, capturamos un estilo estable. Cada Tour nuevo aportará un 3-5% más de frases y ningún cambio de estilo. Recarga manual anual, nada de cron.

El riesgo real es que las fuentes desaparecen. Por eso se archiva el texto crudo en cuanto se extrae, y por eso la lista de fuentes vive en un sources.json y no en el código: añadir material el próximo julio será añadir líneas a un fichero.