工作流介绍
通过 Google Script 工作流将视频上传到 Google Drive
此 N8n 工作流模板通过外部 Google Apps Script Web 应用自动化将公共 URL 中的视频上传到 Google Drive 的过程,然后重命名上传到 Google Drive 中的文件。它演示了 n8n、Google Drive 和托管在 Google 基础架构上的自定义无服务器逻辑之间的实际集成。
工作流功能
工作流在手动触发时启动(例如,点击“测试工作流”),并执行以下序列:
- 向 Google Apps Script Web 应用发送包含视频 URL 和身份验证密钥的 POST 请求。
- 脚本在外部运行,从提供的 URL 下载视频,并将其直接保存到配置的 Google Drive 文件夹中。
- 上传确认后,n8n 会继续将新上传的文件重命名为预定义名称(“Music Video 1”)。
这使得自动化的基于云的视频摄取成为可能,而无需在中间系统上进行直接文件处理或大量存储。
主要功能和能力
- 外部脚本集成:利用 Google Apps Script 作为轻量级无服务器函数来处理文件下载和 Drive 上传,从而减轻 n8n 的负担。
- 安全通信:使用密钥令牌 (
secret) 对 Google Script 端点的请求进行身份验证,防止未经授权的访问。 - 自动化文件管理:上传后自动重命名文件,以实现一致性和组织性。
- 事件驱动执行:手动触发,非常适合测试或按需操作。
- 模块化设计:每个步骤都封装在专用节点中,易于修改和扩展。
主要节点及其用途
-
手动触发节点
- 节点类型:
n8n-nodes-base.manualTrigger - 用途:作为工作流的起点。当用户点击“测试工作流”时,此节点会激活执行链。适用于调试和受控运行。
- 节点类型:
-
HTTP 请求节点 – “将 URL 发送到 GDrive 脚本并上传”
- 节点类型:
n8n-nodes-base.httpRequest - 用途:通过 HTTP POST 将 JSON 有效负载发送到 Google Apps Script Web 应用。有效负载包括:
videoUrl:要下载的视频文件的公共 URL。secret:用于验证脚本端请求的身份验证密钥。
- 此节点在 n8n 外部触发实际上传过程。
- 节点类型:
-
Google Drive 节点 – “重命名上传的视频”
- 节点类型:
n8n-nodes-base.googleDrive - 操作:
Update - 参数:
fileId:从 Google Script 上传后应返回的$json.driveUrl动态提取。newUpdatedFileName:将文件重命名为“Music Video 1”。
- 凭据:使用链接到 Google Drive 帐户的 OAuth2 凭据。
- 用途:通过使用干净、一致的文件名来组织上传的内容,从而完成自动化。
- 节点类型:
用例和优势
用例
- 内容聚合平台:自动将来自第三方 URL 的宣传视频、用户生成内容或媒体资产导入到有组织的 Drive 文件夹中。
- 营销自动化:安排或触发视频上传以用于广告系列、社交媒体帖子或内部审查。
- 备份和归档:从远程源提取媒体文件,并使用标准化命名将其安全地存储在 Google Drive 中。
- 集成中间件:连接生成视频链接的系统(如录制工具或 AI 视频生成器)与 Google Workspace 环境。
优势
- 效率:消除了手动下载和上传任务。
- 可扩展性:可以扩展以循环遍历多个 URL 或与 Webhook 触发器集成。
- 安全性:将敏感脚本保留在经过身份验证的端点后面。
- 灵活性:易于修改视频源、目标名称或添加其他步骤,如共享权限或文件夹组织。
分步工作流逻辑
-
开始(手动触发)
→ 用户通过点击“测试工作流”手动启动工作流。 -
发送请求到 Google Script
→ HTTP 请求节点将 POST 请求发送到"your_google_script_web_app_url",请求正文为:{ "videoUrl": "https://example.com/path/to/your.mp4", "secret": "your-strong-secret-here" }→ Google Apps Script 接收此请求,验证密钥,获取视频,并将其上传到指定的 Google Drive 位置。
-
接收文件 ID / URL(隐式)
→ 尽管在当前设置中未明确显示,但预期 Google Script 会在其响应中返回上传视频的fileId或driveUrl。
→ 此值必须映射到$json.driveUrl,以便下一个节点可以使用它。 -
重命名上传的文件
→ Google Drive 节点使用接收到的fileId(来自={{ $json.driveUrl }})来更新元数据。
→ 使用update操作将文件名更改为 “Music Video 1”。 -
工作流完成
→ 视频现在以新名称存储在 Google Drive 中,完全自动化。
⚠️ 注意:为实现全部功能,请确保 Google Apps Script 以与
fileId输入字段兼容的格式返回正确的fileId或webViewLink。如果响应结构需要转换,您可能需要使用 Set 节点调整输出解析。
结论
此工作流例证了 n8n 如何有效地协调外部 API 和 Google 服务之间的交互。通过将繁重的工作(如文件传输)卸载到 Google Apps Script,并将控制逻辑保留在 n8n 中,用户可以实现安全、可扩展且可维护的自动化管道,用于管理 Google Drive 中的视频内容。
使用方法:下载 JSON 文件,然后在 n8n 中选择“从文件导入”。