douyin-creator-distill
Health Uyari
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 6 GitHub stars
Code Basarisiz
- rimraf — Recursive directory removal in package-lock.json
- network request — Outbound network request in package-lock.json
- network request — Outbound network request in package.json
- child_process — Shell command execution capability in scripts/diagnose-runtime.js
- spawnSync — Synchronous process spawning in scripts/diagnose-runtime.js
- fs module — File system access in scripts/diagnose-runtime.js
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Local-first creator intelligence agent: directory capture, dual transcription, viral analysis, topic generation and reusable creator personas.
把创作者主页和收藏夹,转化为可检索知识、爆款规律、选题资产和可调用的博主智能体。
Local-first creator intelligence agent for Douyin content, transcription, viral analysis and reusable creator personas.
为什么做 CreatorDistill
刷到有价值的创作者后,真正困难的不是保存一条链接,而是:
- 如何批量获得作品目录,并知道有没有漏抓或混入非目标内容;
- 如何按日期、点赞和总互动筛选真正值得处理的作品;
- 如何把视频转成带来源、日期和作品 ID 的可追溯文本;
- 如何从多条作品中拆出稳定的爆款规律,而不是总结一条视频;
- 如何持续沉淀选题、知识资产和可审计的博主智能体。
CreatorDistill 将这些步骤拆成独立、可暂停、可复核的本地阶段。原始 JSON、转写文本、分析报告和任务状态分别落盘,不会在抓取结束后自动消耗模型额度。
核心能力
| 模块 | 解决的问题 | 当前边界 |
|---|---|---|
| 内容工作台 | 获取主页、单条作品和本人收藏夹目录;筛选并选择作品 | 需要本地 Chrome 登录;不承诺绕过验证码或平台限制 |
| JSON 证据层 | 按作品 ID 去重、数量审核、保留原始抓取证据 | 审核异常时允许查看,但锁定转写与分析 |
| 优先级转写 | 用户选择云端优先或 Whisper 优先,系统按规则续接备用通道 | 批次总数不受 100 条限制;逐条记录实际通道并支持断点继续 |
| 任务中心 | 查看实时阶段、日志、失败原因;暂停、继续或仅重试失败作品 | 单项失败不会终止整批,状态与尝试次数实时写入 SQLite |
| 关注与更新 | 定期检查关注博主和收藏夹是否出现新增内容 | 只更新目录,不自动转写或调用模型 |
| 爆款拆解 | 基于多条已转写作品分析 Hook、结构、情绪和互动规律 | 单份报告最多 20 条,结论必须引用作品证据 |
| 选题顾问 | 从已完成的爆款报告生成带来源的选题 | 不从空白提示直接生成无证据标题 |
| 博主智能体 | 用多条代表性材料生成画像,并审阅新稿 | 明确“不是本人”,保留证据不足和矛盾项 |
| 智能筛选 | 用自然语言从标题、简介和已有转写中召回相关作品 | 本地召回不消耗 API;只有用户点击“精排复核”才调用当前分析模型 |
用一句话,从几百条作品中找到真正相关的内容
传统关键词搜索只能找到标题里出现过的词。CreatorDistill 的智能筛选会同时理解作品标题、作者简介和已经完成的转写正文,例如输入“普通人如何赚钱”“如何搭建个人知识体系”,即可召回表达不同、但主题相近的作品。
自然语言问题
-> 本地 Embedding 语义召回
-> 标题 + 简介 + 转写正文证据片段
-> 内容工作台展示相关作品和相关度
-> 可选:点击“精排复核”,再由分析模型重排前 20 条
- 正文级搜索:不仅搜标题,还会索引云端转写和本地 Whisper 正文;同一作品优先使用 Whisper 材料。
- 默认本地运行:普通搜索不上传正文、不消耗分析模型 API,也不依赖联网服务。
- 轻量与高精度双模式:可在设置中心切换约 96 MB 的轻量模型或约 1.2 GB 的高精度模型。
- 增量建立索引:作品以
source_key + video_id唯一标识,只有标题、简介或正文变化时才重新计算。 - 精排由用户决定:只有主动点击“精排复核”时,才把本地召回的前 20 条证据发送给已配置的分析模型。
真实回归:姜胡说 645 条作品结合历史转写正文形成 3,419 个语义片段;第二次更新复用 645 / 645 条作品,重新计算 0 条。详细契约与边界见智能筛选与语义索引。
数据流
关键原则是 JSON 优先,转写后置,分析必须引用证据:
- 输入抖音号、主页链接、单条作品或本人收藏夹。
- 先抓取并审核标准 JSON,确认数量、作品 ID 和关键字段。
- 用户筛选作品,再选择云端或本地转写通道。
- 全量转写逐条落盘;可安全暂停、从断点继续,失败项可单独重试。
- 转写完成后,才能进入爆款拆解、选题生成或知识蒸馏。
- SQLite 保存任务、单项尝试次数、订阅、缓存和产物索引;Markdown/JSON 保存可迁移资产。
界面预览
所有公开截图均由本地演示数据生成,不包含真实账号、密钥或用户资产。
| 任务与证据状态 | 选题顾问 |
|---|---|
![]() |
![]() |
| 博主智能体 | 系统与账号 |
![]() |
![]() |
五分钟启动
1. 环境要求
- Windows 10/11
- Node.js 22.5 或更高版本(项目使用内置
node:sqlite) - Google Chrome
- Git
- 可选:FFmpeg、Python、faster-whisper 和本地 Whisper 模型
2. 安装
git clone https://github.com/wl1650918245/douyin-creator-distill.git
cd douyin-creator-distill
npm ci
npm run setup:python
3. 创建本地配置
Copy-Item .env.example .env
Copy-Item config/model.config.example.json config/model.config.json
Copy-Item config/text-extraction.config.example.json config/text-extraction.config.json
Copy-Item config/transcription.config.example.json config/transcription.config.json
Copy-Item config/account-profiles.config.example.json config/account-profiles.config.json
Copy-Item config/semantic-search.config.example.json config/semantic-search.config.json
配置文件只保存在本机,并已加入 .gitignore:
| 文件 | 用途 |
|---|---|
.env |
知识资产根目录、默认 Chrome Profile |
config/account-profiles.config.json |
内容采集账号与收藏夹账号绑定 |
config/text-extraction.config.json |
云端链接转写服务 |
config/transcription.config.json |
默认转写通道与本地 Whisper 配置 |
config/model.config.json |
爆款拆解、选题和博主智能体使用的模型 |
config/semantic-search.config.json |
当前启用的本地智能筛选模型;不包含密钥 |
设置中心提供两套可自由切换的本地语义模型:
- 轻量模式:
BAAI/bge-small-zh-v1.5,约 96 MB,适合标题、简介和分段正文。 - 高精度模式:
Qwen/Qwen3-Embedding-0.6B,约 1.2 GB,适合复杂语义和长文本。 - 两套权重默认从 ModelScope 国内源按需下载到
runtime/models/embedding/,可分别检测、下载和删除,不进入 Git。 - 精排复核首版复用
config/model.config.json中的分析模型,不额外安装 reranker。 - 作品唯一键是
source_key + video_id;标题、简介或转写变化时通过内容哈希增量重算,不重复索引未变化作品。 - 详细索引表、分段和搜索边界见
docs/智能筛选与语义索引.md。
4. 诊断并启动
npm run doctor
npm start
打开 http://127.0.0.1:8780/。Windows 用户也可以双击 start-app.cmd。
不要直接双击
index.html。页面依赖本地/api/*接口和 SQLite 状态,file://模式无法工作。
第一次使用
- 打开左侧“账号中心”,登录内容采集账号。
- 如需抓取本人收藏夹,可共用采集账号,也可以为收藏夹单独登录。
- 回到内容工作台,输入抖音号、主页链接或点击“抓取我的收藏夹”。
- 在任务中心观察抓取、审核和恢复 Loop。
- JSON 审核通过后筛选作品,选择转写通道并提交。
- 点击“建立智能索引”,即可用自然语言从当前博主的标题、简介和转写正文中筛选作品。
- 从已转写作品进入爆款拆解、选题顾问或博主智能体。
独立命令:
npm run login:content
npm run login:favorites
npm run crawl:profile -- <douyin_id_or_profile_url> --dry
--dry 只验证输入、环境和执行计划,不执行真实抓取。
本地资产
默认目录是 %USERPROFILE%\Documents\DouyinKnowledgeAssets,可以通过 .env 中的 KNOWLEDGE_ASSET_ROOT 修改。
DouyinKnowledgeAssets/
├─ raw/
│ ├─ douyin-analysis/ # 原始 JSON 证据
│ ├─ get-notes/ # 云端通道文本
│ └─ transcripts/ # 本地 Whisper 文本
├─ analyses/
│ ├─ viral-breakdowns/ # 爆款拆解
│ └─ topic-library/ # 选题资产
├─ agents/ # 博主智能体与审稿记录
└─ .runtime/ # SQLite、任务与本地缓存
用户数据、Chrome Profile、API 密钥、SQLite、日志、模型和媒体文件均不会进入 Git。
恢复 Loop 与安全边界
目录任务使用有限恢复策略:
Chrome 首轮
└─ 审核未通过 → Chrome 恢复重试
└─ 仍未通过 → 内部接口补充
└─ 合并并再次审核
- 每轮原始 JSON 都会保留,并按
videoId合并。 - 首次抓取和人工重新抓取是严格对账的全量快照。
- 关注博主自动检查加载审核基线,只抓近期新增;进入历史重叠区后停止,不周期性重抓全部作品。
- 增量目录采用追加式知识资产语义:历史作品即使后来从主页消失,也不会被自动删除。
- 遇到登录失效、验证码、
403或429时停止自动请求,要求人工处理。 - 不使用接口切换绕过平台验证,不进行无限重试。
- 同一 Chrome Profile 同时只允许一个目录任务。
- 抓取完整度受登录状态、账号权限、网络、页面结构和平台策略影响。
项目状态
| 能力 | 状态 | 验证方式 |
|---|---|---|
| 主页目录与 JSON 审核 | 已实现 | 多账号真实回归 + 自动化契约测试 |
| 收藏夹目录发现与选择抓取 | 已实现 | 单收藏夹真实回归 + 适配器测试 |
| 任务持久化与恢复 Loop | 已实现 | SQLite + npm run test:loop |
| 作品总账、跨批去重与处理检查点 | 已实现 | SQLite + npm run test:work-ledger |
| 云端链接转写 | 已实现 | 真实单条转写回归 |
| 本地 Whisper | 已实现 | FFmpeg/模型诊断 + smoke 命令 |
| 云端/Whisper 优先级续接 | 已实现 | 配额耗尽、图文路由和本地失败模拟测试 |
| 爆款拆解 | 已实现 | 多作品报告落盘 |
| 选题顾问 | 已实现 | 浏览器 UI 回归 |
| 博主智能体与审稿 | 已实现 | 浏览器 UI 回归 + 审计门禁 |
| 本地语义索引与智能筛选 | 已实现 | 645 条真实目录、3,419 个正文片段 + Playwright 页面回归 |
| 收藏夹全目录数量对账 | 持续验证 | 尚未形成跨账号的完整回归证据 |
| 多用户、云数据库、计费 | 不在 v0.1.0 | 当前是单用户本地产品 |
开发与验证
npm run check
npm run test:unit
npm run test:ui
npm run whisper:smoke
UI 测试需要本机 Chrome 和正在运行的 npm start 服务。真实抓取测试需要已经登录的平台账号。
文档
贡献
欢迎提交 Bug、文档改进、适配器测试和可复现的兼容性报告。提交前请阅读 CONTRIBUTING.md 和 SECURITY.md。
项目只会把“已经跑通并有实测证据”的能力写入稳定状态,不用设计目标替代运行证据。
合规声明
CreatorDistill 是独立的开源项目,与抖音或字节跳动不存在官方关联、授权或背书关系。请仅处理你本人拥有、公开可访问或已经获得授权的内容,并遵守所在地法律、平台规则、著作权和个人信息保护要求。
本项目不会承诺“100% 抓全”“永不触发风控”或无人值守绕过平台验证。
License
Apache License 2.0。第三方 Skill 和方法资料继续遵循各自许可证,详情见 THIRD_PARTY_NOTICES.md。
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi



