Genera podcasts (método de API)

Gemini Enterprise ofrece una API que te permite generar podcasts basados en documentos de origen. El resultado es muy similar a los podcasts que los usuarios finales pueden generar desde sus notebooks.

La generación de podcasts a través de la API es ideal para trabajos por lotes en los que puedes tener decenas o cientos de libros, artículos o cursos, y quieres generar un podcast para cada uno.

La API de Podcast es una API independiente. Es decir, no necesitas un notebook de Gemini Notebook Enterprise, una licencia de Gemini Enterprise ni un almacén de datos. Solo necesitas un proyecto de Google Cloud habilitado y el rol de usuario de la API de Podcast.

Entradas

La entrada para la API es un array de elementos context. Este es el material de referencia a partir del cual se genera el podcast. La entrada puede ser en forma de texto, imágenes, audio y video. El contenido total del array de contexto debe ser inferior a 100,000 tokens.

Para obtener una lista de los tipos compatibles, consulta las especificaciones técnicas de las imágenes, los documentos, los videos y los audios en esta página sobre Gemini 2.5 Flash.

Salida

El resultado de la API es el podcast, en formato MP3.

Antes de comenzar

Antes de poder generar un podcast con la API, debes tener lo siguiente:

Generar un podcast a partir de una entrada de contexto

Usa el siguiente comando para generar un podcast llamando al método podcast.

La entrada es un array de objetos multimedia, como texto, imágenes y clips de audio y video.

REST

Para generar y exportar un podcast, sigue estos pasos:

  1. Ejecuta el siguiente comando curl:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/podcasts" \
      -d '{
          "podcastConfig": {
            "focus": "FOCUS",
            "length": "LENGTH",
            "languageCode": "LANGUAGE_CODE"
          },
          "contexts": [
            {
              "text": "TEXT_CONTENT"
            },
            {
              "inlineData": {
                "mimeType": "MIME_TYPE",
                "data": "BASE64_ENCODED_DATA"
              }
            }
          ],
          "title": "PODCAST_TITLE",
          "description": "PODCAST_DESCRIPTION"
      }'
    

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID de tu proyecto.
    • FOCUS: Es una instrucción en la que sugieres el enfoque del podcast.
    • LENGTH: Hay dos opciones:
      • SHORT (por lo general, de 4 a 5 minutos)
      • STANDARD (por lo general, alrededor de 10 minutos, pero puede ser menos con conjuntos de datos más pequeños)
    • LANGUAGE_CODE: es opcional. Especifica el código de idioma del podcast. Usa las etiquetas de idioma definidas por BCP47. Si no se proporciona el código de idioma, el podcast se genera en inglés.
    • TEXT_CONTENT: Es el contenido de texto que se incluirá.
    • inlineData: Es un objeto para contenido multimedia que no es de texto.
    • MIME_TYPE: Es el tipo de MIME de los datos del BLOB (por ejemplo, "image/png").
    • BASE64_ENCODED_DATA: Son los bytes sin procesar codificados en base64 de los datos de medios.
    • PODCAST_TITLE: Es un título para el podcast. Esto puede ser para uso interno, o puedes elegir mostrarlo a tus usuarios finales.
    • PODCAST_DESCRIPTION: Es una descripción del podcast. Esto puede ser para uso interno, o puedes elegir mostrarlo a tus usuarios finales.

    La generación de un podcast tarda unos minutos.

  2. Toma nota del nombre de la operación, ya que lo necesitarás para descargar el podcast en el paso 4. En el ejemplo anterior, el nombre de la operación es projects/123456/locations/global/operations/create-podcast-54321.

  3. Es opcional. Sondea el estado de la operación de creación del podcast. Consulta Obtén detalles sobre una operación de larga duración.

  4. Una vez que finalice la operación, ejecuta el siguiente comando curl para descargar el podcast:

    curl -v \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://discoveryengine.googleapis.com/v1/OPERATION_NAME:download?alt=media" \
      --output FILENAME.mp3 -L
    

    Reemplaza lo siguiente:

    • OPERATION_NAME: Es el nombre de la operación que anotaste en el paso 2.
    • FILENAME: Es un nombre de archivo para el podcast.

    Este comando descarga el podcast en un archivo MP3 en tu directorio local.

Cumplimiento

La API de podcasts no cumple con las claves de encriptación administradas por el cliente, CMEK para Gemini Enterprise.