Cómo resumir videos de YouTube

En este instructivo, se muestra cómo compilar una aplicación de conversación que les permita a los usuarios resumir videos de YouTube y chatear sobre su contenido con lenguaje natural.

  1. Configura tu proyecto
  2. Importa las dependencias requeridas
  3. Configura Genkit y el modelo predeterminado
  4. Obtén la URL del video desde la línea de comandos
  5. Configura la instrucción
  6. Genera la respuesta
  7. Ejecuta la app

Requisitos previos

Antes de comenzar a trabajar, debes configurar los siguientes requisitos previos:

Pasos de implementación

Después de configurar las dependencias, puedes compilar el proyecto.

1. Configura tu proyecto

  1. Crea una estructura de directorio y un archivo para almacenar tu código fuente.

    $ mkdir -p summarize-a-video/src && \
    cd summarize-a-video && \
    touch src/index.ts
    
  2. Inicializa un nuevo proyecto de TypeScript.

    $ npm init -y
    
  3. Instala las siguientes dependencias de Genkit para usar Genkit en tu proyecto:

    $ npm i genkit @genkit-ai/googleai
    
    • genkit proporciona las funciones principales de Genkit.
    • @genkit-ai/googleai proporciona acceso a los modelos de Google AI Gemini.
  4. Obtén y configura la clave de API de tu modelo

    Para usar la API de Gemini, que se usa en este instructivo, primero debes configurar una clave de API. Si aún no tienes una, crea una clave en Google AI Studio.

    La API de Gemini ofrece un nivel generoso sin costo y no requiere una tarjeta de crédito para comenzar.

    Después de crear tu clave de API, establece la variable de entorno GEMINI_API_KEY como tu clave con el siguiente comando:

    $ export GEMINI_API_KEY=<your API key>
    

2. Importa las dependencias requeridas

En el archivo index.ts que creaste, agrega las siguientes líneas para importar las dependencias necesarias para este proyecto:

import { gemini, googleAI } from '@genkit-ai/googleai';
import { genkit } from 'genkit';
  • La primera línea importa el complemento googleAI y la función del cargador de modelos gemini desde el paquete @genkit-ai/googleai, lo que permite el acceso a los modelos de Gemini de Google.

3. Configura Genkit y el modelo predeterminado

Agrega las siguientes líneas para configurar Genkit y establecer Gemini 2.0 Flash como el modelo predeterminado.

const ai = genkit({
  plugins: [googleAI()],
  model: gemini('gemini-2.0-flash'),
});

Luego, puedes agregar un esqueleto para el código y el manejo de errores.

(async () => {
  try {
    // Step 1: get command line arguments

    // Step 2: construct prompt

    // Step 3: process video

  } catch (error) {
    console.error("Error processing video:", error);
  }
})(); // <-- don't forget the trailing parentheses to call the function!

4. Analiza la línea de comandos y obtén la URL del video

Agrega código para leer la URL del video que se pasó desde la línea de comandos.

  // Step 1: get command line arguments
  const videoURL = process.argv[2];
  if (!videoURL) {
    console.error("Please provide a video URL as a command line argument.");
    process.exit(1);
  }

5. Configura la instrucción

Agrega código para configurar la instrucción:

  // Step 2: construct prompt
  const prompt = process.argv[3] || "Please summarize the following video:";
  • Esta declaración const define un mensaje predeterminado si el usuario no pasa uno propio desde la línea de comandos.

6. Genera la respuesta

Agrega el siguiente código para pasar una instrucción multimodal al modelo:

  // Step 3: process video
  const { text } = await ai.generate({
    prompt: [
      { text: prompt },
      { media: { url: videoURL, contentType: "video/mp4" } }
    ],
  });
  console.log(text);

Este fragmento de código llama al método ai.generate para enviar una instrucción multimodal al modelo. La consigna consta de dos partes:

  • { text: prompt }: Es la instrucción de texto que definiste antes.
  • { media: { url: videoURL, contentType: "video/mp4" } }: Es la URL del video que proporcionaste como argumento de línea de comandos. contentType se establece en video/mp4 para indicar que la URL apunta a un archivo de video MP4.

El método ai.generate muestra un objeto que contiene el texto generado, que luego se registra en la consola.

7. Ejecuta la app

Para ejecutar la app, abre la terminal en la carpeta raíz de tu proyecto y, luego, ejecuta el siguiente comando:

npx tsx src/index.ts https://www.youtube.com/watch\?v\=YUgXJkNqH9Q

Después de un momento, aparecerá un resumen del video que proporcionaste.

También puedes pasar otras instrucciones. Por ejemplo:

npx tsx src/index.ts https://www.youtube.com/watch\?v\=YUgXJkNqH9Q "Transcribe this video"