n8n Webhook 教程:使用 OpenClaw AI 自动提取 YouTube 数据
- Xuebin Wei

- 5月6日
- 讀畢需時 5 分鐘
本教程概述了使用 Webhook 将 OpenClaw AI 智能体集成到 n8n 自动化工作流的技术过程。其目标是构建一个安全的自动化流水线,能够提取、清理并总结 YouTube 视频的元数据,并直接通过 Telegram 界面触发。
💡 提示: 本教程视频已配有 中文音轨。如需收听,请前往 YouTube 网站 播放,并在播放器设置(齿轮图标)中选择“音频(Audio track) -> 中文(Chinese)”。
系统架构概述
在深入实施细节之前,了解底层基础设施至关重要。下图展示了用户界面、AI 推理层与自动化执行引擎之间的高层交互。

该架构采用解耦模式,其中 Telegram 作为用户界面,将请求传输给 AI 推理智能体 OpenClaw。随后,OpenClaw 会调用一项特定技能,触发托管在同一台 Google Cloud 虚拟机上的 n8n Webhook。这种分离机制确保了 YouTube Data API 凭据在 n8n 中得到安全管理,而 AI 智能体只需专注于意图识别和结果总结。
Webhook 在 AI 自动化中的作用
采用这种架构的主要原因在于安全性和系统模块化。通过将 n8n 作为中间件层,私有 API 密钥从 AI 智能体中被抽象并隔离出来。OpenClaw 智能体通过标准的 POST 请求与 n8n 进行通信,使得 n8n 能够安全地处理复杂的数据转换和外部 API 调用。
交互式演示:Webhook 请求-响应周期
为了帮助你直观地理解 n8n 是如何作为 HTTP 服务器运作的(即保持连接打开并同步返回数据),请与下方的网络可视化模型进行交互:
第一阶段:构建核心 n8n 数据工作流
在引入 Webhook 触发器之前,我们先通过手动输入节点建立一个经过验证的基准线,以确保在正式自动化之前 YouTube API 的连接是正常的。
先决条件:获取 YouTube Data API 密钥
要与 YouTube 进行交互,你需要从 Google Cloud Console 获取一个有效的 API 密钥。
项目选择: 可以使用现有的 Google Cloud 项目;无需专门为此任务创建新项目。
启用 API: 导航至“API 与服务”库,并启用 YouTube Data API v3。
生成凭据: 在“凭据”选项卡下创建一个新的 API Key。
安全最佳实践: 强烈建议对密钥应用“API 限制”,将其使用范围仅限于 YouTube Data API v3。
步骤 1.1:模拟手动输入 (Set 节点)
使用 Set 节点初始化工作流。添加一个名为 youtube_url 的字符串(String)字段,并输入一个测试 URL(例如:https://www.youtube.com/watch?v=AN2WL_jBoY8&t=3s)。
步骤 1.2:提取视频 ID (Code 节点)
我们实现了一段 JavaScript 代码片段,用于从各种 YouTube URL 格式中可靠地解析出精确的 11 位视频 ID:
const input = $json.body || $json;
const value = input.youtube_url || input.video_url || input.url || input.video_id || "";
if (!value) {
throw new Error("Missing youtube_url, video_url, url, or video_id");
}
let videoId = value;
const patterns = [
/v=([0-9A-Za-z_-]{11})/,
/youtu\.be\/([0-9A-Za-z_-]{11})/,
/shorts\/([0-9A-Za-z_-]{11})/
];
for (const pattern of patterns) {
const match = value.match(pattern);
if (match) {
videoId = match[1];
break;
}
}
return [{ json: { video_id: videoId } }];
步骤 1.3:请求 YouTube 元数据 (HTTP Request 节点)
配置一个指向官方 Google API 端点的 GET 请求。该节点充当你的工作流与 YouTube 数据库之间的桥梁。
HTTP 方法: GET
URL: https://www.googleapis.com/youtube/v3/videos
身份验证: 应用之前在你的 n8n 凭据中配置好的 Query Auth(YouTube Data API 密钥)。
查询参数:
part: snippet,contentDetails, statistics
id: {{ $json.video_id }}
步骤 1.4:数据清理 (Code 节点)
为了优化 Token 消耗,我们对庞大的 JSON 负载进行清理,仅提取基本字段,并将标签(hashtags)解析为可用于图数据库的主题(topics)。
const item = $json.items?.[0];
if (!item) return [{ json: { ok: false, error: "Video not found" } }];
const snippet = item.snippet || {};
const statistics = item.statistics || {};
const description = snippet.description || "";
// Extract hashtags and convert them to topics
const hashtags = description.match(/#[\p{L}\p{N}_-]+/gu) || [];
const topics = hashtags.map(tag => tag.replace(/^#/, ""));
return [{
json: {
ok: true,
video_id: item.id,
title: snippet.title || "",
channel_title: snippet.channelTitle || "",
statistics: {
view_count: statistics.viewCount || "0",
like_count: statistics.likeCount || "0"
},
topics: topics,
collected_at: new Date().toISOString()
}
}];
第二阶段:集成 Webhook 与同步响应
通过将手动输入替换为 Webhook 触发器和同步响应节点,即可最终完成工作流的搭建。
步骤 2.1:配置 Webhook 节点
HTTP 方法: POST
路径: youtube-metadata-demo
响应: 选择使用“Respond to Webhook”(响应 Webhook)节点。这能确保 HTTP 连接在工作流完成之前保持打开状态。
步骤 2.2:终端连接验证(测试 URL)
在终端中执行以下 curl 命令,将测试数据传输到 n8n 的测试端点:
curl -sS -X POST "http://localhost:5678/webhook-test/youtube-metadata-demo" \
-H "Content-Type: application/json" \
-d '{"youtube_url":"https://www.youtube.com/watch?v=AN2WL_jBoY8&t=3s"}' | jq
步骤 2.3:配置“Respond to Webhook”节点
在工作流的末尾追加一个 Respond to Webhook 节点。该节点对于同步通信至关重要。
响应方式: 选择 JSON
响应体: 必须将此字段切换到表达式模式(Expression mode,点击字段旁边的切换/齿轮图标)。然后,清除默认文本并输入 {{ $json }}。
此配置确保 n8n 动态解析输出,并通过已建立的 HTTP 连接将清理后的 JSON 对象返回给发起请求的客户端。

步骤 2.4:生产环境执行
发布工作流后,验证生产环境的端点:
curl -sS -X POST "http://localhost:5678/webhook/youtube-metadata-demo" \
-H "Content-Type: application/json" \
-d '{"youtube_url":"https://www.youtube.com/watch?v=AN2WL_jBoY8&t=3s"}' | jq
第三阶段:生成 OpenClaw 技能
最后,配置 OpenClaw 智能体以连接 n8n Webhook。在 Telegram 界面中,向 Skill Creator(技能创建者)提交以下规范:
Create a new OpenClaw skill named n8n-youtube-metadata.
Purpose:
This skill should be used when the user asks OpenClaw to collect, fetch, inspect, or summarize metadata for a YouTube video.
Behavior:
The skill should call the local n8n production webhook through this command:
curl -sS -X POST "http://localhost:5678/webhook/youtube-metadata-demo" \
-H "Content-Type: application/json" \
-d '{"youtube_url":"YOUTUBE_URL"}'
Important:
- This skill only collects official YouTube metadata.
- The YouTube API key is stored in n8n credentials, not in OpenClaw.
- OpenClaw should summarize the returned JSON.
Response style:
After calling the webhook, summarize: Title, Channel, Published date, Duration, Statistics, and Topics. Mention that it is ready for embedding and Neo4j GraphRAG ingestion.
如何在 Telegram 中使用该技能
技能生成后,只需向你的智能体发送一个 YouTube URL 并附带自然语言提示词即可:
"Use the n8n-youtube-metadata skill to fetch fresh metadata for this video: https://youtu.be/AN2WL_jBoY8"
结论:n8n Webhook 教程总结
在本教程中,我们演示了 OpenClaw 如何通过 Webhook 控制 n8n 工作流。我们无需每次都手动打开 n8n,只需通过 Telegram 发送一条消息即可。OpenClaw 接收请求,调用 n8n 工作流,并将结果直接返回给我们。
这种架构提供了一种高度灵活的方式,让你可以通过手机、平板电脑或任何能够访问 Telegram 的设备来控制自动化。此外,它还使整个系统变得更加稳定:
安全执行: 核心工作流逻辑保留在 n8n 内部。
凭据管理: 敏感凭据和 API 密钥也安全地保存在 n8n 中。
简化 AI 任务: OpenClaw 只需触发工作流并总结结果。
最终,我们成功地将 AI 智能体与自动化流水线分离开来。OpenClaw 负责交互和推理,而 n8n 负责可靠地执行工作流。要了解此过程的完整演示,请务必观看嵌入在本文顶部的完整视频教程。



留言