top of page

LBSocial

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

本教程概述了使用 Webhook 将 OpenClaw AI 智能体集成到 n8n 自动化工作流的技术过程。其目标是构建一个安全的自动化流水线,能够提取、清理并总结 YouTube 视频的元数据,并直接通过 Telegram 界面触发。


用 OpenClaw 控制 n8n:AI Agent 自动收集 YouTube 元数据

💡 提示: 本教程视频已配有 中文音轨。如需收听,请前往 YouTube 网站 播放,并在播放器设置(齿轮图标)中选择“音频(Audio track) -> 中文(Chinese)”。

系统架构概述


在深入实施细节之前,了解底层基础设施至关重要。下图展示了用户界面、AI 推理层与自动化执行引擎之间的高层交互。


Flowchart titled "Today's Architecture" shows data process from Telegram to YouTube via OpenClaw, n8n, YouTube Data API. Includes text and diagrams.
 The high-level interaction between the user interface, the AI reasoning layer, and the automation execution engine

该架构采用解耦模式,其中 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 密钥。

  1. 项目选择: 可以使用现有的 Google Cloud 项目;无需专门为此任务创建新项目。

  2. 启用 API: 导航至“API 与服务”库,并启用 YouTube Data API v3

  3. 生成凭据: 在“凭据”选项卡下创建一个新的 API Key

  4. 安全最佳实践: 强烈建议对密钥应用“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 对象返回给发起请求的客户端。


Workflow diagram with nodes: Webhook, Get video id, Request meta, Clean data, Respond to Webhook. Browser tabs and "Execute workflow" button visible.
Full 5-node workflow

步骤 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 interface showing multiple workflow executions labeled "youtube-metadata-demo" with success status. A Telegram bot displays video details and a link.
OpenClaw summary response in Telegram

结论:n8n Webhook 教程总结


在本教程中,我们演示了 OpenClaw 如何通过 Webhook 控制 n8n 工作流。我们无需每次都手动打开 n8n,只需通过 Telegram 发送一条消息即可。OpenClaw 接收请求,调用 n8n 工作流,并将结果直接返回给我们。


这种架构提供了一种高度灵活的方式,让你可以通过手机、平板电脑或任何能够访问 Telegram 的设备来控制自动化。此外,它还使整个系统变得更加稳定:


  • 安全执行: 核心工作流逻辑保留在 n8n 内部。

  • 凭据管理: 敏感凭据和 API 密钥也安全地保存在 n8n 中。

  • 简化 AI 任务: OpenClaw 只需触发工作流并总结结果。


最终,我们成功地将 AI 智能体与自动化流水线分离开来。OpenClaw 负责交互和推理,而 n8n 负责可靠地执行工作流。要了解此过程的完整演示,请务必观看嵌入在本文顶部的完整视频教程。

留言


bottom of page