Resumir vídeos do YouTube

Este tutorial demonstra como criar um aplicativo de conversação que permite que os usuários resumam vídeos do YouTube e conversem sobre o conteúdo usando linguagem natural.

  1. Configurar o projeto
  2. Importar as dependências necessárias
  3. Configurar o Genkit e o modelo padrão
  4. Receber o URL do vídeo na linha de comando
  5. Configurar o comando
  6. Gerar a resposta
  7. Executar o aplicativo

Pré-requisitos

Antes de começar a trabalhar, você precisa configurar estes pré-requisitos:

Etapas de implementação

Depois de configurar as dependências, você pode criar o projeto.

1. Criar o projeto

  1. Crie uma estrutura de diretórios e um arquivo para armazenar seu código-fonte.

    $ mkdir -p summarize-a-video/src && \
    cd summarize-a-video && \
    touch src/index.ts
    
  2. Inicie um novo projeto do TypeScript.

    $ npm init -y
    
  3. Para usar o Genkit no seu projeto, instale as seguintes dependências:

    $ npm i genkit @genkit-ai/googleai
    
    • genkit oferece os recursos principais do Genkit.
    • @genkit-ai/googleai oferece acesso aos modelos de IA Gemini do Google.
  4. Receber e configurar a chave de API do modelo

    Para usar a API Gemini, que é usada neste tutorial, primeiro é necessário configurar uma chave de API. Se ainda não tiver, crie uma chave no Google AI Studio.

    A API Gemini oferece um nível sem custo financeiro generoso e não exige um cartão de crédito para começar.

    Depois de criar a chave de API, defina a variável de ambiente GEMINI_API_KEY para sua chave com o seguinte comando:

    $ export GEMINI_API_KEY=<your API key>
    

2. Importar as dependências necessárias

No arquivo index.ts que você criou, adicione as seguintes linhas para importar as dependências necessárias para este projeto:

import { gemini, googleAI } from '@genkit-ai/googleai';
import { genkit } from 'genkit';
  • A primeira linha importa o plug-in googleAI e a função de carregador de modelos gemini do pacote @genkit-ai/googleai, permitindo o acesso aos modelos Gemini do Google.

3. Configurar o Genkit e o modelo padrão

Adicione as linhas abaixo para configurar o Genkit e definir o Gemini 2.0 Flash como o modelo padrão.

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

Em seguida, adicione um esqueleto para o código e o tratamento de erros.

(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. Analisar a linha de comando e receber o URL do vídeo

Adicione o código para ler o URL do vídeo transmitido pela linha de comando.

  // 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. Configurar o comando

Adicione um código para configurar o comando:

  // Step 2: construct prompt
  const prompt = process.argv[3] || "Please summarize the following video:";
  • Essa declaração const define uma solicitação padrão se o usuário não transmitir uma própria na linha de comando.

6. Gerar a resposta

Adicione o código abaixo para transmitir um comando multimodal ao modelo:

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

Este snippet de código chama o método ai.generate para enviar um comando multimodal ao modelo. A solicitação consiste em duas partes:

  • { text: prompt }: é o comando de texto que você definiu anteriormente.
  • { media: { url: videoURL, contentType: "video/mp4" } }: é o URL do vídeo que você forneceu como um argumento de linha de comando. O contentType é definido como video/mp4 para indicar que o URL aponta para um arquivo de vídeo MP4.

O método ai.generate retorna um objeto que contém o texto gerado, que é registrado no console.

7. Execute o aplicativo

Para executar o app, abra o terminal na pasta raiz do projeto e execute o seguinte comando:

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

Depois de um momento, um resumo do vídeo enviado vai aparecer.

Você também pode transmitir outras solicitações. Exemplo:

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