alexandercroft/scout

GitHub: alexandercroft/scout

Scout 是一款本地竞品情报分析工具,批量采集 YouTube、网站、Telegram 和 Threads 的指定时间段内容,借助自带 LLM 生成结构化竞争档案。

Stars: 1 | Forks: 0

# SCOUT. **本地竞品分析器:输入链接 → 批量下载指定时间段的内容 → 生成档案。** ![Python](https://img.shields.io/badge/python-3.10+-blue) ![Platform](https://img.shields.io/badge/platform-macOS-lightgrey) ![License](https://img.shields.io/badge/license-MIT-green)
Scout interface
## 这是什么 粘贴竞争对手的链接(**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, 命令控制, 商业情报, 数据采集, 无后门, 特征检测, 竞品分析, 逆向工具