Files
mcn-short-video/project/短视频脚本创作/V1.0/subskills/mcn-data-insight/SKILL.md
T
maogeigei c48902f063 09-10 工作台:配置收敛、复盘字段契约修复、原创选题分镜支持、榜单期号区间显示
配置收敛:
- 端口/DB名/产出根/榜单目录单源化到 mcn-work-shop/config.json,代码层统一经 load-config.js 读取
- 新增 get-port.js 供 start.bat 读端口(bat 内嵌 node -e 会被 cmd 截断,读到的是兜底值)
- start.bat 修复失效的 managed node 路径(原写死 22.22.2 已不存在),改为遍历 versions 自动探测

复盘诊断页(真 bug 修复):
- 问题清单严重度全部显示成绿色 + 修改建议不显示:模型输出 {sev:'high',fix} 与前端读取 {severity:'高',suggestion} 字段名与取值均不匹配
- 前端新增 normIssue 归一化,兼容 sev/severity/level 与中英取值,并回补所属维度显示
- 在 submit-review-tasks 与诊断/复盘 prompt 中固化 issues_json 字段契约,从源头防 schema 漂移

分镜提示词:
- 原创选题(video_id 为空)原本无生成入口(分镜按 video_id 查询)
- listStoryboards 支持按 rewrite_id 查询,前端放开入口、切版本重查,并补落库指令(此前入库靠模型自由发挥)

榜单展示:
- 期号改为显示区间「08/31 ~ 09/06」,避免被误读为单日(期号=该周周一)
- 后端新增 collectRanges,从落盘文件读真实 dateStart/dateEnd 随 API 返回(日榜 start=end 不显区间)

其他:
- 清理 dsh 环境废弃后的历史叙述类废话(16 文件约 18 处),文末变更记录区保留
- 新增 docs/工作台UI规范.md(设计 token / 布局 / 8 页面路由 / 12 类组件 / 9 条已知坑)
2026-09-10 18:28:42 +08:00

