Gemini 网络视频分析
📋 概述
该 API 允许用户通过视频的网络地址(fileUri)传输视频并获取 AI 生成的详细分析结果,无需将视频下载到本地,适合分析已经托管在网络上的视频文件。
🌐 请求地址
| 服务类型 | 接口地址 | 说明 |
|---|---|---|
| 视频分析 | https://www.dmxapi.cn/v1beta | REST API |
https://www.dmxapi.cn/v1beta/models/{model}:generateContent💻 Python 示例代码
python
"""
╔══════════════════════════════════════════════════════════════════════════════╗
║ Gemini 视频分析 - REST API 方式(网络视频) ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ 功能说明:调用 Gemini 模型分析网络视频(通过 fileUri 传入视频地址) ║
║ API 提供商:DMXAPI ║
║ 模型版本:gemini-3.5-flash-ssvip ║
╚══════════════════════════════════════════════════════════════════════════════╝
"""
import requests
import json
# ═══════════════════════════════════════════════════════════════════════════════
# 📋 配置参数
# ═══════════════════════════════════════════════════════════════════════════════
API_KEY = "sk-**************************************************" # DMXAPI 访问令牌
BASE_URL = "https://www.dmxapi.cn/v1beta" # API 基础地址
MODEL = "gemini-3.5-flash-ssvip" # Gemini 模型版本
VIDEO_URL = "https://doc.dmxapi.cn/0_fenxiang/aa.mp4" # 待分析视频 URL(网络地址)
PROMPT = "分析视频内容" # 分析提示词
# ═══════════════════════════════════════════════════════════════════════════════
# 🔧 工具函数
# ═══════════════════════════════════════════════════════════════════════════════
def analyze_video(video_url, prompt=PROMPT):
"""
调用 Gemini API 分析网络视频内容
参数:
video_url (str): 视频的网络地址(fileUri)
prompt (str): 分析提示词,默认为 PROMPT
返回:
dict: API 返回的 JSON 响应,包含分析结果
异常:
requests.exceptions.RequestException: API 请求失败时抛出
"""
# 构建完整的 API 端点 URL
api_url = f"{BASE_URL}/models/{MODEL}:generateContent"
# 设置请求头(使用 Token 认证)
headers = {
"Authorization": f"{API_KEY}",
"Content-Type": "application/json"
}
# 构建请求负载(符合 Gemini API 规范,使用 fileData 引用网络视频,无需下载到本地)
payload = {
"contents": [
{
"role": "user",
"parts": [
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": video_url
}
},
{"text": prompt}
]
}
]
}
# 发送 POST 请求并返回结果
response = requests.post(api_url, headers=headers, data=json.dumps(payload), timeout=60)
response.raise_for_status()
return response.json()
# ═══════════════════════════════════════════════════════════════════════════════
# 🚀 主程序入口
# ═══════════════════════════════════════════════════════════════════════════════
if __name__ == "__main__":
try:
print(f"🎬 正在分析视频: {VIDEO_URL}\n")
# ────────────────────────────────────────────────────────────────────────
# 步骤 1: 调用 Gemini API 进行视频分析
# ────────────────────────────────────────────────────────────────────────
print("[1/1] 🔄 正在分析...\n")
result = analyze_video(VIDEO_URL, prompt=PROMPT)
# ────────────────────────────────────────────────────────────────────────
# 输出分析结果
# ────────────────────────────────────────────────────────────────────────
print("╔" + "═" * 68 + "╗")
print("║" + " " * 24 + "📊 分析结果" + " " * 32 + "║")
print("╠" + "═" * 68 + "╣")
if 'candidates' in result and result['candidates']:
# 提取并输出 AI 生成的文本内容
for part in result['candidates'][0].get('content', {}).get('parts', []):
if 'text' in part:
# 格式化输出文本(按行拆分,避免破坏边框排版)
text_lines = part['text'].split('\n')
for line in text_lines:
print(f"║ {line}")
else:
print(f"║ ⚠️ 未获取到结果: {result}")
print("╚" + "═" * 68 + "╝")
except requests.exceptions.RequestException as e:
print(f"\n❌ 网络请求失败: {e}")
if hasattr(e, 'response') and e.response is not None:
print(f" 状态码 : {e.response.status_code}")
print(f" 响应内容: {e.response.text}")
except Exception as e:
print(f"\n❌ 错误: {e}")📤 返回示例
成功响应
json
🎬 正在分析视频: https://doc.dmxapi.cn/0_fenxiang/aa.mp4
[1/1] 🔄 正在分析...
╔════════════════════════════════════════════════════════════════════╗
║ 📊 分析结果 ║
╠════════════════════════════════════════════════════════════════════╣
║ 这段视频是一段结合了**漫威《复仇者联盟4:终局之战》**主题与AI生成视觉效果的创意宣传短片。视频的核心目的是为了引出或推广一个名为"DMXAPI"的概念或品牌。
║
║ 以下是对视频内容的详细分析:
║
║ ### 1. 结构与画面解析
║
║ * **00:00 - 00:01(引入):**
║ * **画面:** 经典的《复仇者联盟4:终局之战》中文官方海报,上方写有"逆转无限"和"不惜一切代价"。
║ * **作用:** 快速唤起观众对漫威史诗级终局之战的记忆,奠定紧张、壮烈的基调。
║ * **00:01 - 00:02(美队与黑寡妇):**
║ * **画面:** AI生成的超写实风格画面。美国队长(身穿经典战衣)与黑寡妇(手扶美队盾牌)并肩站立,背景是璀璨的星空。
║ * **配音:** 男声(代表美队):"我们准备好了,为了正义。"
║ * **00:03 - 00:04(雷神):**
║ * **画面:** 雷神索尔的写实特写。他眼神坚毅,身旁闪烁着雷电,手握暴风战斧(或类似神器的局部)。
║ * **配音:** 男声(代表雷神):"风暴即将来临。"
║ * **00:05 - 00:06(黑寡妇特写):**
║ * **画面:** 黑寡妇娜塔莎的脸部特写。她的太阳穴附近戴着发光的红色科技耳麦,神情严肃。
║ * **配音:** 女声(代表黑寡妇):"没有退路。"
║ * **00:07 - 00:09(高潮与品牌呈现):**
║ * **画面:** 画面回到了类似原版海报的群像构图,但上方出现了巨大的发光蓝色艺术字——"DMXAPI",背景带有传送门或时空通道的特效。
║ * **配音:** 浑厚的男声:"启动协议,DMXAPI。"
║
║ ### 2. 视觉与艺术风格
║ * **AI生成艺术(AI Art):** 视频中间部分的三个角色镜头采用了高质量的AI写实风格,角色面部细节丰富,既保留了原片演员的特征,又融入了更具科技感和未来感的画风。
║ * **色彩调性:** 整体采用冷色调(蓝色、紫色、星空色),并用红色作为点缀,营造出神秘、科幻且紧迫的氛围。
║
║ ### 3. 主旨与传播意图
║ 这段视频采用了"借势营销"或"同人创作"的手法。它通过复仇者们面对终极危机时视死如归的誓言,将这种拯救世界的使命感,嫁接到最后出现的"DMXAPI"上。
╚════════════════════════════════════════════════════════════════════╝⚙️ 参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
MODEL | string | Gemini 模型版本,如 gemini-3.5-flash-ssvip |
VIDEO_URL | string | 视频的网络地址,通过 fileData.fileUri 传入 |
mimeType | string | 视频的 MIME 类型,如 video/mp4 |
PROMPT | string | 分析提示词,用于指定分析任务 |
⚠️ 注意事项
- 网络视频方式通过
fileData.fileUri直接引用视频地址,无需将视频下载并 base64 编码,适合体积较大的视频 - 请确保
VIDEO_URL为可公开访问的直链地址,且与mimeType一致 - 请妥善保管您的 API 密钥,不要将其暴露在公开代码中
- API 请求需要稳定的网络连接,视频较大时建议适当调大
timeout - 建议在生产环境中添加重试机制和错误处理
© 2025 DMXAPI Gemini 网络视频分析
