使用 Gemini 摘要本機影片檔案

這個範例示範如何使用 Gemini 摘要本機影片檔案。

程式碼範例

Java

在試用這個範例之前,請先按照Java使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Java API 參考說明文件

如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。


import com.google.genai.Client;
import com.google.genai.types.Content;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.HttpOptions;
import com.google.genai.types.Part;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class TextGenerationWithLocalVideo {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String modelId = "gemini-2.5-flash";
    generateContent(modelId);
  }

  // Generates text with local video input
  public static String generateContent(String modelId) throws IOException {
    // Client Initialization. Once created, it can be reused for multiple requests.
    try (Client client =
        Client.builder()
            .location("global")
            .vertexAI(true)
            .httpOptions(HttpOptions.builder().apiVersion("v1").build())
            .build()) {

      // Read content from the local video.
      byte[] videoData = Files.readAllBytes(Paths.get("resources/describe_video_content.mp4"));

      GenerateContentResponse response =
          client.models.generateContent(
              modelId,
              Content.fromParts(
                  Part.fromBytes(videoData, "video/mp4"),
                  Part.fromText("Write a short and engaging blog post based on this video.")),
              null);

      System.out.print(response.text());
      // Example response:
      // More Than Just a Climb: Finding Your Flow on the Wall
      // There's something captivating about watching a climber in their element. This short clip
      // offers a perfect glimpse into the focused world of indoor climbing, where precision meets
      // power...
      return response.text();
    }
  }
}

Node.js

在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Node.js API 參考說明文件

如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

const {GoogleGenAI} = require('@google/genai');
const fs = require('fs');

const GOOGLE_CLOUD_PROJECT = process.env.GOOGLE_CLOUD_PROJECT;
const GOOGLE_CLOUD_LOCATION = process.env.GOOGLE_CLOUD_LOCATION || 'global';

async function generateText(
  projectId = GOOGLE_CLOUD_PROJECT,
  location = GOOGLE_CLOUD_LOCATION
) {
  const client = new GoogleGenAI({
    vertexai: true,
    project: projectId,
    location: location,
  });

  const videoContent = fs.readFileSync('test-data/describe_video_content.mp4');

  const response = await client.models.generateContent({
    model: 'gemini-2.5-flash',
    contents: [
      {text: 'hello-world'},
      {
        inlineData: {
          data: videoContent.toString('base64'),
          mimeType: 'video/mp4',
        },
      },
      {text: 'Write a short and engaging blog post based on this video.'},
    ],
  });

  console.log(response.text);

  // Example response:
  // Okay, here's a short and engaging blog post based on the climbing video:
  // **Title: Conquering the Wall: A Glimpse into the World of Indoor Climbing**
  // ...

  return response.text;
}

Python

在試用這個範例之前,請先按照Python使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Python API 參考說明文件

如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。

from google import genai
from google.genai.types import HttpOptions, Part

client = genai.Client(http_options=HttpOptions(api_version="v1"))
model_id = "gemini-2.5-flash"

# Read local video file content
with open("test_data/describe_video_content.mp4", "rb") as fp:
    # Video source: https://storage.googleapis.com/cloud-samples-data/generative-ai/video/describe_video_content.mp4
    video_content = fp.read()

response = client.models.generate_content(
    model=model_id,
    contents=[
        Part.from_text(text="hello-world"),
        Part.from_bytes(data=video_content, mime_type="video/mp4"),
        "Write a short and engaging blog post based on this video.",
    ],
)

print(response.text)
# Example response:
# Okay, here's a short and engaging blog post based on the climbing video:
# **Title: Conquering the Wall: A Glimpse into the World of Indoor Climbing**
# ...

後續步驟

如要搜尋及篩選其他 Google Cloud 產品的程式碼範例,請參閱Google Cloud 範例瀏覽器