Skip to content

Gemini API 视频分析接口文档

接口地址

POST https://www.dmxapi.cn/v1beta/models/{model}:generateContent

请求参数

Path 参数

参数类型必填说明
modelstring支持的模型名称,如 gemini-2.5-flash

Query 参数

参数类型必填说明
keystringAPI 密钥 (替换为 ******)

请求体

json
{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "inlineData": {
            "mimeType": "video/mp4",
            "data": "base64编码的视频数据"
          }
        },
        {
          "text": "视频文件里都显示了哪些内容?"
        }
      ]
    }
  ]
}

Python 示例代码

python
import base64
import json
import requests

# 配置参数
model = "gemini-2.5-flash"  # 支持的模型
API_URL = f"https://www.dmxapi.cn/v1beta/models/{model}:generateContent"
API_KEY = "******"  # 替换为你的API密钥
VIDEO_PATH = "example.mp4"  # 视频文件路径

def encode_video_to_base64(video_path):
    """将视频文件编码为Base64字符串"""
    try:
        with open(video_path, "rb") as video_file:
            return base64.b64encode(video_file.read()).decode("utf-8")
    except Exception as e:
        print(f"视频编码错误: {e}")
        return None

def analyze_video():
    """发送视频分析请求"""
    if not API_KEY:
        print("错误:请设置API密钥")
        return

    # 编码视频
    video_data = encode_video_to_base64(VIDEO_PATH)
    if not video_data:
        return

    # 构建请求
    headers = {"Content-Type": "application/json"}
    payload = {
        "contents": [{
            "role": "user",
            "parts": [
                {"inlineData": {"mimeType": "video/mp4", "data": video_data}},
                {"text": "视频文件里都显示了哪些内容?"}
            ]
        }]
    }

    # 发送请求
    try:
        response = requests.post(
            API_URL,
            headers=headers,
            params={"key": API_KEY},
            json=payload
        )
        response.raise_for_status()
        print(json.dumps(response.json(), indent=2))
    except requests.exceptions.RequestException as e:
        print(f"请求失败: {e}")
        if e.response:
            print(f"状态码: {e.response.status_code}")
            print(f"响应: {e.response.text}")

if __name__ == "__main__":
    analyze_video()

响应示例

成功响应将返回JSON格式的分析结果:

json
{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "视频中显示了..."
          }
        ]
      }
    }
  ]
}

一个 Key 用全球大模型