需配置Google Cloud项目、安装@grpc-cloud/vertexai、上传视频至GCS并设public-read权限、构造含video和text parts的请求、处理流式响应及错误。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望在 Node.js 环境中调用 Google Gemini SDK 对视频内容进行分析,则需完成身份认证、视频上传、内容提取与模型推理等关键环节。以下是实现该功能的具体操作路径:
一、配置 Google Cloud 项目与 API 密钥
Gemini 视频分析功能依赖 Google Cloud 的 Vertex AI 或 Gemini API 服务,必须先启用对应 API 并生成有效凭据。未正确配置将导致 403 或 401 错误。
1、访问 https://console.cloud.google.com/,登录您的 Google Cloud 账户。
2、创建新项目或选择已有项目,在左侧导航栏进入 API 和服务 > 启用 API 和服务。
3、搜索并启用 Vertex AI API 与 Generative Language API。
4、进入 API 和服务 > 凭据,点击“创建凭据 > 服务账号密钥”,选择新建服务账号,角色设为 Vertex AI User,密钥类型选 JSON,下载保存为 key.json。
二、安装 Gemini SDK 与依赖包
Node.js 环境需引入官方支持的 @google-cloud/vertexai 包,该包提供对 Gemini 1.5 Pro 等多模态模型的直接调用能力,不兼容旧版 @google/generative-ai。
1、在项目根目录执行命令:npm init -y 初始化 package.json。
2、安装核心 SDK:npm install @google-cloud/vertexai。
3、确保 Node.js 版本不低于 v18.17.0,可通过 node --version 验证。
三、上传视频至 Google Cloud Storage(GCS)
Gemini 视频分析要求输入为 GCS 中的公共可读 URI,本地文件路径无法直传。视频须先上传至指定存储桶,并设置对象 ACL 为 public-read。
1、安装 GCS 工具:npm install @google-cloud/storage。
2、创建 storageClient 实例,使用上一步下载的 key.json 进行认证。
使用AIsa生成图像与视频。仅需一个API密钥即可调用Gemini 3 Pro Image(图像)和Qwen Wan 2.6(视频)。
3、调用 bucket.upload() 方法上传视频文件(如 sample.mp4),等待上传完成返回对象元数据。
4、获取上传后对象的完整 URI:gs://your-bucket-name/sample.mp4,该 URI 将作为后续分析请求的 input_uri 字段值。
四、构建多模态视频分析请求
Gemini 1.5 Pro 支持视频分帧采样与长上下文理解,需构造包含 video 和 text parts 的 contents 数组,其中 video 部分必须为 GCS URI,且不可与其他媒体类型混用。
1、初始化 VertexAI 客户端,指定项目 ID、位置(如 us-central1)和模型名称(gemini-1.5-pro)。
2、定义 contents 数组,首项为 video part:{ "video": { "uri": "gs://your-bucket-name/sample.mp4" } }。
3、第二项为 text part,携带分析指令,例如:{ "text": "逐帧描述视频中人物动作、场景变化及出现的文字内容,输出为带时间戳的 JSON 列表" }。
4、调用 generateContent() 方法提交请求,设置 maxOutputTokens 为 8192 以容纳长视频响应。
五、处理流式响应与错误捕获
视频分析响应可能延迟较高且体积较大,SDK 默认启用流式传输;若未显式处理 data 事件,将丢失全部输出。同时需区分 429(配额超限)、400(URI 不可达)等错误码。
1、在 generateContent() 返回的 Promise 中,使用 on('data', callback) 监听每一段响应 chunk。
2、每个 chunk 的 candidates[0].content.parts[0].text 字段含增量文本,需拼接至完整结果变量。
3、监听 on('error', err => {...}),检查 err.code 是否为 RESOURCE_EXHAUSTED 或 INVALID_ARGUMENT。
4、若遇 400 Bad Request 且 message 含 “invalid URI”,立即验证 GCS 对象是否存在且权限为 public-read。

















