3441293738/creatorhub
GitHub: 3441293738/creatorhub
基于 Playwright 驱动真实浏览器的多平台内容监控、采集与搬运工具,支持抖音、小红书、快手的账号管理、作品下载、评论自动化与跨平台转发。
Stars: 120 | Forks: 27
# CreatorHub
用真实浏览器(Playwright)驱动,**免手写签名**:登录态由浏览器持有,抓取靠拦截平台自己发出的接口响应。顶部一键切换平台,每个平台各自独立的账号、监控目标、内容与评论数据;通知渠道与下载设置全局共用。
平台代码统一收纳在 `app/platforms/<平台>/` 下,新增平台只需在此目录加一个子包。
## 界面预览
**总览面板** —— 顶部一键切换 **抖音 / 小红书 / 快手**,深浅主题随平台自动切换,近 7 天采集趋势与关键指标一屏看全:


**账号 + 代理池** —— 扫码 / 创作者 / Cookie 多方式登录,多账号登录态检测与一键重登;一号一代理固定绑定防关联,支持批量导入与自动分配:

**作品监控** —— 粘贴主页链接即可轮询新作品并自动下载,可选画质与下载目录;最新作品列表带下载状态,支持一键搬运到小红书:



## 功能一览
| 能力 | 抖音 | 小红书 | 快手 |
|---|:---:|:---:|:---:|
| 登录 | 扫码 / 创作者 / Cookie | 扫码(读取态 + 创作态) | 扫码 / 创作者 |
| 作品监控(新作品轮询) | ✅ 用户作品 | ✅ 创作者笔记 / 关键词 | ✅ 用户作品 |
| 自动下载(含断点续传/重试) | ✅ 可选画质 | ✅ 图集/视频原图原视频 | ✅ |
| 评论监控 | ✅ 公开 / 创作中心 | ✅ 单条笔记 / 创作者近期 | ✅ |
| 自动评论 / 自动回复 | ✅ | ✅ | ✅ |
| 发布 | ✅ 浏览器自动化 / 转发到小红书 | ✅ API 直连 / 转发到抖音 | ✅ 浏览器自动化 |
| 本账号管理(作品/关注/粉丝/私信) | ✅ | ✅ | ✅ 关注/粉丝 |
| 通知推送(Bark/钉钉/Telegram) | 全局共用 | 全局共用 | 全局共用 |
### 核心功能说明
1. **内容监控**:轮询目标的新作品/新笔记,发现即入库、可自动下载并推送通知。
2. **下载**:自动落地到本地。抖音可选画质档位;小红书取原图/原视频;`.part` 断点续传 + 失败自动重试(≤3 次)。
3. **通知**:发现新内容时推送到 Bark / 钉钉(加签+关键词)/ Telegram(可自建 api_base)。
4. **评论监控**(独立模块,不依赖作品监控):盯单条作品或某账号近期作品的公开评论区;抖音另有「创作中心」模式(仅自有账号、按时间、更全,实验性)。
5. **自动评论**(规则 → 任务队列):
- **自动回复**(低风险):自动回复自己作品下收到的评论。
- **自动评论**(高风险):去指定博主或关键词(关键词仅小红书)的帖子下评论。
- 文案 = 模板库 + 同义随机 `{a|b|c}` + `{nick}`/`{kw}` 变量;**可选接大模型**(OpenAI 兼容:DeepSeek/通义/月之暗面/智谱/OpenAI 等,在「设置」配 key,失败回退模板)。
- 规则默认关闭、可「试跑」预览、可随时编辑。
6. **账号管理**:真实资料、登录态失效检测、一键重登。
7. **本账号管理**(左侧「本账号」分组,多平台通用):
- **我的作品**:同步展示登录账号自己发布的作品。
- **关注 / 粉丝**:同步列表,支持 **取关 / 回关**。
- **私信**:展示会话/消息,支持 **发送私信**。
- 写操作(取关/回关/发私信)统一进 `AccountActionTask` 队列,由引擎按 `min_gap_seconds` 节流、每账号每轮一条;也可在前端「立即执行」。
8. **多账号风控隔离**:每账号独立持久化浏览器 profile + 一号一代理(sticky)+ 活跃账号错峰 + 扫描抖动,降低多号关联特征(见[配置](#配置))。
## 为什么用真实浏览器(Playwright)
各平台对登录和抓取两头都上了反爬:扫码接口挡在 JS 验证页后面,作品/评论接口要求私有签名(`a_bogus`、`X-s` 等,纯 HTTP 伪造极易失效)。本项目用 **Playwright 驱动真实 Chromium**:
- **登录**:弹真实浏览器窗口扫码,收集登录态(storage_state)。
- **抓取**:无头浏览器带登录态打开页面,**拦截平台自己发出的接口响应**直接取数据,签名由浏览器算,我们不碰。
## 快速开始
git clone && cd creatorhub
python -m venv .venv && .venv\Scripts\activate # Windows(其他平台用 source .venv/bin/activate)
pip install -r requirements.txt
playwright install chromium # ★ 必须:装浏览器内核
npm install crypto-js # ★ 小红书发布用:签名 JS 依赖(需先装 Node.js)
cp config.example.yaml config.yaml # 按需改
python selftest.py # 自检(含 Playwright 可用性)
uvicorn app.main:app --host 0.0.0.0 --port 8000
# 打开 http://localhost:8000
### 小红书账号:一次扫码 = 读取态 + 创作态
小红书有两套登录态,**一次「小红书扫码登录」会同时拿到两者**:
- **读取态(www.xiaohongshu.com)**:监控、浏览自己笔记、预览、评论用。
- **创作态(creator.xiaohongshu.com)**:发布用。
点「小红书扫码登录」→ 扫码后窗口**自动跳到创作平台**:只看/评论/预览的扫完 www 即可;还要**发布**的,在创作平台完成登录/同意(**完成前别关窗口**)。拿到创作 cookie 的账号显示 🎬 徽章。
## 界面
顶部 **抖音 / 小红书 / 快手** 切换平台;左侧导航分区,每个分区是「列表 + 添加」的管理面板:
- **总览**:当前平台的 账号 / 监控 / 下载 / 评论 数量概览。
- **账号**:登录方式随平台不同(见上表)。账号列表含真实资料、失效检测、重登;🪪 抓取号 / 🎬 创作者号。
- **作品监控**:粘贴主页/短链/id;小红书可选「创作者笔记」或「关键词」。下方为监控列表 + 下载记录。
- **评论监控**:独立模块,粘贴作品链接或创作者主页。
- **发布**:小红书上传图集/视频发笔记、定时发布;抖音 / 快手发布走浏览器自动化(创作平台)。**跨平台转发**:抖音作品一键转发到小红书、小红书作品一键转发到抖音(已下载作品上点「发小红书 / 发抖音」,发布前可改标题/正文/话题)。
- **本账号**:我的作品 / 关注 / 粉丝 / 私信。
- **通知**:Bark / 钉钉 / Telegram 渠道管理(全局共用)。
- **设置**:全局下载目录 + 默认画质 + 大模型 key。
## 功能细节
### 下载
- **画质**(抖音):从作品自带多档码率里选 `原画(最高) / 1080 / 720 / 540 / 省流(最低)`。全局默认 + 单目标覆盖;"原画" = web 端可拿到的最高码率(**非创作者母带**)。
- **目录**:全局默认 + 单目标自定义,优先级 `目标 > 全局 > 配置兜底`,按作者建子文件夹。
- **断点续传**:`.part` 临时文件跨尝试保留,用 HTTP Range 续传,按 Content-Length 校验完整。
- **失败重试**:入库时存媒体直链快照,失败的作品后台自动重试(≤3 次),也可手动「重试」。
### 评论监控
- **盯单条作品**:粘贴作品链接 / 短链 / 数字 id,周期抓该作品评论区。
- **盯账号近期作品**:粘贴主页,抓该账号最近 N 条作品(N/天数受 config 限制)的评论。
- **公开模式**:打开作品详情页,滚动评论容器翻页、拦截评论接口、去重入库。抖音评论按热度排(非时间序),只能稳定抓到前若干页里的新评论。
- **创作中心模式(抖音,实验性)**:监控自己的号时,从创作中心评论管理页抓——按时间、含刚发的、更全。需先「创作者登录」。
- 用「时间水位线」判新:深翻翻出的旧评论只入库不推送。
### 账号
- **真实资料**:头像、昵称、平台号、uid、作品数、粉丝数。
- **登录态失效检测**:后台每 `account_check_interval_seconds` 体检;失效标红 + 「重新登录」(更新原账号登录态,不新建)。
### 批量删除
- 作品 / 评论表支持勾选 + 全选 + 批量删除;作品删除连带清理本地文件。
## 配置
复制 `config.example.yaml` 为 `config.yaml` 后按需改。关键项:
engine:
scan_interval_seconds: 300 # 目标默认轮询间隔(每目标可单独设)
worker_pool_size: 2 # 下载并发(跨作品)
scan_concurrency: 2 # 同时抓取的目标数(并发浏览器上下文)
comment_recent_works: 5 # 监控评论只看最近 N 条作品
comment_recent_days: 7 # 且仅限最近多少天内发布
comment_max_scrolls: 6 # 评论区翻页深度
account_check_interval_seconds: 1800 # 账号登录态体检间隔(0=关闭)
media_dir: ./data/media # 默认下载目录
# ── 多账号风控隔离 ──
profiles_dir: ./data/profiles # 每账号独立持久化浏览器 profile 根目录
max_live_contexts: 6 # 同时常驻浏览器 context 上限(LRU 驱逐,控内存)
active_accounts: 3 # 同一时刻最多并发活跃账号数(错峰)
scan_jitter: 0.15 # 扫描间隔随机抖动比例(±15%),消除整点齐发特征
route_download_via_proxy: true # 媒体下载走账号代理(避免 CDN 拉流暴露真实 IP)
storage:
db_path: ./data/creatorhub.db
# 代理池:建号时一号一代理 sticky 分配。务必用住宅/4G 长效代理,
# IP 地区与账号时区/locale 一致;切勿机房 IP、切勿多号共享一个 IP。留空则走宿主真实 IP。
proxies: []
# - http://user:pass@gateway.example.com:8000
# - socks5://user:pass@1.2.3.4:1080
## 目录结构
creatorhub/
├─ app/
│ ├─ platforms/ 各平台插件(新增平台在此加子包)
│ │ ├─ douyin/ sec_uid 解析 + JSON 解析;signing/=签名原语(参考)
│ │ ├─ xhs/ 小红书:解析 / 客户端 / 发布 / 签名 JS
│ │ └─ kuaishou/ 快手:解析 / 发布
│ ├─ browser/ Playwright:manager / login / fetcher / account_hub
│ ├─ engine/ 监控引擎(扫描·下载·评论·账号体检) + 下载器
│ ├─ notifier/ Bark / 钉钉 / Telegram
│ ├─ web/ 前端单页(标签页 / toast / 批量选择)
│ └─ main.py config.py models.py db.py settings.py profiles.py
├─ selftest.py config.example.yaml requirements.txt
## 排错
| 现象 | 原因 / 处理 |
|---|---|
| `playwright` 启动失败 / 找不到浏览器 | `playwright install chromium` |
| 点扫码没弹窗 | 需在有桌面的机器跑;无头服务器改用 Cookie 粘贴(抖音) |
| Windows 下 Playwright 子进程报错 | 用 `uvicorn app.main:app`(单 worker),别加 `--workers` |
| 抓取报"未拦截到作品数据" | 该账号登录态失效→重登;或目标无公开作品;或被风控→降低频率 |
| 账号显示「登录失效」 | 点「重新登录」更新登录态 |
| 评论只有十几条 / 抓不动 | 公开模式靠滚动翻页;若选择器失效改 `app/browser/fetcher.py: _SCROLL_COMMENTS` |
| 关注/粉丝/私信同步抓不到 | 需接口标定,见上方 ⚠️,把控制台 `[follow]`/`[dm]` 日志反馈到 issue |
## 已知局限(诚实说明)
- **画质**:只能拿 web 端最高码率,**拿不到创作者母带源文件**。
- **评论实时性**:公开模式受热度排序限制,做不到"实时一条不漏";创作中心模式更全但需自有账号。
- **实验性接口**(创作中心评论、本账号管理):页面结构随平台改版变化,代码里已把拦截/选择器集中、注释清楚便于修。
- 抓取依赖平台前端结构,**平台改版时部分拦截/选择器可能失效**。
## 友链
感谢 [LINUXDO](https://linux.do/) 社区提供的帮助与支持。
## 合规声明
本项目仅供**技术学习与个人内容备份**,不提供任何账号、Cookie、代理或数据。
使用者须自行遵守目标平台的用户协议、`robots` 规则及所在地法律法规,尊重原作者的版权与隐私,
**不得高频请求、批量爬取或商业分发**。自动评论/私信等写操作有账号风控风险,请谨慎、低频使用。
一切使用风险与法律责任由使用者自负,作者不对任何滥用行为负责。
标签:AV绕过, BeEF, FastAPI, MITM代理, Playwright, 内容监控, 爬虫, 特征检测, 自动化采集, 自媒体工具, 逆向工具