322 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: third-party-skills-index
description: |
抖音数据获取技能集(原 Third-party Skills 百宝箱)— 红狐数据系列抖音榜单/搜索/诊断/作品技能 + 短剧信息源。
本文件为技能索引,说明各技能的安装位置、触发方式与安全约束。
当用户询问「有哪些技能可用」「抖音相关技能」「抖音榜单/热点/数据」「短剧信息源」等时参考。
---
# 抖音数据获取技能集(Third-party Skills 百宝箱)
> 本目录收录红狐数据系列抖音数据获取技能与短剧信息源(技能注册名 third-party-skills-index 沿用旧称)。
> 所有技能已通过安全加固:路径沙箱、API Key 环境变量保护、禁止系统文件读取。
---
## 技能清单
| # | 技能名称 | 目录 | 来源 | 核心能力 | 文件数 |
|---|---------|------|------|---------|--------|
| 1 | **douyin-account-diagnosis** | `subskills/douyin-account-diagnosis/` | [redfox-community](https://github.com/redfox-data/redfox-community) | 抖音账号六维度量化诊断,输出100分制评分+风险预警 | 10 |
| 2 | **douyin-daily-hot** | `subskills/douyin-daily-hot/` | [redfox-community](https://github.com/redfox-data/redfox-community) | 抖音每日点赞TOP50榜单,28赛道分类+30天回溯 | 6 |
| 3 | **douyin-hot-trend** | `subskills/douyin-hot-trend/` | [redfox-community](https://github.com/redfox-data/redfox-community) | 抖音热榜神器:实时/历史热榜、创作者洞察、HTML可视化报告、订阅推送 | 6 |
| 4 | **douyin-works-crawler** | `subskills/douyin-works-crawler/` | [redfox-community](https://github.com/redfox-data/redfox-community) | 抖音账号作品爬取,最多50条+互动TOP3分析 | 5 |
| 5 | **douyin-ai-feed** | `subskills/douyin-ai-feed/` | [redfox-community](https://github.com/redfox-data/redfox-community) | AI抖音信息源日报,抖音AI助手对话精选+HTML可视化报告 | 11 |
| 6 | **douyin-prohibited-word** | `subskills/douyin-prohibited-word/` | [redfox-community](https://github.com/redfox-data/redfox-community) | 抖音违禁词检测,加粗标记+智能替换建议+优化文案输出 | 5 |
| 7 | **douyin-content-surge** | `subskills/douyin-content-surge/` | [redfox-community](https://github.com/redfox-data/redfox-community) | 抖音每日点赞飙升榜:单日新增点赞TOP50,28赛道+30天回溯+订阅 | 6 |
| 8 | **douyin-weekly-surge** | `subskills/douyin-weekly-surge/` | [redfox-community](https://github.com/redfox-data/redfox-community) | 抖音七日点赞飙升榜:七日新增点赞TOP50,28赛道+30天回溯+订阅 | 6 |
| 9 | **douyin-search** | `subskills/douyin-search/` | [redfox-community](https://github.com/redfox-data/redfox-community) | 抖音作品查询:关键词搜爆款+日期范围筛选 | 3 |
| 10 | **douyin-top-account** | `subskills/douyin-top-account/` | [redfox-community](https://github.com/redfox-data/redfox-community) | 抖音账号影响力榜单追踪(日/周/月榜+回溯) | 11 |
| 11 | **playlet-douyin-feed** | `subskills/playlet-douyin-feed/` | [redfox-community](https://github.com/redfox-data/redfox-community) | 短剧抖音信息源:每日短剧爆款日报+题材聚类洞察 | 4 |
| 12 | **douyin-rise-ranking** | `subskills/douyin-rise-ranking/` | [redfox-community](https://github.com/redfox-data/redfox-community) | 抖音涨粉账号推荐(涨粉榜):日/周/月涨粉TOP50(总粉丝数/涨粉率/粉丝增量),27赛道+回溯+三维分析 | 6 |
> 各子技能完整触发词与用法见对应目录内 SKILL.md(标准 Skill 结构)。
---
## 共享前置条件
### API Key(红狐数据服务)
本技能集各数据获取技能依赖红狐数据 API,共用同一把 Key:
- **环境变量名**:`REDFOX_API_KEY`
- **获取地址**:[红狐hub 密钥管理页](https://redfox.hk/settings/api-keys?source=github)
- **配置方式**:设置系统环境变量即可,所有技能自动读取
- **一键配置(推荐,部署到新电脑后运行一次)**:`python scripts/setup_redfox_key.py` 交互式输入自己的 Key(自动写入用户级环境变量,一次配置全部技能生效);`--check` 可检查配置状态
- **Key 已存储**:记录在 `~/.workbuddy/MEMORY.md` 中,供跨会话使用
- **未配置 Key 时**:技能脚本会报错退出并提示「获取地址 + 运行 setup_redfox_key.py 输入 Key」,此时引导用户输入**自己的** Key,禁止硬编码
```bash
# 一键配置(推荐)
python scripts/setup_redfox_key.py
# 检查是否已配置
python scripts/setup_redfox_key.py --check
# 手动设置(临时)
# Windows PowerShell
$env:REDFOX_API_KEY="ak_xxx..."
# macOS / Linux
export REDFOX_API_KEY="ak_xxx..."
```
---
## 安全约束(所有技能统一执行)
> **🔴 路径引用铁律**:技能内一切文件引用必须用**相对路径**(md 链接相对自身文件解析、代码用 `__file__` 推导技能根;绝对路径随部署机器变化失效,禁止越级出技能根)→ [路径引用规范.md](references/规则/路径引用规范.md)
> 以下规则在安装时已写入各技能的 SKILL.md / core_workflow.md / Python 脚本中:
| 规则 | 说明 |
|------|------|
| **路径沙箱** | 所有文件操作仅限技能自身目录内,禁止读写技能目录外的任何路径 |
| **API Key 保护** | 仅从环境变量 `os.getenv("REDFOX_API_KEY")` 读取;禁止硬编码、禁止 .env/dotenv/配置文件读取、禁止在输出/日志中暴露 |
| **无系统命令** | 脚本不调用 subprocess / eval / exec / os.system 等 |
| **stdout 限定** | 脚本输出仅限 stdout(Markdown/JSON),不创建、修改或删除技能目录外的文件 |
| **禁止网络搜索降级** | API 查询失败时严禁联网搜索或从第三方渠道估算/补充数据 |
| **榜单数据落盘(白名单例外)** | 榜单查询产物落盘到 `抖音榜单/` 业务数据目录(详见下表),属「stdout 限定/路径沙箱」白名单例外 |
---
## 榜单数据落盘规范(白名单例外详则,09-03 定稿)
> 背景:红狐 API 按调用计费,榜单数据属「同日期固定」快照,重复查询=重复花钱。本规范强制「查询即缓存」,避免后续会话/任务为同一份榜单重复调用 API。
### 落盘目标(按运行环境 + 数据源分层)
> 桌面 `MCNSkill项目\` 顶层先分「业务账号层 / 三方数据层」:账号产出(分析、脚本等)直挂账号文件夹,**三方数据统一下 `三方数据\{数据源}\`**——后续数据获取不止一个数据源,每个数据源一个文件夹(当前红狐数据源=`红狐数据\`),其下再按数据类型分(抖音榜单/信息源数据/作品数据…)。**文件名不加数据源前缀**(保持 `抖音周榜_` 等榜名开头,兼容工作台 RANKING_DIR 正则 `^抖音周榜_`)。
| 环境 | 落盘目录 |
|---|---|
| 开发机 / 用户环境(两环境同构) | 桌面\MCNSkill项目\三方数据\红狐数据\抖音榜单\(Windows/macOS 按系统解析桌面,禁止硬编码用户目录) |
### 目录结构(09-03 起分目录管理,按工作台 tab 对齐)
`抖音榜单/` 下按三榜分三个子目录,避免长期平铺堆积;根目录旧平铺文件兼容(工作台读取端回退扫描),新产物一律入子目录:
```
抖音榜单/
账号周榜/ 抖音周榜_{赛道}_{周一}.json ← 账号影响力周榜(每赛道一文件 × 多期)
视频热榜/ 抖音周榜_视频热榜_{周一}.json ← 作品维周聚合 TOP50(全品类单文件/期)
点赞榜/ 抖音周榜_点赞榜_{周一}.json ← 作品维七日点赞飙升 TOP50(全品类单文件/期)
```
| 工作台 tab | 类别 | 落盘(子目录 + 文件名) | 状态 |
|---|---|---|---|
| 1 账号周榜 | 账号影响力周榜 | `账号周榜/抖音周榜_{赛道}_{周一}.json` | ✅ 已实现(douyin-top-account 抓取) |
| 2 视频热榜 | 作品维周聚合作品榜 | `视频热榜/抖音周榜_视频热榜_{周一}.json` | ✅ 已实现(fetch_week_ranks.py,全品类 TOP50) |
| 3 点赞榜 | 作品维七日点赞飙升 | `点赞榜/抖音周榜_点赞榜_{周一}.json` | ✅ 已实现(fetch_week_ranks.py,全品类 TOP50) |
| 4 涨粉榜 | 账号维涨粉榜 | 平铺 `抖音涨粉榜_{赛道}_{日期}.json` | ✅ 已实现(douyin-rise-ranking 子技能命名,未接入工作台 tab) |
> **周粒度抓取器(工作台 视频热榜/点赞榜 数据源,09-03 重构定稿)**:`scripts/fetch_week_ranks.py` —— **不传赛道(type)= 全品类,每榜每期仅 1 次 API 调用**(禁止逐赛道/逐日循环)。hot = likesRank 传 周一~周日(服务端周聚合);likes = hotContentRank **source 必须为「抖音每日点赞飙升榜」生产名**(写「抖音七日点赞飙升榜-GitHub」返回空,09-03 实测修正),startTime 传周日(七日口径)。**★API 单次上限 TOP50**(limit=100 / page=2 / offset=50 均被忽略,09-03 实测),无 51-100 名获取途径,勿再探测。list 条目补 `rank`;顶层 `category:"全部"`(实际赛道在 list[].category,展示端按条目赛道筛选/下拉去重)。用法:`python scripts/fetch_week_ranks.py --board both [--date 2026-08-24] [--force]`。落盘目录解析同工作台(env `MCN_RANKING_DIR` → 桌面 `三方数据\红狐数据\抖音榜单`,**无 dsh 分支**)。**成本铁律(09-03 固化)**:涉及多赛道/多日/多窗口循环的付费调用前,必须先向用户确认调用次数与范围,禁止未经确认直接批量调用。
> 子技能 douyin-daily-hot(视频热榜)/ douyin-content-surge(点赞榜)日粒度归档沿用各自 SKILL.md 命名;**工作台周粒度文件一律 fetch_week_ranks.py 落盘对应子目录**,避免日/周口径混入。douyin-weekly-surge(官方七日口径)落盘 `抖音七日飙升榜_…` 命名保留,未接入工作台 tab。
### 查询幂等铁律(防重复花 API 钱)
1. **查询前先 `ls`** 本地 `抖音榜单/` 下对应文件 → **命中直接读本地输出(0 API 成本)**,回复中注明「缓存命中·本地读取」
2. **未命中**:调红狐 API 取数 → 立即按命名规则写入本地 → 输出(Markdown 表格对话回复 + JSON 落盘同步)
3. **同榜名+赛道+数据日期**只允许调一次 API;后续所有会话/任务均走本地缓存
4. 数据日期采用 API 返回的「榜单对应日期」(非获取时刻),与 `references/规则/抖音数据规则.md` §2.2 命名规则保持一致
5. 榜单缓存文件**不入技能包 git**(纯本地业务数据);同包内 ai-feed/hot-trend HTML 日报等同原则——根目录新增 `.gitignore` 忽略 `subskills/*/output/` 及 `subskills/*/*.json` 缓存产物
---
## 各技能触发说明与使用示例
### 1. douyin-account-diagnosis — 抖音账号诊断
**触发词**:诊断抖音账号、抖音账号分析、抖音体检、抖音账号评估、分析这个抖音号
**使用示例**:
```
用户:帮我诊断一下抖音账号「桔桔的茶园小动物」
用户:分析这个抖音号 66456544107
用户:给 XX 做个抖音体检
用户:评估一下这个抖音账号值不值得合作
```
**输出**:100分制综合评分 + 六维度得分明细 + 六类风险预警 + 近期作品明细 + 优化建议
**脚本**:`scripts/douyin_diagnosis.py`(纯标准库,无外部依赖)
---
### 2. douyin-daily-hot — 抖音每日热门作品榜
**触发词**:抖音热榜、抖音日榜、抖音排名、抖音爆款、抖音最热、抖音TOP榜、抖音赛道榜单
**使用示例**:
```
用户:今天抖音什么最火?
用户:看看美食赛道排名
用户:5月20号的抖音榜单
用户:查看全部50条
```
**输出**:单日点赞TOP50榜单(Markdown表格),作品标题为可点击超链接
**脚本**:`scripts/douyin_daily_hot.py`(纯标准库 urllib,零外部依赖)
---
### 3. douyin-hot-trend — 抖音热榜神器
**触发词**:抖音热榜、今日热榜、历史热榜、热搜、热点趋势、订阅推送
**使用示例**:
```
用户:今日热榜
用户:近7天热榜
用户:对比昨天和今天的热榜
用户:订阅每日热榜推送
用户:5月15日热榜
```
**输出**:热榜表格(TOP20)+ 创作者洞察报告 + HTML 可视化页面(支持导出PDF)
**脚本**:`scripts/hotspot_fetcher.py`(数据获取)+ `scripts/gen_douyin_hot_html.py`(HTML生成)
---
### 4. douyin-works-crawler — 抖音作品爬取
**触发词**:爬取抖音作品、抖音作品列表、查看抖音视频、抖音内容采集、抓取抖音作品
**使用示例**:
```
用户:爬取"周幺姑家常菜"的抖音作品
用户:帮我查询抖音号 cdjjc028 的作品
用户:抖音内容采集 XXX
```
**输出**:账号基础信息(粉丝数/获赞/红狐指数)+ 近期作品列表(最多50条)+ 互动TOP3分析 + 账号特征总结
**脚本**:`scripts/douyin_works_fetcher.py`(纯标准库,零外部依赖)
---
### 5. douyin-ai-feed — AI抖音信息源
**触发词**:抖音AI助手、AI抖音日报、抖音AI信息流、抖音AI精选、AI信息源、AI抖音每日对话
**使用示例**:
```
用户:看看今天抖音AI助手有什么热门内容
用户:生成一份抖音AI信息源日报
用户:最近抖音AI都在聊什么?
用户:抓取抖音AI信息流,最近7天的
```
**输出**:抖音AI助手对话精选(标题+点赞+直达链接)+ 深色主题HTML可视化报告(技能目录 `output/` 下)
**脚本**:`scripts/fetch_douyin_ai.py`(依赖 requests 库,HTML 模板在 `assets/report_template.html`)
**注意**:原始订阅功能(launchctl/crontab)已因安全风险禁用,建议使用 WorkBuddy automation 替代定时执行。
---
### 6. douyin-prohibited-word — 抖音违禁词检测
**触发词**:抖音违禁词、抖音敏感词、抖音审核、限流词、脚本合规、口播文案合规
**使用示例**:
```
用户:帮我看下这段抖音脚本有没有违禁词:这款美白神器真的太有效了,用了三天就白了一个度
用户:[上传 script.docx] 帮我检查这个文档
用户:检测图片里的文字有没有违禁词 [上传字幕截图.png]
用户:帮我检测这个网页 https://example.com/article
```
**输出**:三个固定板块 — 🔍违禁词检测结果(加粗标记) → 💡修改建议(替换词+更换理由表格) → ✏️建议优化文案(替换后完整文案);同时自动生成可下载的纯文本文件
**脚本**:`scripts/check_sensitive_words.py`(依赖 python-docx、beautifulsoup4、playwright 可选,有 requests 静态回退)
---
### 7. douyin-content-surge — 抖音每日点赞飙升榜
**触发词**:抖音飙升榜|点赞飙升|飙升排名|飙升榜|抖音飙升|内容飙升|抖音新增
**使用示例**:
```
用户:看看今天的抖音飙升榜
用户:美食赛道这几天什么在飙升
用户:给我 5 月 28 号的飙升榜
用户:帮我订阅美食赛道的每日飙升榜
```
**输出**:Markdown 表格格式 TOP20 榜单(作品标题可点击链接),含新增点赞/评论/分享/收藏数据;支持 --full 输出完整 50 条
**脚本**:`scripts/douyin_daily_increment.py`(仅 Python 标准库,零外部依赖)
---
### 8. douyin-weekly-surge — 抖音七日点赞飙升榜
**触发词**:抖音七日飙升榜|七日点赞飙升|周度飙升排名|周榜飙升|抖音七日新增|抖音周榜飙升
**使用示例**:
```
用户:看看今天的抖音七日飙升榜
用户:美食赛道七日飙升榜
用户:给我 5 月 28 号的七日飙升榜
用户:帮我订阅美食赛道的七日飙升推送
```
**输出**:Markdown 表格格式 TOP20 七日新增点赞榜单(作品标题可点击链接),含七日新增点赞/评论/分享/收藏数据
**脚本**:`scripts/douyin_weekly_surge.py`(仅 Python 标准库,零外部依赖)
---
## 目录结构总览
```
mcn-data-insight/(技能包根,随 短视频脚本创作/V1.0/subskills/ 分发)
├── SKILL.md ← 本文件(技能索引 / 百宝箱入口)
├── references/
│ └── 规则/
│ └── 抖音数据规则.md ← Key 配置 + 赛道过滤 + 技能存放路径 统一规则
├── scripts/ ← 共享脚本(以技能包根为工作目录执行)
│ ├── setup_redfox_key.py ← 一键配置 REDFOX_API_KEY(推荐)
│ ├── fetch_filtered_data.py ← 日榜赛道过滤抓取
│ └── fetch_meishi_30days.py ← 美食赛道 30 天回溯抓取
├── subskills/ ← 12 个数据获取子技能(标准 Skill 结构)
│ ├── douyin-account-diagnosis/ ← 抖音账号诊断(六维度量化评分)
│ ├── douyin-daily-hot/ ← 抖音每日热门作品榜(点赞 TOP50)
│ ├── douyin-hot-trend/ ← 抖音热榜神器(实时/历史热榜+HTML报告)
│ ├── douyin-works-crawler/ ← 抖音作品爬取(最多50条+互动TOP3)
│ ├── douyin-ai-feed/ ← AI抖音信息源日报
│ ├── douyin-prohibited-word/ ← 抖音违禁词检测
│ ├── douyin-content-surge/ ← 抖音每日点赞飙升榜
│ ├── douyin-weekly-surge/ ← 抖音七日点赞飙升榜
│ ├── douyin-search/ ← 抖音作品查询(关键词搜爆款+日期筛选)
│ ├── douyin-top-account/ ← 抖音账号影响力榜单(日/周/月榜)
│ ├── playlet-douyin-feed/ ← 短剧抖音信息源(短剧日报)
│ └── douyin-rise-ranking/ ← 抖音涨粉榜(日/周/月涨粉 TOP50,27 赛道)
```
每个子技能内部为标准 Skill 结构(SKILL.md + references/ + scripts/ 等),
README 中「安装到 ~/.workbuddy/skills/」为独立安装指引,不影响随包分发使用。
---
## 更新记录
| 日期 | 操作 |
|------|------|
| 2026-09-03 | 新增第 12 个子技能 **douyin-rise-ranking**(抖音涨粉榜,skillCode 官方 EZTwMSse):日/周/月涨粉 TOP50、27 赛道、三维涨粉分析;本地化:脚本改名 douyin_rise_fans.py 去官方自动写盘缓存(纯 stdout)、查看更多改读本地落盘 JSON、落盘规范状态 ✅ 已实现(`抖音涨粉榜_{赛道}_{日期}.json`) |
| 2026-09-03 | 并入 短视频脚本创作/V1.0/subskills/mcn-data-insight/(去 git):`.workbuddy/skills` → `subskills/`、scripts 上移、全量相对路径化;清理 `.workbuddy/` 历史存档与安全审计报告引用、去除同名嵌套;移除非数据获取技能(nuwa-skill 删除、multi-copywrite-alchemy 移至桌面),现为 11 个数据获取子技能 |