alexandercroft/scout
GitHub: alexandercroft/scout
Scout 是一款本地竞品情报分析工具,批量采集 YouTube、网站、Telegram 和 Threads 的指定时间段内容,借助自带 LLM 生成结构化竞争档案。
Stars: 1 | Forks: 0
# SCOUT.
**本地竞品分析器:输入链接 → 批量下载指定时间段的内容 → 生成档案。**



## 这是什么
粘贴竞争对手的链接(**YouTube频道**、**网站**、**Telegram频道**),
选择时间段(1个月……3年)—— Scout 会将他们的所有内容下载到本地,整合成一组 markdown 文件。然后只需一键操作,即可据此生成**档案**:
他卖什么、使用了哪些“诱饵”、如何定位、受众群体特征是什么,以及他的薄弱环节在哪里。
工作分为两个阶段:
- **HARVEST(采集)** —— 下载阶段。无需任何 AI,完全在本地运行。
- **DIGEST(分析)** —— 分析阶段。接入**你自己的** Claude Code 或 Codex(见下文)并生成档案。
## 安装说明
```
git clone
~/Apps/scout
cd ~/Apps/scout
./run.sh
```
首次启动会自动配置环境并安装依赖项。随后会自动打开
**http://127.0.0.1:8920** —— 这就是你的控制台。
本机需安装:`python3`、`ffmpeg`(可通过 `brew install ffmpeg` 安装)。`yt-dlp` 会
自动安装到运行环境中。
## 使用指南
1. 输入 **SLUG** —— 竞争对手的名称(例如 `Павел Гительман`)。它将作为文件夹名称
(俄文名称会自动转换为拉丁字母:`pavel-gitelman`)。**也可以留空** —— Scout 会自动命名为 `scout-1`、`scout-2` 等。
2. 将链接粘贴到对应的输入框中 —— **只需提供一个链接,无需全部填写**:
- **YOUTUBE** —— 支持**频道、播放列表或单个视频**的链接 → 获取指定时间段内的字幕
(对于单个视频,时间段将被忽略 —— 仅抓取该视频)。
- **SITE** —— 填入根 URL → 将爬取网站并将页面转换为 markdown。
- **TELEGRAM** —— 支持 `@频道` 或 `t.me/...` → 下载指定时间段内的帖子*(需一次性登录,见下文)*。
- **THREADS** —— 支持 `@个人主页` → **获取指定时间窗口内的发帖历史**(最长约1年),并在多次
运行时不断积累数据 *(需在 Chrome 中登录,见下文)*。
3. 选择 **WINDOW** —— 设定抓取的时间段(1M … 3G)。*对网站无效,此选项将作为爬取深度。*
4. 点击 **HARVEST**。所有数据都将保存到 `~/Downloads/Scout//` 目录中。
5. 抓取完成后 —— 点击 **DIGEST → DOSSIER**:系统将生成 `DOSSIER.md`。
## 登录须知 —— 作用与原因(通俗解释)
- **YouTube** —— 无需登录。系统会抓取公开字幕。
- **网站** —— 无需登录。
- **Telegram** —— **只需登录一次**。原因:Telegram 不允许匿名获取频道
历史记录,必须通过你的账号进行访问。该过程免费且安全 —— 密钥和
会话仅保存在你的本地磁盘上,不会上传至代码库中。
**如何登录 Telegram(耗时2分钟):**
1. 访问 **https://my.telegram.org** → *API development tools*。
2. 创建一个应用(名称不限)—— 你将获得 **`api_id`**(数字)和 **`api_hash`**(字符串)。
3. 在终端中执行:
cd ~/Apps/scout
./run.sh auth-tg
系统会依次询问 `api_id`、`api_hash`、手机号,随后要求输入 Telegram 发送的验证码。只需输入一次——
之后 Scout 会自动记住(`scout.session` 文件将保存在你本地)。
- **Threads** —— 无需单独登录,但**请务必在 Chrome 中登录 Threads**(常规
登录方式即可)。Scout 会直接读取你的 Chrome cookies —— 就像 The TET 的原理一样。原因:无法匿名
抓取个人主页。你无需在 Scout 中输入任何信息,也不涉及任何密钥。
- **深度:** Scout 会启动真正的 headless 浏览器(首次运行 `./run.sh` 时会自动安装 Chromium),利用你的 cookies 模拟下拉页面,并抓取**所选时间窗口内的发帖历史** —— 最长约1年(而不是像静态页面那样只能抓取最新的5条)。模拟正常人类的滚动操作,并设有上限 —— 以免触发封禁。
- **数据累积:** 每次运行都会将新抓取的帖子追加到本地的个人主页存档中,并重新生成按月归档的文件 —— 后续多次运行将持续扩充时间线数据。
## DIGEST —— 自带 LLM (BYO-CLI)
Scout **不内置 AI,也不要求提供 API 密钥。** 在 DIGEST 阶段,它会自动检测你本地
已安装的工具,并通过它们进行工作:
- **Claude Code** —— 命令 `claude`([说明文档](https://docs.claude.com/claude-code)),**或者**
- **Codex CLI** —— 命令 `codex`。
如果两者均未安装 —— Scout 会先整合语料库,并生成一个 `DOSSIER.PENDING.md` 文件提示你:
安装任意一款 CLI 工具,然后运行 `./run.sh digest `。
分析过程采用 **map-reduce** 模式(将语料库切分为多个分块,分别进行摘要提取,最后再进行综合分析),
因此即使是长达三年的频道数据也能轻松处理,不会触及上下文长度限制。
## 你将获得什么 —— 包含8大模块的档案
`~/Downloads/Scout//DOSSIER.md`:
1. 产品阶梯(卖什么、价格、漏斗步骤)
2. “诱饵”库
3. 内容支柱与节奏
4. 定位与承诺
5. 受众语言(原话提取)
6. 竞争对手的漏洞
7. 传递信息的演进历程
8. **我们的切入点** —— 痛点在哪里以及应对策略
## 命令行操作(无 UI)
```
./run.sh harvest --slug agarkov-dmitry --window 1y \
--youtube "https://youtube.com/@channel" \
--site "https://example.com" \
--telegram "@channel"
./run.sh digest --slug agarkov-dmitry
```
## ⚠️ 风险与责任
Scout 会通过**你个人的登录会话**自动化访问各大平台 —— 此过程
存在实际风险,使用前请务必阅读以下内容:
- **Threads 和 Telegram = 自动化操作你的账号。** 严格来说,这违反了
Meta / Telegram 的服务条款。实际操作中的潜在风险包括临时操作限制、速率限制,如果
操作过于激进,甚至会导致账号被封。Scout 已尽量降低风险(模拟人类操作间隔、
设置抓取量上限、仅读取公开内容、运行在你自己的 Mac 和 IP 地址上),但**无法提供绝对保证**。
- **谨慎使用:** 切勿频繁或大规模运行;不要在你不愿承担封号风险的主力账号上使用。Threads 的增量抓取机制每次只获取少量数据 —— 这比“一次性全量下载”要安全得多。
- **务必在本机运行**(住宅 IP、真实的 Chrome 会话)。不要在服务器/VPS 上运行 ——
服务器 IP 更容易被检测并封禁。
- **这是使用你自己的账号对公开内容进行的合法研究。** 你需自行
遵守各平台规则及当地法律法规。请勿传播
抓取到的私密/付费内容。
- **脆弱性:** 社交媒体平台会不断更新,可能导致抓取功能失效 —— 有时需要修复底层引擎。
简而言之:这是一款仅供个人使用的工具,请低调使用,并风险自负。
## 底层技术揭秘
```
ссылки + окно → HARVEST (yt-dlp / Telethon / краулер) → ~/Downloads/Scout//
│
твой claude|codex ← DIGEST (map-reduce) ─┘ → DOSSIER.md
```
| 数据源 | 抓取内容 | 引擎 |
|---|---|---|
| YouTube | 指定时间段内的视频字幕 | yt-dlp |
| Site | 页面 → markdown | requests + bs4 + markdownify |
| Telegram | 指定时间段内的帖子 | Telethon (需自行登录) |
| Threads | 时间窗口内的个人主页发帖历史 (文本),随时间累积 | headless Chromium (Playwright) + Chrome cookies; SSR-fallback |
## 常见问题排查
- **DIGEST 报错 401 / Invalid credentials** —— 你的 `claude` 未在
headless 模式下登录。请在终端运行 `claude -p "привет"` 进行测试;如果报错,请重新
登录。或者切换至 Codex:`SCOUT_CLI=codex ./run.sh digest `。
- **同时安装了 claude 和 codex** —— 默认使用 `claude`。如需强制指定:
在命令前添加 `SCOUT_CLI=codex`(或 `=claude`)。
- **Telegram 提示“需要登录”** —— 属正常现象,请执行一次性的 `./run.sh auth-tg`。
- **YouTube 未下载任何数据** —— 视频在指定时间段/语言中可能没有字幕,或者所有
视频的发布时间都早于所选的时间窗口。请尝试扩大 WINDOW 的范围。
许可证 —— MIT。随心所欲自由使用。标签:LLM集成, Python, 命令控制, 商业情报, 数据采集, 无后门, 特征检测, 竞品分析, 逆向工具