Анализ видео: определяем, что в ролике

Урок 3 из 80 курса «Gemini API: примеры использования»: официальный курс Gemini API Cookbook (Гугл Джемини) на русском языке. Этот урок бесплатный.

Авторское право 2026 Google LLC.
# @title Лицензировано в соответствии с лицензией Apache, версия 2.0 ("Лицензия");
# вы не можете использовать этот файл, за исключением случаев соблюдения Лицензии.
# Вы можете получить копию Лицензии по адресу
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Если иное не предусмотрено применимым законодательством или не согласовано в письменной форме, программное обеспечение
# распространяется по Лицензии на условиях "КАК ЕСТЬ",
# БЕЗ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых.
# См. Лицензию для получения информации о конкретных разрешениях и
# ограничениях в соответствии с Лицензией.

Gemini API: Анализ видео – Классификация

Этот notebook использует мультимодальные возможности модели Gemini для классификации видов животных, показанных в видео.

%pip install -U -q "google-genai>=2.9.0"

Настройте ваш API key

Чтобы запустить следующую cell, ваш API key должен быть сохранен в Colab Secret с именем GEMINI_API_KEY. Если у вас еще нет API key или вы не знаете, как создать Colab Secret, см. Authentication для примера.

from google.colab import userdata
from google import genai

API_KEY = userdata.get('GEMINI_API_KEY')
client = genai.Client(api_key=API_KEY)

Пример

В этом примере используется видео, опубликованное Брайаном Эвансом, содержащее американского черного медведя.

Видео распространяется под лицензией Creative Commons Attribution 3.0 Unported.

# Скачиваем видео
path = "black_bear.webm"
url = "https://upload.wikimedia.org/wikipedia/commons/8/81/American_black_bears_%28Ursus_americanus%29.webm"
!wget $url -O $path
--2025-03-04 13:24:57--  https://upload.wikimedia.org/wikipedia/commons/8/81/American_black_bears_%28Ursus_americanus%29.webm
Resolving upload.wikimedia.org (upload.wikimedia.org)... 198.35.26.112, 2620:0:863:ed1a::2:b
Connecting to upload.wikimedia.org (upload.wikimedia.org)|198.35.26.112|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45046409 (43M) [video/webm]
Saving to: ‘black_bear.webm’

black_bear.webm     100%[===================>]  42.96M  27.5MB/s    in 1.6s    

2025-03-04 13:24:58 (27.5 MB/s) - ‘black_bear.webm’ saved [45046409/45046409]

Загрузите файл с помощью File API, чтобы упростить его передачу модели в дальнейшем.

# Загружаем видео
video_file = client.files.upload(file=path)
import time
# Ждем, пока загруженное видео станет доступным
while video_file.state.name == "PROCESSING":
  print('.', end='')
  time.sleep(5)
  video_file = client.files.get(name=video_file.name)

if video_file.state.name == "FAILED":
  raise ValueError(video_file.state.name)
..

Чтобы продемонстрировать содержимое видео, отобразите первый кадр:

import cv2
import matplotlib.pyplot as plt

cap = cv2.VideoCapture(path)
_, frame = cap.read()

frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

# Отображаем с помощью matplotlib
plt.imshow(frame_rgb)
plt.axis('off')
plt.show()

# закрываем видеофайл
cap.release()
<Figure size 640x480 with 1 Axes>

Загруженное видео готово к анализу. Сформированный prompt инструктирует модель классифицировать животных в видео, а также предоставлять их английские и латинские названия.

system_prompt = """
Вы зоолог, чья задача — называть животных в видео.
Вы всегда должны предоставлять английское и латинское название.
"""
from google.genai import types

MODEL_ID = "gemini-3.7-flash" # @param ["gemini-3.1-pro-preview", "gemini-3.7-flash", "gemini-3.5-flash-lite", "gemini-2.5-pro"] {"allow-input":true, isTemplate: true}response = client.models.generate_content(
    model=f"models/{MODEL_ID}",
    contents=[
        "Пожалуйста, определите животное(ых) в этом видео",
        video_file
        ],
    config=types.GenerateContentConfig(
        system_instruction=system_prompt,
        ),
    )
print(response.text)
Хорошо! Вот животные в видео.

- Американский черный медведь (Ursus americanus)

Надеюсь, это поможет!

Как вы можете видеть, модель точно назвала животное и предоставила правильное латинское название.

Вы можете удалить видео, чтобы предотвратить ненужное хранение данных.

# Удаляем видео
client.files.delete(name=video_file.name)
DeleteFileResponse()

Резюме

Теперь вы знаете, как можно использовать prompt с моделями Gemini для видео и применять их для классификации видов животных.

Этот notebook демонстрирует лишь один из множества вариантов использования. Ознакомьтесь с Video understanding notebook для получения дополнительных примеров использования Gemini API с видео.

Полезные гиды