Skip to content

Tagging media with Gemini

Prerequisites

Supported media

  • IMAGE
  • VIDEO
  • YOUTUBE_VIDEO
  • TEXT
  • WEBPAGE (only for gemini-2.5-* models)

Installation

pip install media-tagging
uv pip install media-tagging

Usage

Expose necessary environmental variables before using Gemini tagger.

export GOOGLE_API_KEY=<YOUR_API_KEY_HERE>
export GOOGLE_GENAI_USE_VERTEXAI=true
export GOOGLE_CLOUD_PROJECT=<YOUR_PROJECT_HERE>
export GOOGLE_CLOUD_LOCATION=<YOUR_CLOUD_LOCATION_HERE>

Run media-tagger with Gemini tagger.

media-tagger tag MEDIA_PATHs \
  --media-type IMAGE \
  --tagger gemini
import media_tagging

media_tagger = media_tagging.MediaTaggingService()
request = media_tagging.MediaTaggingRequest(
  media_type='IMAGE',
  media_paths=['image1.png', 'image2.png'],
  tagger_type='gemini',
)

result = media_tagger.tag_media(request)

result.save(output='tagging_results', writer='csv')
curl -X 'POST' \
  'http://127.0.0.1:8000/media_tagging/tag' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "tagger_type": "gemini",
    "media_type": "IMAGE",
    "media_paths": [
      "image1.png",
      "image2.png"
    ]
  }'

Tagger customizations

Video

For VIDEO and YOUTUBE_VIDEO media types you can specify video specific parameters (fps, start_offset, end_offset)

media-tagger tag MEDIA_PATHs \
  --media-type YOUTUBE_VIDEO \
  --tagger gemini \
  --tagger.fps=5 \
  --writer csv \
  --output tagging_results
import media_tagging

media_tagger = media_tagging.MediaTaggingService()
request = media_tagging.MediaTaggingRequest(
  media_type='VIDEO',
  media_paths=['video1.mp4', 'video2.mp4'],
  tagger_type='gemini',
  tagging_options={
    'fps': 5,
  },
)
result = media_tagger.tag_media(request)

result.save(output='tagging_results', writer='csv')
curl -X 'POST' \
  'http://127.0.0.1:8000/media_tagging/tag' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "tagger_type": "gemini",
    "media_type": "VIDEO",
    "media_paths": [
      "video1.mp4",
      "video2.mp4"
    ],
    "tagging_options": {
      "fps": 5
    }
    "
  }'