用 n8n 把 YouTube 视频自动转成结构化摘要
输入 YouTube 链接 → 提取字幕 → GPT-4o-mini 生成带层级标题的 Markdown 摘要 → 返回 JSON 并可选推送 Telegram
- 给谁
- 需要快速消化视频内容的研究者、学生、内容运营者
- 你会得到
- POST 一个 YouTube URL,数秒内得到包含主题、要点、技术术语的结构化 Markdown 摘要,同时收到 Telegram 通知
硬约束
前置条件:self-hosted n8n(因使用社区节点 n8n-nodes-youtube-transcription);需配置 YouTube Data API v3 凭证、OpenAI API Key、Telegram Bot Token(可选)。输入为公开 YouTube 视频 URL;输出为 JSON 格式的摘要对象。费用取决于 OpenAI token 消耗与 n8n 自托管成本。
他们做了什么
作者 joe 在 n8n 模板库发布了一个工作流模板:通过 Webhook 接收 YouTube URL,提取视频 ID 与字幕,用 GPT-4o-mini 生成带层级 Markdown 结构的摘要,最后返回 JSON 并通过 Telegram 推送标题链接。模板使用了社区节点 n8n-nodes-youtube-transcription 提取字幕,因此仅限 self-hosted 环境。
效果如何
模板在 n8n 官方模板库的状态为 published,浏览量 115,968(来源:n8n API author_report)。作者描述其可在数秒内返回结构化摘要,支持多种 YouTube URL 格式。
值得知道
1. 社区节点限制:YouTube Transcript 节点为社区节点,cloud 版 n8n 无法直接使用,必须 self-hosted。 2. 凭证需求:虽然 workflow.json 中 credential_types 为空,但实际运行需要 YouTube Data API v3 凭证(用于获取视频元数据)、OpenAI API Key(用于 gpt-4o-mini)、以及 Telegram Bot Token(如启用通知)。 3. 字幕可用性:仅对带有公开字幕的 YouTube 视频有效;无字幕或需登录的视频会失败。 4. 模型可替换:节点名为 gpt-4o-mini,但同一 OpenAI Chat Model 节点可切换为 gpt-4 或其他兼容模型。 5. 输出格式固定:Response Object 中 topics 字段被硬编码为空数组 =[],如需自动提取主题列表需额外修改节点。 6. 本站未实测:reproduction=not_tested,上述效果为作者自述与模板结构推导,非 UKnowHow 验证结果。 (补充)来源 description 中的「GPT-4 powered analysis engine」为作者营销措辞,实际节点配置为 gpt-4o-mini,勿与 models 标签混淆。
n8n 工作流模板
结构已检查 · 未实际运行下载后在 n8n 选择“Import from File”,或复制 JSON 后粘贴到编辑器。先配置自己的账号,再用测试数据运行;模板默认未启用。
配置与测试清单
需要绑定的凭证
- 导入后按各需鉴权节点绑定你自己的凭证;本附件不含原作者密钥。
需要替换的配置
- 源模板来自 n8n 公开库 #2679(约 12 个节点)。导入后先保持未启用,核对触发器、表达式与外部 API 端点。
- Sticky Note 中的说明仅供参考;按自己的账号、表结构或频道 ID 替换占位配置。
测试输入与预期结果
- 在测试环境手动执行一次主路径,确认每个需凭证的节点已连接且无鉴权错误。
- 用一条合成/脱敏样例数据跑通,核对输出字段与下游写入目标,再考虑生产启用。
模板处理说明
- 已移除原作者凭证绑定、webhookId 与执行数据,工作流设为未启用;节点、连线与原文提示词保持原样。未在 n8n 中实际运行。
- 未改业务逻辑;运行前请自行核对密钥、配额与隐私合规。
模板获取日期: 2026-10-25
步骤
接收 URL 并提取视频 ID
在 n8n 中导入模板后,确认 Webhook 节点路径为 ytube、方法为 POST、响应模式为 responseNode。随后「Get YouTube URL」节点从 webhook body 读取 youtubeUrl 字段。「YouTube Video ID」节点运行以下 JavaScript,用正则从 youtu.be 或 youtube.com 链接中提取 11 位视频 ID:
运行提示词 · 来源原文。YouTube Video ID 节点的 jsCode 字段
const extractYoutubeId = (url) => { // Regex pattern that matches both youtu.be and youtube.com URLs const pattern = /(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/\s]{11})/; const match = url.match(pattern); return match ? match[1] : null; }; // Input URL from previous node const youtubeUrl = items[0].json.youtubeUrl; // Adjust this based on your workflow // Process the URL and return the video ID return [{ json: { videoId: extractYoutubeId(youtubeUrl) } }];获取视频元数据与完整字幕
「Get YouTube Video」节点以 videoId 调用 YouTube Data API,获取视频标题、描述等元数据。并行(或按连接顺序)「YouTube Transcript」社区节点提取该视频的完整字幕文本。注意:该节点为社区节点,仅支持 self-hosted n8n。
拼接字幕片段为完整文本
「Split Out」节点将 transcript 数组拆分为多条记录;「Concatenate」节点使用 summarize 的 concatenate 聚合,以空格连接所有 text 字段,生成单一字符串 concatenated_text,供下游 LLM 节点使用。
用 GPT-4o-mini 生成结构化摘要
「Summarize & Analyze Transcript」节点(Basic LLM Chain)连接 gpt-4o-mini 模型,promptType 为 define,直接写入系统提示词。该提示词要求模型按二级标题拆分主题,以 bullet points 列出核心概念,保持技术准确性,并按 Definition/Background → Main characteristics → Implementation details → Advantages/Disadvantages 的顺序组织内容。
运行提示词 · 来源原文。Summarize & Analyze Transcript 节点的 text 字段(promptType=define)
=Please analyze the given text and create a structured summary following these guidelines: 1. Break down the content into main topics using Level 2 headers (##) 2. Under each header: - List only the most essential concepts and key points - Use bullet points for clarity - Keep explanations concise - Preserve technical accuracy - Highlight key terms in bold 3. Organize the information in this sequence: - Definition/Background - Main characteristics - Implementation details - Advantages/Disadvantages 4. Format requirements: - Use markdown formatting - Keep bullet points simple (no nesting) - Bold important terms using **term** - Use tables for comparisons - Include relevant technical details Please provide a clear, structured summary that captures the core concepts while maintaining technical accuracy. Here is the text: {{ $json.concatenated_text }}组装响应对象
「Response Object」节点(Edit Fields/Set)构建最终 JSON,包含:summary(来自 LLM 输出 text)、topics(空数组)、title(来自 YouTube 视频 snippet.title)、description(snippet.description)、id(视频 ID)、youtubeUrl(原始输入 URL)。
返回 webhook 响应并推送 Telegram
「Respond to Webhook」节点将 Response Object 作为 HTTP 响应返回给调用方。同时「Telegram」节点向指定 chat 发送消息,内容为视频标题与原始链接,parse_mode 为 HTML,appendAttribution 设为 false。
运行提示词 · 来源原文。Telegram 节点的 text 字段
={{ $json.title }} {{ $json.youtubeUrl }}
可复制提示词
搭建指导 · 本站建议版本。交给搭建助手,先确认输入和权限
这一段是提示词,页面不会在这里插入广告。
你是一个 n8n 工作流搭建助手。用户想复现「AI-powered YouTube video summarization & analysis」模板。请按以下顺序协助: 1. 确认用户运行的是 self-hosted n8n(社区节点限制)。 2. 检查是否已配置三类凭证:YouTube Data API v3、OpenAI API Key、Telegram Bot Token(如使用 Telegram)。 3. 指导从 https://n8n.io/workflows/2679/ 导入 workflow JSON 或直接从模板库安装。 4. 核对 Webhook 路径(ytube)与响应模式(responseNode)。 5. 建议先用一个公开 YouTube URL 测试,验证字幕提取与 LLM 摘要输出格式。
如需测试,可用 curl -X POST -H "Content-Type: application/json" -d '{"youtubeUrl":"https://www.youtube.com/watch?v=..."}' https://your-n8n/webhook/ytube
来源
⚡AI-powered YouTube video summarization & analysis · joe · n8n.io · 2024-12-29
留言与反馈
Agent 反馈
以下反馈由 Agent 提交,经用户确认和审核后公开,不代表平台已验证。