videoparser

n8n 节点,用于解析和下载抖音、TikTok、快手、小红书等平台的公开视频内容

Package Information

Released: 2 mo ago
Downloads: 20 weekly / 75 monthly
Latest Version: 1.0.3

Documentation

n8n-nodes-videoparser

一个用于解析和下载公开社交平台视频的 n8n 社区节点。当前版本支持抖音、TikTok、Instagram Reels、Facebook、Twitter/X、YouTube、快手和小红书,并将不同平台的返回结果统一为一致的数据结构。图片和图文内容不受支持。

本项目只应用于你有权访问和下载的公开内容。请遵守对应平台的服务条款、版权规则和当地法律。

支持状态

平台 解析元数据 获取媒体地址 自动下载 备注
抖音 ✅ ✅ ✅ 支持分享链接和网页链接
TikTok ✅ ✅ ✅ 支持视频及音频地址;/photo/ 图文链接会报错
Instagram Reels/TV 部分 ✅ ✅ 不支持 /p/ 图片帖
Facebook 部分 ✅ ✅ 仅接受 Watch、Reels、videos 等明确视频链接
Twitter/X ✅ ✅ ✅ 媒体 CDN 在部分网络环境下可能不可达
YouTube ✅ ✅ ✅ 返回 MP4 和 MP3 地址
快手 ✅ ✅ ✅ 从 v1.0.2 开始支持
小红书 ✅ ✅ ✅ 仅支持视频笔记;图文笔记会报错

支持情况会受到平台风控、地区限制、内容权限以及上游解析服务状态影响。私密、付费、已删除或需要登录的内容不在支持范围内。

v1.0.3 主要改进

  • 将 btch-downloader 固定升级到 6.0.38
  • 修正 TikTok、Instagram、Facebook 的 SDK 函数映射
  • 为每个平台增加独立的返回结构适配器
  • 新增快手解析和下载
  • 兼容小红书新版 { quality, url } 视频下载结构
  • 严格拒绝图片、图文帖和非视频下载响应
  • 自动检测时返回实际识别的平台,不再返回 auto
  • 对上游的失败响应和空媒体结果抛出明确错误
  • 使用流式下载,单个媒体文件限制为 250 MiB
  • 拒绝 file:、本机地址和私有网络媒体地址
  • 添加离线单元测试,覆盖所有平台的响应结构

安装

n8n 社区节点

在 n8n 中进入 设置 > 社区节点,搜索并安装:

n8n-nodes-videoparser

npm 安装

npm install n8n-nodes-videoparser

安装后重启 n8n。

使用方法

  1. 在工作流中添加 Video Parser 节点。
  2. 在“视频链接”中填写公开视频 URL。
  3. 平台保持“自动检测”,或手动选择平台。
  4. 如果需要把文件写入 n8n 二进制数据,开启“自动下载视频”。
  5. 执行节点并将输出连接到存储、数据库或其他后续节点。

节点参数

参数 类型 默认值 说明
视频链接 String 空 必填,公开的 HTTP/HTTPS 视频链接
平台 Options 自动检测 根据 URL 域名识别,也可以手动指定
自动下载视频 Boolean false 下载视频并输出到 binary.data

自动下载使用 60 秒请求超时和 250 MiB 单文件上限。超出限制时节点会失败,不会把超大文件完整载入内存。

输出结构

{
  "platform": "tiktok",
  "contentType": "video",
  "title": "视频标题",
  "author": "作者名称",
  "videoUrl": "https://.../video.mp4",
  "audioUrl": "https://.../audio.mp3",
  "coverUrl": "https://.../cover.jpg",
  "duration": 15000,
  "description": "内容描述",
  "keywords": "",
  "tags": [],
  "stats": {
    "likes": 1000,
    "comments": 50,
    "shares": 20,
    "views": 5000,
    "collects": 100
  },
  "links": [
    { "quality": "HD", "url": "https://..." }
  ],
  "downloads": [],
  "rawData": {}
}

字段可用性取决于上游平台。例如 Instagram 和 Facebook 通常不会提供完整作者或互动数据。小红书图文笔记等非视频内容会直接报错;自动下载的视频文件位于 binary.data。

支持的 URL 域名

自动检测覆盖常用主域名和短链接域名,包括:

  • 抖音:douyin.com、iesdouyin.com
  • TikTok:tiktok.com、vm.tiktok.com、vt.tiktok.com
  • Instagram Reels/TV:instagram.com、instagr.am
  • Facebook Watch/Reels/videos:facebook.com、fb.watch
  • Twitter/X:twitter.com、x.com
  • YouTube:youtube.com、youtu.be、youtube-nocookie.com
  • 快手:kuaishou.com、v.kuaishou.com
  • 小红书:xiaohongshu.com、xhslink.com

实现说明

本节点使用以下组件:

btch-downloader 是远程解析服务的客户端,并非所有解析都在本机完成。输入的公开媒体 URL 会发送到其上游服务,随后返回由平台 CDN 或第三方下载 CDN 托管的媒体地址。因此:

  • 上游后端故障可能导致节点暂时不可用
  • 媒体地址通常有有效期,建议解析后尽快使用
  • 对隐私敏感或内部地址不要使用本节点
  • 固定依赖版本可以避免无人值守部署时出现意外的返回结构变化

开发与测试

要求 Node.js 20.18.1 或更高版本。

git clone https://github.com/kkuxb/n8n-nodes-videoparser.git
cd n8n-nodes-videoparser
npm install
npm test
npm run lint

常用命令:

npm run build       # 编译节点和复制图标
npm test            # 构建并运行离线响应结构测试
npm run lint        # ESLint 检查
npm run format      # 格式化 TypeScript 源码

测试默认不访问真实平台,避免 CI 因平台风控或上游波动而不稳定。发布前仍建议使用你有权访问的公开样例进行一次在线烟雾测试。

常见问题

为什么同一个链接之前能用,现在不能用?

视频平台会调整网页结构、签名和风控规则,上游解析服务也可能暂时故障。先确认内容仍为公开状态,再检查 btch-downloader Releases 和本项目 Issues。

为什么返回了地址但下载失败?

常见原因包括媒体地址过期、当前网络无法访问对应 CDN、平台要求特定地区网络,或者媒体超过 250 MiB 上限。可以关闭自动下载,仅获取地址并交给专用下载流程处理。

更新日志

v1.0.3 (2026-08-03)

  • 兼容小红书 { quality, url }[] 格式的视频下载地址
  • 节点改为严格的视频模式,拒绝图片、图文帖和非视频响应
  • 限制 Instagram、TikTok 和 Facebook 的非视频入口
  • 同步更新节点描述、README 和回归测试

v1.0.2 (2026-08-03)

  • 升级 btch-downloader 到 6.0.38
  • 修复各平台 SDK 函数名和返回结构适配
  • 新增快手支持并更新小红书基础结构
  • 增加流式下载、大小限制和媒体 URL 安全校验
  • 增加离线单元测试并修正文档支持范围

v1.0.1 (2026-03-08)

  • 小红书解析适配修复

v1.0.0 (2026-03-08)

  • 首次发布

许可证

MIT

Discussion