抖音直播间小时战报,每小时定点获取直播数据并发送到钉钉群。支持API模式和爬取模式两种方式。Invoke when user wants to set up hourly live stream reports for Douyin.
---
name: "douyin-hourly-report"
description: "抖音直播间小时战报,每小时定点获取直播数据并发送到钉钉群。支持API模式和爬取模式两种方式。Invoke when user wants to set up hourly live stream reports for Douyin."
---
# 抖音直播间小时战报工具
## 功能概述
该工具用于定时获取抖音直播间数据,生成小时战报,并自动发送到钉钉群。支持两种数据获取方式:
| 模式 | 适用场景 | 数据来源 |
|------|----------|----------|
| **API模式** | 长期稳定使用 | 抖音开放平台官方API(数据准确完整) |
| **爬取模式** | 临时使用/测试 | 网页爬取(数据有限,成交数据模拟) |
## 核心功能
1. **定时采集** - 每小时整点自动采集直播间数据
2. **数据统计** - 观看人数、点赞数、评论数、分享数、礼物数
3. **成交数据** - 订单数、GMV、转化率(API模式为真实数据)
4. **钉钉推送** - 自动发送战报到钉钉群
5. **日终总结** - 每日23:59自动发送全天汇总
---
## 📋 使用前准备工作
### 通用准备:配置钉钉机器人
**步骤1**:打开钉钉群 → 点击右上角「...」→ 「智能群助手」
**步骤2**:点击「添加机器人」→ 选择「自定义机器人」
**步骤3**:填写机器人名称(如:直播战报机器人)
**步骤4**:安全设置 → 选择「自定义关键词」,输入「战报」「总结」
**步骤5**:点击「完成」,复制生成的 **Webhook 地址**
---
### 方式一:爬取模式(无需申请账号,开箱即用)
**优点**:无需申请任何账号,直接使用
**缺点**:数据有限,成交数据为模拟生成
**准备材料**:
- 抖音直播间URL(如:`https://live.douyin.com/123456789`)
- 钉钉机器人Webhook地址
**启动命令**:
```bash
node hourly-report.js --liveUrl "https://live.douyin.com/123456789" --dingdingWebhook "https://oapi.dingtalk.com/robot/send?access_token=xxx"
```
---
### 方式二:API模式(推荐,数据准确)
**优点**:数据准确完整,包含真实成交数据
**缺点**:需要申请抖音开放平台账号
#### 📝 申请抖音开放平台账号步骤
**步骤1**:访问 [抖音开放平台](https://open.douyin.com/)
**步骤2**:注册企业账号(需要营业执照)
**步骤3**:登录后进入「开发者中心」→ 「创建应用」
**步骤4**:选择应用类型:企业应用 → 直播/电商类
**步骤5**:填写应用信息并提交审核(通常1-3个工作日)
**步骤6**:审核通过后获取:
- **Client Key**(应用标识)
- **Client Secret**(应用密钥)
#### 📱 获取直播间ID
直播间ID是直播间URL中的数字部分:
- 示例URL:`https://live.douyin.com/123456789`
- 直播间ID:`123456789`
**启动命令**:
```bash
node hourly-report.js --clientKey "你的ClientKey" --clientSecret "你的ClientSecret" --roomId "123456789" --dingdingWebhook "https://oapi.dingtalk.com/robot/send?access_token=xxx"
```
---
## 技术实现
- **自动化引擎**: Puppeteer (仅爬取模式使用)
- **定时任务**: node-schedule
- **HTTP请求**: axios
- **语言**: Node.js
## 安装依赖
```bash
cd d:\matchExpert\.trae\skills\douyin-hourly-report
npm install puppeteer node-schedule axios
```
## 使用方法
### 启动服务
```bash
# 方式一:爬取模式
node hourly-report.js --liveUrl "https://live.douyin.com/123456789" --dingdingWebhook "xxx"
# 方式二:API模式
node hourly-report.js --clientKey "xxx" --clientSecret "xxx" --roomId "123456789" --dingdingWebhook "xxx"
```
### 测试模式(立即执行一次)
```bash
# 爬取模式测试
node hourly-report.js --liveUrl "https://live.douyin.com/123456789" --dingdingWebhook "xxx" --test
# API模式测试
node hourly-report.js --clientKey "xxx" --clientSecret "xxx" --roomId "123456789" --dingdingWebhook "xxx" --test
```
### 编程调用
```javascript
const DouyinHourlyReport = require('./hourly-report.js');
// 方式一:爬取模式
const report = new DouyinHourlyReport({
liveUrl: 'https://live.douyin.com/123456789',
dingdingWebhook: 'https://oapi.dingtalk.com/robot/send?access_token=xxx'
});
// 方式二:API模式
// const report = new DouyinHourlyReport({
// clientKey: 'your_client_key',
// clientSecret: 'your_client_secret',
// roomId: '123456789',
// dingdingWebhook: 'https://oapi.dingtalk.com/robot/send?access_token=xxx'
// });
// 启动定时任务
report.startSchedule();
// 或测试执行一次
// await report.test();
```
## 参数说明
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| clientKey | string | API模式必填 | 抖音开放平台Client Key |
| clientSecret | string | API模式必填 | 抖音开放平台Client Secret |
| roomId | string | API模式必填 | 直播间ID(数字) |
| liveUrl | string | 爬取模式必填 | 抖音直播间URL |
| dingdingWebhook | string | 两种模式都必填 | 钉钉群机器人Webhook地址 |
| test | boolean | 否 | 测试模式,立即执行一次 |
## 两种模式对比
| 对比项 | API模式 | 爬取模式 |
|--------|----------|----------|
| **数据准确性** | ✅ 真实数据 | ⚠️ 页面展示数据,成交数据模拟 |
| **稳定性** | ✅ 高(官方支持) | ⚠️ 依赖页面结构 |
| **功能完整性** | ✅ 完整(含成交数据) | ⚠️ 有限(仅页面展示) |
| **资源消耗** | ✅ 低(HTTP请求) | ⚠️ 较高(启动浏览器) |
| **使用门槛** | ⚠️ 需要申请账号 | ✅ 开箱即用 |
## 战报内容
### 小时战报(每小时整点自动发送)
```
【14点档战报】(API)
📅 时间:05/28 14:00
🏠 直播间:夏季新品专场
🎤 主播:小美
---
📊 **核心数据**
| 指标 | 数值 |
|------|------|
| 观看人数 | 12,345人 |
| 点赞数 | 89,012 |
| 评论数 | 3,456 |
| 分享数 | 1,234 |
| 礼物数 | 567 |
---
💰 **成交数据**
| 指标 | 数值 |
|------|------|
| 订单数 | 89单 |
| GMV | ¥123,456 |
| 转化率 | 2.34% |
---
⏱️ 直播时长:02:30:45
📡 数据来源:(API)
```
### 日终总结(23:59自动发送)
```
🎉 【05/28 抖音直播日终总结】(API)
📈 **全天概览**
- 直播时长:8小时
- 平均观看:15,678人
- 峰值观看:32,109人
❤️ **互动数据**
- 总点赞:567,890
- 总评论:45,678
- 总分享:12,345
- 总礼物:7,890
💰 **成交数据**
- 总订单:1,234单
- 总GMV:¥2,345,678
---
💡 数据来源:(API)
感谢观看,明天继续加油!💪
```
## 定时策略
| 时间 | 任务 |
|------|------|
| 每小时整点 | 发送小时战报 |
| 23:59 | 发送日终总结并重置每日数据 |
## 文件结构
```
douyin-hourly-report/
├── SKILL.md # 技能说明文档
└── hourly-report.js # 核心执行脚本
```
## 🚀 快速开始指南
### 对于项目负责人(非开发者)
**第一步:安装依赖**
```bash
cd d:\matchExpert\.trae\skills\douyin-hourly-report
npm install puppeteer node-schedule axios
```
**第二步:选择使用方式**
| 场景 | 推荐方式 | 命令 |
|------|----------|------|
| 临时使用/测试 | 爬取模式 | `node hourly-report.js --liveUrl "直播间URL" --dingdingWebhook "钉钉Webhook"` |
| 长期稳定使用 | API模式 | `node hourly-report.js --clientKey "xxx" --clientSecret "xxx" --roomId "xxx" --dingdingWebhook "xxx"` |
**第三步:验证运行**
启动后会看到:
```
=== 抖音直播间小时战报服务启动 ===
数据获取方式:爬取模式
直播间URL:https://live.douyin.com/123456789
定时策略:每小时整点发送
==================================
服务已启动,按 Ctrl+C 停止
```
**第四步:接收战报**
每小时整点,战报会自动发送到您的钉钉群!
## 注意事项
1. **保持运行**:命令行窗口需要保持打开,关闭后服务会停止
2. **后台运行**:如需长期运行,建议使用 PM2 等进程管理工具
3. **网络稳定**:确保服务器网络能访问抖音和钉钉
4. **直播间状态**:直播开始后数据采集才会生效
5. **API模式注意**:Access Token有效期为2小时,脚本会自动刷新
## 故障排除
### 常见问题
1. **爬取模式:无法获取数据**
- 检查直播间URL是否正确
- 确认直播间是否正在直播
- 检查网络连接
2. **API模式:获取Token失败**
- 检查Client Key和Client Secret是否正确
- 确认应用已通过审核
3. **钉钉消息发送失败**
- 检查Webhook地址是否正确
- 确认钉钉机器人安全设置(关键词)
4. **定时任务不执行**
- 检查系统时间是否正确
- 确认脚本是否在后台运行
---
**版本**: 1.0.0
**更新内容**: 支持API模式和爬取模式自动切换
**适用平台**: 抖音直播、钉钉don't have the plugin yet? install it then click "run inline in claude" again.