Agente IA para insights de entrevistas en video con Whisper y GPT-4

por | julio 5, 2026
A modern, minimal desk setup with a laptop open showing Python code, next to a professional video camera, a pair of studio headphones, and a smartphone displaying a video interview. Soft natural light

Imagina esto: tienes una pila de entrevistas en video, cada una de una hora, y necesitas extraer los puntos clave, el tono emocional y las decisiones mencionadas. Hacerlo a mano es agotador, y además se te pueden escapar detalles. ¿Y si pudieras delegar todo eso en un sistema automático? Pues bien, eso es justo lo que vamos a construir hoy: un agente de IA que toma tus videos de entrevistas, los transcribe con Whisper, analiza el texto con GPT-4 y genera un informe limpio en Google Docs. Todo con Python y un toque de automatización.

No necesitas ser un experto en IA; con APIs y un poco de código, tendrás tu propio asistente. Vamos paso a paso, con ejemplos que puedes copiar y pegar (ajustando claves, claro). Al final, hasta te cuento cómo dejar esto corriendo solo con un cron job, para que mientras duermes, los informes se cocinen.

Lo que necesitas antes de empezar

Un breve checklist:

Agente IA para insights de entrevistas en video con Whisper y GPT-4
  • Python 3.8 o superior instalado.
  • Una cuenta de OpenAI con acceso a la API (necesitarás una API key).
  • Un proyecto en Google Cloud con la API de Google Docs y Google Drive habilitadas, y un archivo de credenciales de servicio.
  • FFmpeg en tu sistema (para extraer el audio del video).
  • Unas cuantas librerías: openai, moviepy, google-auth, google-api-python-client. Las instalas con pip.

Si ya has jugado con alguna API de OpenAI, esto te resultará familiar. Si no, no pasa nada, te llevo de la mano.

De video a texto: extracción de audio y transcripción con Whisper

Lo primero es convertir ese .mp4 (o el formato que uses) en un archivo de audio que Whisper pueda procesar. MoviePy lo hace fácil:

from moviepy.video.io.VideoFileClip import VideoFileClip

def extraer_audio(video_path, audio_path):
    video = VideoFileClip(video_path)
    video.audio.write_audiofile(audio_path)
    video.close()

Extraemos el audio en, por ejemplo, entrevista.wav. Ahora viene la magia de Whisper. Usamos la API de OpenAI (también podrías correr Whisper local, pero con la API es más rápido y no requiere GPU). Enviamos el audio y obtenemos la transcripción:

import openai

openai.api_key = 'tu-api-key'

def transcribir(audio_path):
    with open(audio_path, 'rb') as f:
        transcript = openai.Audio.transcribe('whisper-1', f)
    return transcript['text']

Whisper maneja varios idiomas; para español suele ir muy bien. El resultado es un bloque de texto con todo lo dicho, a veces con una precisión sorprendente. Guarda esa transcripción, porque ahora viene el análisis fino.

Cuando el texto habla: extracción de insights con GPT-4

Tener la transcripción es un primer paso, pero lo jugoso está en interpretarla. Queremos que el agente identifique: los temas principales de la conversación, el sentimiento general (positivo, neutro, negativo), decisiones explícitas o implícitas, y quizás puntos de acción. GPT-4 es ideal para esto si le das un buen prompt.

Dividimos la transcripción en fragmentos si es muy larga (para no pasarnos del límite de tokens) y vamos analizando por partes. Luego combinamos los resultados. Aquí un ejemplo de función que envía un fragmento a GPT-4 y le pide un resumen estructurado:

def analizar_fragmento(texto):
    response = openai.ChatCompletion.create(
        model='gpt-4',
        messages=[
            {'role': 'system', 'content': 'Eres un analista experto en entrevistas. Extrae los temas clave, el sentimiento predominante, decisiones mencionadas y cualquier compromiso o tarea pendiente. Devuelve la información en formato JSON con las claves: temas (lista), sentimiento (cadena), decisiones (lista), tareas (lista).'},
            {'role': 'user', 'content': texto}
        ],
        temperature=0.2
    )
    return response['choices'][0]['message']['content']

Luego iteramos sobre todos los fragmentos y unificamos con otro llamado a GPT-4. Así garantizamos un análisis consolidado. El temperature bajo evita alucinaciones. El resultado es un JSON que podemos manipular fácilmente.

El informe cobra vida en Google Docs

Ya tenemos los datos crudos. Ahora queremos un informe profesional que alguien pueda leer (o guardar) sin marearse. Google Docs es perfecto: accesible, editable y fácil de automatizar. Usaremos la API de Google para crear un documento y escribir en él. Primero, autenticación con la cuenta de servicio:

from google.oauth2 import service_account
from googleapiclient.discovery import build

SCOPES = ['https://www.googleapis.com/auth/documents']
creds = service_account.Credentials.from_service_account_file('ruta/credenciales.json', scopes=SCOPES)
service = build('docs', 'v1', credentials=creds)

Luego, creamos un documento vacío y vamos insertando texto con estilo. Por ejemplo, título, resumen ejecutivo, temas detectados, sentimiento, decisiones y tareas. La API permite dar formato (negritas, listas, etc.). Un helper sencillo para insertar texto en una posición:

def insertar_texto(doc_id, texto, estilo=None):
    requests = [{'insertText': {'location': {'index': 1}, 'text': texto}}]
    if estilo:
        requests[0]['insertText']['text'] = {'text': texto, 'textStyle': estilo}
    service.documents().batchUpdate(documentId=doc_id, body={'requests': requests}).execute()

Vamos construyendo el informe paso a paso. Al final, obtenemos la URL del documento para compartir. Incluso podrías convertirlo a PDF con la API de Drive si hiciera falta.

Uniendo todo: el script completo

Integremos las piezas en un solo script que tome un video, haga la magia y escupa un informe. El flujo sería:

  1. Obtener audio del video.
  2. Transcribir con Whisper.
  3. Dividir transcripción en chunks de, digamos, 1500 tokens.
  4. Analizar cada chunk y luego unificar.
  5. Crear Google Doc y rellenar con el análisis.

No voy a pegar el script entero aquí (son unas 150 líneas), pero la lógica es clara. Solo un detalle: para los chunks, usa tiktoken si quieres precisión, o simplemente cortes por párrafos. Maneja bien las excepciones de API, que a veces falla.

Cron: el agente que trabaja por ti

Ya tienes el script, pero lo ideal es que se ejecute automágicamente. Supón que dejas los videos en una carpeta compartida o los subes a un drive. Con un cron job, cada hora (o cuando quieras) revisa si hay videos nuevos y lanza el proceso. En Linux/macOS, editas el crontab con crontab -e y añades una línea como:

0 * * * * /usr/bin/python3 /ruta/agente_entrevistas.py

Ajusta la ruta al intérprete y al script. Si usas Windows, puedes hacerlo con el Programador de Tareas. También podrías empaquetarlo con Docker y hacerlo más portable. Un pequeño tip: añade logs para saber si algo falla (un try-except que escriba a un archivo de log).

Con esto, cada mañana podrías encontrar informes listos en tu Google Drive sin mover un dedo. Y el tiempo que ahorras, dedícalo a lo que la IA aún no puede hacer: las decisiones humanas.

Construir este agente no es ciencia de cohetes, pero sí un paso enorme hacia la automatización inteligente. Así que ya sabes: prueba, itera y, sobre todo, adapta los prompts a tu contexto específico. Porque una entrevista de trabajo no es lo mismo que una sesión de feedback de clientes, y tu agente puede ser tan listo como le enseñes.