Package Information
Downloads: 48 weekly / 69 monthly
Latest Version: 1.0.3
Author: N8n Community
Available Nodes
Documentation
n8n-nodes-douyin-video-crawler
抖音视频爬虫 n8n 社区节点 - 根据关键词搜索、提取和下载抖音短视频
功能特性
- 🔍 关键词搜索: 根据关键词搜索抖音视频
- 🎯 多维度筛选: 支持排序方式、发布时间、视频时长、搜索范围筛选
- 📊 详细信息提取: 提取视频标题、作者、点赞数、评论数、分享数等完整信息
- 💾 视频下载: 支持批量下载视频到本地,优先下载高清版本
- 🛡️ 反爬虫处理: 内置反爬虫策略,包括随机延迟、User-Agent轮换等
- 🔐 灵活认证: 支持Cookie认证或自动登录两种方式
- ⚙️ 高度可配置: 丰富的高级选项,满足不同需求
安装
前提条件
⚠️ 重要: 本插件使用 Puppeteer Chromium 进行浏览器自动化,需要系统支持 Chromium 运行。
系统要求
- Node.js >= 18.0.0
- 足够的系统资源(Chromium 会占用内存)
- Linux/Docker 环境需要安装额外的系统依赖
快速安装
Windows 用户
# 克隆或下载项目到本地
cd E:\SynchronizeFolders\ProgramDevelopment\WorkflowsAndAgent\N8n\plugin\video_crawler\v1.0
# 运行安装脚本
install.bat
Linux/Mac 用户
# 克隆或下载项目到本地
cd /path/to/video_crawler/v1.0
# 添加执行权限
chmod +x install.sh
# 运行安装脚本
./install.sh
手动安装步骤
- 安装依赖
npm install
- 确保 Chromium 已下载
npx puppeteer browsers install chrome
- 构建项目
npm run build
- 验证安装
# 测试 Chromium 是否能正常启动
node -e "const puppeteer = require('puppeteer'); puppeteer.launch({headless:true,args:['--no-sandbox']}).then(b => { console.log('✓ Chromium OK'); b.close(); });"
Docker/Linux 环境特殊配置
如果在 Docker 或 Linux 环境中运行 n8n,需要安装 Chromium 的系统依赖:
# Debian/Ubuntu
apt-get update && apt-get install -y \
ca-certificates fonts-liberation libappindicator3-1 \
libasound2 libatk-bridge2.0-0 libatk1.0-0 libcups2 \
libdbus-1-3 libgbm1 libgtk-3-0 libnspr4 libnss3 \
libx11-xcb1 libxcomposite1 libxdamage1 libxrandr2 \
xdg-utils wget
# Alpine
apk add --no-cache \
chromium nss freetype harfbuzz ca-certificates ttf-freefont
详细故障排除请参考 TROUBLESHOOTING.md
- 在 n8n 中进入 Settings > Community Nodes
- 点击 Install a community node
- 输入
n8n-nodes-douyin-video-crawler - 点击 Install
手动安装
cd ~/.n8n/nodes
npm install n8n-nodes-douyin-video-crawler
重启 n8n 后节点将可用。
使用说明
1. 配置凭据(可选)
虽然可以游客模式访问,但建议配置认证以获得更好的效果:
方式A: Cookie认证(推荐)
- 在 n8n 中创建新的 "Douyin API" 凭据
- 选择认证方式: Cookie(推荐)
- 获取Cookie:
- 访问 抖音网站
- 登录你的账号
- 打开浏览器开发者工具(F12)
- 进入 Application > Cookies > https://www.douyin.com
- 复制所有Cookie值,格式:
name1=value1; name2=value2; ...
- 将Cookie粘贴到凭据配置中
方式B: 自动登录
- 选择认证方式: 自动登录
- 输入手机号和密码
- 首次运行时可能需要手动验证
2. 配置节点参数
基础参数
- 搜索关键词: 要搜索的视频关键词(必填)
- 排序方式: 综合排序 / 最新发布 / 最多点赞
- 发布时间: 不限 / 一天内 / 一周内 / 半年内
- 视频时长: 不限 / 1分钟以下 / 1-5分钟 / 5分钟以上
- 搜索范围: 不限 / 关注的人 / 最近看过 / 还未看过
- 视频数量: 要爬取的视频数量(必须是4的倍数,如 12、16、20、24等)
- 是否下载视频: 是否将视频下载到本地
- 下载路径: 视频保存目录(默认:
D:\KK_Movies\douyin)
高级选项
- 浏览器无头模式: 是否在后台运行浏览器(默认: 是)
- 隐身模式: 启用反爬虫检测隐身模式(默认: 是)
- 滚动延迟: 滚动加载视频时的等待时间(默认: 2000ms)
- 每12视频间隔: 每爬取12个视频后的随机延迟范围(默认: 1-3秒)
- 视频质量: 高清(优先)/ 标清 / 自动(默认: 高清)
- 下载超时: 单个视频下载的最大等待时间(默认: 300秒)
- 并发下载数: 同时下载的视频数量(默认: 3,范围: 1-5)
- 重试次数: 下载失败时的重试次数(默认: 3次)
- 调试模式: 启用详细的调试日志输出
- 截图保存: 保存页面截图用于调试
3. 输出数据格式
每个视频作为独立的输出项,包含以下信息:
{
"videoId": "7123456789",
"title": "视频标题",
"author": "作者名称",
"authorId": "MS4wLjAB...",
"videoUrl": "https://...",
"coverUrl": "https://...",
"duration": 45,
"likeCount": 12345,
"commentCount": 678,
"shareCount": 234,
"viewCount": 567890,
"publishTime": "2024-01-15",
"crawledTime": "2024-01-20T10:30:00.000Z",
"downloaded": true,
"downloadPath": "D:\\KK_Movies\\douyin\\作者_标题_20240120.mp4",
"fileName": "作者_标题_20240120.mp4",
"fileSize": 12345678,
"hashtags": ["#话题1", "#话题2"],
"description": "视频描述",
"_metadata": {
"totalVideos": 12,
"downloadedVideos": 12,
"failedVideos": 0,
"executionTime": 120000,
"searchKeywords": "AI智能体",
"filters": {...}
}
}
使用示例
示例1: 搜索并下载视频
搜索关键词: "AI智能体"
排序方式: 最多点赞
视频数量: 12
是否下载: 是
下载路径: D:\KK_Movies\douyin
示例2: 只提取视频信息不下载
搜索关键词: "美食推荐"
发布时间: 一周内
视频时长: 1-5分钟
视频数量: 20
是否下载: 否
注意事项
⚠️ 重要提示:
- 视频数量限制: 视频数量必须是4的倍数(如 12、16、20、24等)
- 反爬虫机制: 请遵守延迟设置,避免被封禁
- 合法使用: 请确保遵守抖音平台的使用条款
- 仅供学习: 本插件仅用于学习和研究目的,请勿用于商业用途
- Cookie有效期: Cookie可能过期,需要定期更新
- 资源消耗: 使用Puppeteer会消耗较多系统资源
故障排除
问题1: Cookie认证失败
解决方案:
- 确认Cookie格式正确(
name=value; name2=value2) - 检查Cookie是否过期,重新获取
- 尝试使用自动登录方式
问题2: 浏览器启动失败
解决方案:
- 确保系统已安装 Chromium/Chrome
- 检查系统资源是否充足
- 尝试禁用无头模式进行调试
问题3: 视频下载失败
解决方案:
- 检查网络连接
- 增加下载超时时间
- 确认下载路径有写入权限
- 检查磁盘空间是否充足
问题4: 找不到视频元素
解决方案:
- 抖音页面结构可能发生变化
- 启用调试模式和截图功能查看页面状态
- 联系开发者更新选择器
开发
构建项目
npm install
npm run build
开发模式
npm run dev
代码格式化
npm run format
代码检查
npm run lint
npm run lintfix
技术架构
本插件使用以下技术:
- Puppeteer: 浏览器自动化
- puppeteer-extra-plugin-stealth: 反爬虫检测
- axios: HTTP请求和文件下载
- TypeScript: 类型安全的开发
模块结构
PuppeteerManager: 浏览器管理AuthManager: 认证管理(Cookie/自动登录)SearchManager: 搜索和筛选VideoExtractor: 视频信息提取VideoDownloader: 视频下载AntiScraping: 反爬虫策略
更新日志
v1.0.0 (2024-01-20)
- 首次发布
- 支持关键词搜索和多维度筛选
- 支持Cookie和自动登录两种认证方式
- 支持批量下载视频(优选高清)
- 内置反爬虫策略
- 文件命名格式:
{author}_{title}_{date}.mp4
许可证
MIT
支持
如有问题或建议,请提交 Issue。
免责声明
本插件仅供学习和研究使用。使用本插件时,请遵守抖音平台的服务条款和相关法律法规。开发者不对使用本插件导致的任何后果负责。