1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "UvTPRErEO2cl"
},
"source": [
"##### Copyright 2025 Google LLC."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"cellView": "form",
"id": "LCJL7_hQO3jW"
},
"outputs": [],
"source": [
"# @title Licensed under the Apache License, Version 2.0 (the \"License\");\n",
"# you may not use this file except in compliance with the License.\n",
"# You may obtain a copy of the License at\n",
"#\n",
"# https://www.apache.org/licenses/LICENSE-2.0\n",
"#\n",
"# Unless required by applicable law or agreed to in writing, software\n",
"# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
"# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
"# See the License for the specific language governing permissions and\n",
"# limitations under the License."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "2Xjw-LFKoD1-"
},
"source": [
"# Gemini API: Analyze a Video - Classification\n",
"\n",
"This notebook uses multimodal capabilities of the Gemini model to classify the species of animals shown in a video."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "dJY5C59gPf-m"
},
"source": [
"<a target=\"_blank\" href=\"https://colab.research.google.com/github/google-gemini/cookbook/blob/main/examples/Analyze_a_Video_Classification.ipynb\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" height=30/></a>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "NwP4PBGWoQiJ"
},
"outputs": [],
"source": [
"%pip install -U -q \"google-genai>=1.0.0\""
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "KsMCUn_nRRtV"
},
"source": [
"## Configure your API key\n",
"\n",
"To run the following cell, your API key must be stored in a Colab Secret named `GOOGLE_API_KEY`. If you don't already have an API key, or you're not sure how to create a Colab Secret, see [Authentication](https://github.com/google-gemini/cookbook/blob/main/quickstarts/Authentication.ipynb) for an example."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "yGjQlQ9hoSOk"
},
"outputs": [],
"source": [
"from google.colab import userdata\n",
"from google import genai\n",
"\n",
"API_KEY = userdata.get('GOOGLE_API_KEY')\n",
"client = genai.Client(api_key=API_KEY)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "9y6o91Xb7RZb"
},
"source": [
"## Example\n",
"\n",
"This example uses a [video](https://commons.wikimedia.org/wiki/File:American_black_bears_%28Ursus_americanus%29.webm) published by Bryon Evans containing an American black bear.\n",
"\n",
"The video falls under the [Creative Commons Attribution 3.0 Unported license](https://creativecommons.org/licenses/by/3.0/deed.en)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "M794IEOG7QzI"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--2025-03-04 13:24:57-- https://upload.wikimedia.org/wikipedia/commons/8/81/American_black_bears_%28Ursus_americanus%29.webm\n",
"Resolving upload.wikimedia.org (upload.wikimedia.org)... 198.35.26.112, 2620:0:863:ed1a::2:b\n",
"Connecting to upload.wikimedia.org (upload.wikimedia.org)|198.35.26.112|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 45046409 (43M) [video/webm]\n",
"Saving to: ‘black_bear.webm’\n",
"\n",
"black_bear.webm 100%[===================>] 42.96M 27.5MB/s in 1.6s \n",
"\n",
"2025-03-04 13:24:58 (27.5 MB/s) - ‘black_bear.webm’ saved [45046409/45046409]\n",
"\n"
]
}
],
"source": [
"# Download video\n",
"path = \"black_bear.webm\"\n",
"url = \"https://upload.wikimedia.org/wikipedia/commons/8/81/American_black_bears_%28Ursus_americanus%29.webm\"\n",
"!wget $url -O $path"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Yc0Dn6plMRa1"
},
"source": [
"Upload the file using the File API so its easier to pass it to the model later on."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "efnp0oAq7kYx"
},
"outputs": [],
"source": [
"# Upload video\n",
"video_file = client.files.upload(file=path)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ij9-oG3g7yyj"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
".."
]
}
],
"source": [
"import time\n",
"# Wait until the uploaded video is available\n",
"while video_file.state.name == \"PROCESSING\":\n",
" print('.', end='')\n",
" time.sleep(5)\n",
" video_file = client.files.get(name=video_file.name)\n",
"\n",
"if video_file.state.name == \"FAILED\":\n",
" raise ValueError(video_file.state.name)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "xqqYxTqnvyfH"
},
"source": [
"To demonstrate the video content, display the first frame:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "vbnD4S2avE0k"
},
"outputs": [
{
"data": {
"image/jpeg": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import cv2\n",
"import matplotlib.pyplot as plt\n",
"\n",
"cap = cv2.VideoCapture(path)\n",
"_, frame = cap.read()\n",
"\n",
"frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)\n",
"\n",
"# Display using matplotlib\n",
"plt.imshow(frame_rgb)\n",
"plt.axis('off')\n",
"plt.show()\n",
"\n",
"# close video file\n",
"cap.release()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Wd-UBrzHqHvv"
},
"source": [
"The uploaded video is ready to be analyzed. The constructed prompt instructs the model to classify animals in the video. In addition to providing both their English and Latin names."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "Zhnsiy9O8OXG"
},
"outputs": [],
"source": [
"system_prompt = \"\"\"\n",
"You are a zoologist whose job is to name animals in videos.\n",
"You should always provide an english and latin name.\n",
"\"\"\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "PWLK7TEi7_mP"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Okay! Here are the animals in the video.\n",
"\n",
"- American Black Bear (Ursus americanus)\n",
"\n",
"Hope this helps!\n"
]
}
],
"source": [
"from google.genai import types\n",
"\n",
"MODEL_ID = \"gemini-3-flash-preview\" # @param [\"gemini-2.5-flash-lite\", \"gemini-2.5-flash\", \"gemini-2.5-pro\", \"gemini-2.5-flash-preview\", \"gemini-3-pro-preview\"] {\"allow-input\":true, isTemplate: true}\n",
"response = client.models.generate_content(\n",
" model=f\"models/{MODEL_ID}\",\n",
" contents=[\n",
" \"Please identify the animal(s) in this video\",\n",
" video_file\n",
" ],\n",
" config=types.GenerateContentConfig(\n",
" system_instruction=system_prompt,\n",
" ),\n",
" )\n",
"print(response.text)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "CYLXPx2lq45r"
},
"source": [
"As you can see, the model accurately named the animal and provided a correct Latin name.\n",
"\n",
"You can delete the video to prevent unnecessary data storage."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "SomiSVmu8Czk"
},
"outputs": [
{
"data": {
"text/plain": [
"DeleteFileResponse()"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Delete video\n",
"client.files.delete(name=video_file.name)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "aBM_LtQLLJA9"
},
"source": [
"## Summary\n",
"\n",
"Now you know how you can prompt Gemini models with videos and use them to classify species of animals.\n",
"\n",
"This notebook shows only one of many use cases. Check the [Video understanding](../quickstarts/Video_understanding.ipynb) notebook for more examples of using the Gemini API with videos."
]
}
],
"metadata": {
"colab": {
"name": "Analyze_a_Video_Classification.ipynb",
"toc_visible": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}