---
type: research
title: GitHub 免费热点与评论采集调研
summary: 以零付费取数为门槛，对比 GitHub 项目的 star、维护、许可、关键词与评论能力，明确可复用功能及国内覆盖缺口
status: 源码桌面调研，未实测采集
date: 2026-10-07
updated: 2026-10-07
---

# GitHub 免费热点与评论采集调研

## 结论与当前优先级

按用户最新要求，本轮将重心从商业竞品转为 **GitHub 上能帮助免费获取热点、关键词帖子和评论的项目**。建议优先验证 MediaCrawler 的国内多平台取数路径，以 MIT 的 WeiboSpider 作为微博专用备选；热榜只补充 NewsNow / DailyHotApi 中实际需要的来源。RSSHub、SearXNG 沿用独立服务思路、逐路由核验。TrendRadar、BettaFish 主要参考产品流程，暂不整体引入。

最重要的筛选顺序是：**实际取数无必需付费依赖 → 能满足目标数据粒度 → 许可符合复用方式 → 当前路径可验证 → 维护与 star**。不按 star 排名决定采用，不因为其他路径失败而切换收费服务。上面的选型是 AI 建议，尚无平台运行结论。

本轮没有发现一个已经由我们验证、能免费完整覆盖国内全部主流平台的通用项目。七平台采集器也不能填平头条、公众号、视频号等缺口。最终平台范围继续按[总 PRD](../product/prd/01-PRD.md)核对，真实输入和结果写入[国内 POC 卡](2026-10-07-国内平台关键词监控POC验证.md)，进度只在 [BACKLOG](../../../BACKLOG.md)。

## 研究方法与 FREE 的定义

沿用 `pm-market-research:competitor-analysis`，将分析对象改为可复用软件和相邻替代方案：定位、核心能力、依赖费用、短板、维护信号及对本项目的取舍；结合既有 `prioritize-features`、`identify-assumptions-existing` 和 `test-scenarios` 把发现转成验证项。没有用户访谈、满意度调查或市场份额数据，不从 star 推导用户规模或商业价值。

2026-10-07 通过用户指定的 GitHub 插件读取公开元数据、默认分支 HEAD、README、LICENSE、配置及关键源文件；搜索词包括“热点 热榜 实时 RSS”“关键词 评论 爬虫 免费”，并沿候选官方仓库核查。少量网页搜索用于补充发现，结论以官方仓库为据。候选包括多平台采集、专用评论爬虫、热榜、RSS、元搜索与海外后续能力；不把下载器、热榜网站都当成完整竞争产品。

本页 star/fork 为核验时快照，日期均为北京时间。精确元数据链接见表中 star；固定提交用于复查源码。`pushed_at` 可来自其他分支，默认分支最新提交也可能只改广告或文档，两者都不是“接口最近成功时间”。归档状态仅表示仓库标志，不保证维护持续。

| 准入问题 | 本项目口径 |
|---|---|
| 什么叫免费取数 | 选定链路无按次/包月数据 API、收费签名、代理、打码或购买账号的必要依赖；本机运行、直接读取允许访问的内容，第三方服务费用为 0 |
| 免费试用算不算 | 不算长期可用路径；赠送额度、限时试用和先绑卡均不能替代零费用证明 |
| 公共免费 API 算不算 | 只能说明当前可能免费，需核对实现和替代路径；无承诺的公共实例不能成为唯一依赖 |
| 自建是不是免费 | 软件/接口零付费不等于零资源成本；记录本机 CPU、内存、磁盘、网络、维护和本人登录耗时，不推荐另购云服务 |
| API key 是否必然收费 | 不是；但来源及持续免费条件未核实时，该路径不准入。可选广告或赞助商也不自动等于必需依赖 |
| 模型怎么算 | 原帖与评论采集不依赖模型；相关性分析只走既有本机 Codex 决策，使用本人已有额度，不宣称模型普遍或无限免费 |
| 免费与许可的关系 | 两项独立核对。MIT 按署名规则评估改编；GPL/AGPL 依既有决策只参考或独立服务；自定义许可按正文核对，无可核对许可不采用 |

零费用是已确认约束，见[用户原话](../product/reference/04-需求与验证入口.md)、[费用决策](../decisions/02-第三方费用为零.md)和[开源复用决策](../decisions/08-优先复用开源项目.md)。本次只有只读研究，没有安装、平台登录、真实抓取、购买、外发或业务编码。源码可行路径不等于已经获准的数据访问，也不等于真实运行通过；执行仍沿用本人单账号、凭据只留本机、风控停止的现有边界。

## 候选仓库与维护快照

以下按任务类型排列。所有表内仓库本轮 `archived=false`；这不消除停更、许可或运行缺口。许可证列同时核对 API 与仓库正文，有冲突时不只看徽章。

| 项目与定位 | Star / Fork | 默认分支最新提交日 / 最近 push 日 | 许可及本轮取舍 |
|---|---:|---|---|
| [MediaCrawler](https://github.com/NanmiCoder/MediaCrawler)：国内多平台帖子/评论 | [66,344 / 12,720](https://api.github.com/repos/NanmiCoder/MediaCrawler) | 10-05 / 10-05 | 自定义非商业学习许可 1.1，非 MIT；优先评估独立采集路径 |
| [TikTokDownloader](https://github.com/JoeanAmier/TikTokDownloader)：抖音/TikTok 专用采集 | [16,544 / 2,795](https://api.github.com/repos/JoeanAmier/TikTokDownloader) | 09-16 / 09-22 | GPL-3.0；专用采集参考候选 |
| [Douyin_TikTok_Download_API](https://github.com/Evil0ctal/Douyin_TikTok_Download_API)：详情/评论接口服务 | [20,492 / 2,842](https://api.github.com/repos/Evil0ctal/Douyin_TikTok_Download_API) | 10-02 / 10-02 | Apache-2.0；详情/评论备选，采用方式待逐项核对 |
| [nghuyong/WeiboSpider](https://github.com/nghuyong/WeiboSpider)：微博关键词与评论 | [4,120 / 837](https://api.github.com/repos/nghuyong/WeiboSpider) | 06-30 / 06-30 | MIT；微博专用备选，可评估适配改编 |
| [dataabc/weibo-crawler](https://github.com/dataabc/weibo-crawler)：指定作者微博 | [4,660 / 917](https://api.github.com/repos/dataabc/weibo-crawler) | 07-22 / 07-22 | 许可证据不足，暂不采用 |
| [SpiderClub/weibospider](https://github.com/SpiderClub/weibospider)：旧微博采集框架 | [4,789 / 1,176](https://api.github.com/repos/SpiderClub/weibospider) | **2019-12-24 / 2020-07-11** | MIT；历史设计参照，非当前首选 |
| [Spider_XHS](https://github.com/cv-cat/Spider_XHS)：小红书采集/运营 | [7,998 / 1,389](https://api.github.com/repos/cv-cat/Spider_XHS) | 09-27 / 09-27 | README 徽章写 MIT，但当前树没有 LICENSE；不准入 |
| [TrendRadar](https://github.com/sansan0/TrendRadar)：热榜/RSS 筛选阅读 | [62,703 / 24,884](https://api.github.com/repos/sansan0/TrendRadar) | 09-13 / 09-13 | GPL-3.0；参考关键词和快照流程 |
| [NewsNow](https://github.com/newsnext/newsnow)：热榜适配与阅读 | [21,967 / 5,980](https://api.github.com/repos/newsnext/newsnow) | 09-16 / 09-16 | MIT；按需评估来源适配，已有维护转向说明 |
| [DailyHotApi](https://github.com/imsyy/DailyHotApi)：热榜 API | [4,084 / 1,344](https://api.github.com/repos/imsyy/DailyHotApi) | 03-11 / 03-11 | MIT；热榜备选，接口有效性待实测 |
| [RSSHub](https://github.com/DIYgod/RSSHub)：路由转 RSS | [46,429 / 10,252](https://api.github.com/repos/DIYgod/RSSHub) | 10-07 / 10-07 | 当前 AGPL-3.0；独立服务，逐路由核对 |
| [SearXNG](https://github.com/searxng/searxng)：元搜索 | [38,055 / 3,470](https://api.github.com/repos/searxng/searxng) | 10-04 / 10-04 | AGPL-3.0，源码标注 or-later；独立服务补充发现 |
| [BettaFish](https://github.com/666ghj/BettaFish)：多 Agent 舆情报告 | [42,347 / 7,609](https://api.github.com/repos/666ghj/BettaFish) | 10-02 / 10-02 | API 识别 GPL-2.0，LICENSE 有混合附加文本；仅参考 |
| [twscrape](https://github.com/vladkens/twscrape)：X 搜索与回复 | [2,837 / 322](https://api.github.com/repos/vladkens/twscrape) | 10-05 / 10-05 | MIT；海外后续，不能直接沿用默认账号池 |
| [Instaloader](https://github.com/instaloader/instaloader)：Instagram 已知对象 | [13,509 / 1,612](https://api.github.com/repos/instaloader/instaloader) | 09-07 / 09-07 | MIT；海外后续，非任意关键词全站搜索 |

除明确写年份的旧仓库，日期均为 2026 年。NewsNow 的旧 `ourongxing/newsnow` 已重定向到 `newsnext/newsnow`，不是两个项目。没有用 GitHub `updated_at` 充当代码活跃度，也未把包含 PR 的 `open_issues_count` 当成未解决故障数量。

## 国内关键词与评论采集

### MediaCrawler：优先验证已有方向，不把上游平台表当成接通结果

官方功能表列出小红书、抖音、快手、B 站、微博、贴吧、知乎的关键词搜索、指定帖子和评论能力，是最贴近国内 POC 的多平台候选。本轮核对的是普通版本；Pro、付费代采、赞助服务不计入能力。取数路径及许可固定在[本轮 HEAD](https://github.com/NanmiCoder/MediaCrawler/tree/5d547f45862ca2d4b404e5a51775879d579b29d4)。

深入核对的微博搜索、一级评论链路直接调用平台接口，代理默认关闭，没有必需付费数据 API。一级评论可按 max_id 翻页；二级方法只遍历响应内嵌 comments，不能宣称完整回复树，存储的 parent 字段来自 rootid，也不等价于每层直接父关系。一级评论默认开、二级默认关。[微博客户端](https://github.com/NanmiCoder/MediaCrawler/blob/5d547f45862ca2d4b404e5a51775879d579b29d4/media_platform/weibo/client.py#L151)、[关系字段](https://github.com/NanmiCoder/MediaCrawler/blob/5d547f45862ca2d4b404e5a51775879d579b29d4/store/weibo/__init__.py#L143)、[默认配置](https://github.com/NanmiCoder/MediaCrawler/blob/5d547f45862ca2d4b404e5a51775879d579b29d4/config/base_config.py)

许可正文限制在非商业学习研究，要求保留声明，商业使用需书面许可。**个人非商业不自动等于所有用途都满足该许可**；实际采用版本和用途需按正文核对，不能把源码当 MIT 复制。本项目已有 MediaCrawler 桥接仍固定 B 站、限额较小，其他平台未因上游支持而自动接通。免费与父链结论也不从微博推广到全部七平台。[自定义许可](https://github.com/NanmiCoder/MediaCrawler/blob/5d547f45862ca2d4b404e5a51775879d579b29d4/LICENSE)、[本项目差距](2026-10-07-热点事件需求核对.md#当前实现与需求的差距)

### 两个抖音专用项目：能力相邻，但当前接线程度不同

**TikTokDownloader / DouK** 有关键词搜索、热榜、详情、评论与独立回复接口，评论输出包含 cid、reply_id、reply_to_reply_id；回复默认关闭。所查路径直连抖音并在本地生成参数，代理可选，作者声明没有付费版本，赞助商 API 不是必选。可以参考搜索参数、评论关系和不同采集模式；README 的“增量”是账号作品下载，不能直接当作关键词水位或旧帖新评论监控。GPL-3.0 及 README 声明需随版本核对，按当前规则先参考流程，不搬代码。[搜索](https://github.com/JoeanAmier/TikTokDownloader/blob/473c90ff70c663cfb69310fff2b8d5192f200661/src/interface/search.py)、[回复](https://github.com/JoeanAmier/TikTokDownloader/blob/473c90ff70c663cfb69310fff2b8d5192f200661/src/interface/comment.py#L155)、[无付费版本说明](https://github.com/JoeanAmier/TikTokDownloader/blob/473c90ff70c663cfb69310fff2b8d5192f200661/README.md#L418)、[许可](https://github.com/JoeanAmier/TikTokDownloader/blob/473c90ff70c663cfb69310fff2b8d5192f200661/license)

**Evil0ctal Douyin_TikTok_Download_API v5** 已注册详情、作者内容、评论及回复，解析保留 parent_id。README 简介提搜索，但当前 Douyin ENDPOINTS 未注册搜索/热榜，只有 URL 常量；不能写成关键词监控已经现成。Watchlist 定时重采作者/帖子也不能补齐关键词发现。FAQ 明确本项目无托管免费额度或可购买 key，TikHub 是独立付费服务；自托管所查路径无需购买它，但有本机 Postgres、Redis、会话及可选浏览器资源。Apache-2.0 不在旧决策明确列举的 MIT 规则内，本轮仅作为候选；若后续采用，记录许可证、适用 NOTICE 和修改声明，不自动迁整套服务。[实际接口注册](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/4f0bed8483c35a980315d9c7b3a1d4a1119ad2b2/src/dtk/platforms/douyin/endpoints.py#L218)、[评论解析](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/4f0bed8483c35a980315d9c7b3a1d4a1119ad2b2/src/dtk/platforms/douyin/parser.py#L492)、[费用与会话 FAQ](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/4f0bed8483c35a980315d9c7b3a1d4a1119ad2b2/documents/en/17-faq.md)、[许可](https://github.com/Evil0ctal/Douyin_TikTok_Download_API/blob/4f0bed8483c35a980315d9c7b3a1d4a1119ad2b2/LICENSE)

### nghuyong/WeiboSpider：可改编的微博专用备选

该项目同时提供关键词时间窗搜索、原帖详情、长文、评论与二级回复。关键词 spider 请求微博搜索页再取原帖，评论 spider 请求平台的评论端点；代理中间件默认返回空，README 中代理试用广告不是核心必需依赖。因此在所读路径上存在“不购买微博 API、不购买代理”的源码方案，但需要本人 Cookie 且尚未运行。[关键词实现](https://github.com/nghuyong/WeiboSpider/blob/5d97904525e933c49bdb09a461e9e61fb02ff725/weibospider/spiders/tweet_by_keyword.py)、[评论实现](https://github.com/nghuyong/WeiboSpider/blob/5d97904525e933c49bdb09a461e9e61fb02ff725/weibospider/spiders/comment.py)、[代理实现](https://github.com/nghuyong/WeiboSpider/blob/5d97904525e933c49bdb09a461e9e61fb02ff725/weibospider/middlewares.py)

可采用的是搜索时间窗、关键词记录、详情补全、原生 ID 与回复引用等结构，MIT 允许按既有工程规则评估改编。不能原样照搬：示例关键词和时间硬编码；Cookie 读自文本文件；并发默认 16，不符合本项目自动扩量的理由；二级回复请求没有继续翻页，输出也没有统一保留每条评论的原帖/根评论字段。最新 HEAD 仅改 README，不能据此认定评论路径六月刚验证成功。[配置](https://github.com/nghuyong/WeiboSpider/blob/5d97904525e933c49bdb09a461e9e61fb02ff725/weibospider/settings.py)、[MIT 许可](https://github.com/nghuyong/WeiboSpider/blob/5d97904525e933c49bdb09a461e9e61fb02ff725/LICENSE)

另外两项不能与它混为一谈：**dataabc/weibo-crawler** 的关键词查询限定指定作者，评论只有一级且限 SQLite 输出；模型分析可不配置，所查直连微博路径无必需付费 API，但未发现许可，不采用代码。**SpiderClub/weibospider** 虽为 MIT 且有关键词/评论，但默认分支停在 2019 年，增量仍有 TODO，评论解析无父评论字段；只保留历史参考，不因接近五千 star 而优先。[dataabc 查询范围](https://github.com/dataabc/weibo-crawler/blob/a3bfe515e9886b84151c609debdc636cbb0e9730/weibo.py#L704)、[评论限制](https://github.com/dataabc/weibo-crawler/blob/a3bfe515e9886b84151c609debdc636cbb0e9730/README.md#L468)、[文件树](https://github.com/dataabc/weibo-crawler/tree/a3bfe515e9886b84151c609debdc636cbb0e9730)、[SpiderClub 搜索](https://github.com/SpiderClub/weibospider/blob/e1f289871187da9e1c9096cd61984066c73625a8/tasks/search.py)、[评论解析](https://github.com/SpiderClub/weibospider/blob/e1f289871187da9e1c9096cd61984066c73625a8/page_parse/comment.py#L57)、[许可](https://github.com/SpiderClub/weibospider/blob/e1f289871187da9e1c9096cd61984066c73625a8/LICENSE)

### Spider_XHS：功能丰富不抵消许可缺口

当前 README 声称支持笔记搜索、详情和评论，登录态及签名在本地处理；同时包含发布、私信、直播与运营能力，这些均不属于当前监控 POC。README 的 MIT 徽章链接到 LICENSE，但本轮完整 Git 树无许可证文件，API 的 license 为 null；正文还写仅学习交流、禁止商业化，不能按一个徽章当作清晰 MIT 授权。**暂不采用其代码**，也不把所称稳定性当作真实结果。[固定 README](https://github.com/cv-cat/Spider_XHS/blob/ebb6c4fbeaedf1237190ebc0c8e3ae8b7ddd030e/README.md)、[完整树证据](https://api.github.com/repos/cv-cat/Spider_XHS/git/trees/ebb6c4fbeaedf1237190ebc0c8e3ae8b7ddd030e?recursive=1)

## 热榜与 RSS：免费线索不等于关键词全平台搜索

### NewsNow：MIT 来源适配值得借鉴，维护转向需要计入成本

抽检微博、抖音、知乎、百度、B 站、头条来源，直接请求平台网页或网页所用接口，没有必需付费取数 key；部分需 Cookie/临时会话。可在本机运行，通用 RSSHub helper 默认仍指向公共实例，因此还要逐来源检查依赖，不能宣称所有链路都自主。[来源目录](https://github.com/newsnext/newsnow/tree/0f95b2c998dffbfd2ddbc51b47b5809887dc6b97/server/sources)、[RSS helper](https://github.com/newsnext/newsnow/blob/0f95b2c998dffbfd2ddbc51b47b5809887dc6b97/server/utils/source.ts)

值得采用：来源适配、统一条目结构、来源刷新间隔、缓存状态及榜单阅读。不提供任意关键词原帖与评论闭环；`/api/s` 每来源最多 30 条，缓存写入会覆盖，不是完整历史。缓存未过刷新间隔时也可返回 success 及当前 `updatedTime`，不能据此证明刚重抓或刚发布。[API](https://github.com/newsnext/newsnow/blob/0f95b2c998dffbfd2ddbc51b47b5809887dc6b97/server/api/s/index.ts)、[缓存](https://github.com/newsnext/newsnow/blob/0f95b2c998dffbfd2ddbc51b47b5809887dc6b97/server/database/cache.ts)

README 已说明转向 NewsNext、当前不再接收贡献；最新提交添加候补名单。因此 2 万多 star 和未归档状态不足以证明旧项目后续适配会持续修复。建议仅评估需要的 MIT 来源，不把未来产品的费用与能力算入当前方案。[README](https://github.com/newsnext/newsnow/blob/0f95b2c998dffbfd2ddbc51b47b5809887dc6b97/README.md)

### DailyHotApi：轻量热榜备选，时间字段需要重新解释

支持统一 JSON/RSS、缓存和本机 Node/Docker 部署；抽检微博、抖音、知乎、B 站的取数链路直连平台，不要求商业取数 key。Redis 不可用时可退回进程缓存，演示站与广告不作为方案依赖。本轮只将这些被核查来源列为免费候选，不推广到全部路由。[README](https://github.com/imsyy/DailyHotApi/blob/36c77e3bd891c11642d314cfb229bf31646704de/README.md)、[缓存实现](https://github.com/imsyy/DailyHotApi/blob/36c77e3bd891c11642d314cfb229bf31646704de/src/utils/cache.ts)

可借鉴 MIT 来源解析及结果格式，未证明任意关键词搜索、评论树或持久增量。`updateTime` 是抓取时间；微博条目 `timestamp` 用上榜时间、缺失时回退当前时间，其他来源又可能是问题创建或事件时间，不能统一称“帖子发布时间”。HEAD 停留在三月，目标接口需优先复测。[请求时间](https://github.com/imsyy/DailyHotApi/blob/36c77e3bd891c11642d314cfb229bf31646704de/src/utils/getData.ts)、[微博映射](https://github.com/imsyy/DailyHotApi/blob/36c77e3bd891c11642d314cfb229bf31646704de/src/routes/weibo.ts)

### TrendRadar：借鉴增量与筛选，免费模式要明确配置

热榜默认取自 `newsnow.busiyi.world/api/s`，可配置自建 NewsNow；RSS 为另一入口。它不是自己实现国内全部平台爬虫。已有关键词分组、排除、榜单快照、排名历史、标题变化及首次/最后抓取，适合阅读工作流参考，未证明社交原帖评论树。[取数](https://github.com/sansan0/TrendRadar/blob/792bcc3928b1617bba09df34989fd5675c159b86/trendradar/crawler/fetcher.py)、[存储结构](https://github.com/sansan0/TrendRadar/blob/792bcc3928b1617bba09df34989fd5675c159b86/trendradar/storage/schema.sql)

配置默认 `filter.method=keyword`，但 AI 分析与翻译均启用；零付费模型路径需显式关闭两者，保留关键词筛选。公共热榜实例无 key 的访问方式不能证明长期服务承诺。热榜表只有抓取时间，RSS 日期还可能从 updated 回退，应保留时间依据；GPL 代码按项目规则仅参考设计。其 AI 模式也不能直接视为已适配本机 Codex。[配置](https://github.com/sansan0/TrendRadar/blob/792bcc3928b1617bba09df34989fd5675c159b86/config/config.yaml)、[RSS 日期](https://github.com/sansan0/TrendRadar/blob/792bcc3928b1617bba09df34989fd5675c159b86/trendradar/crawler/rss/parser.py)

### RSSHub：特定路由的补充入口

抽检 B 站关键词/评论和微博关键词路由，无必需付费取数 API key，但可能需要 Cookie/浏览器；本轮未证明全部路由均免费可用。B 站 vsearch 是真实关键词搜索并保留源日期；视频 reply 路由只映射本次顶层 replies，所查文件无分页与二级递归，不能冒充完整评论树。RSS 缓存也不等于评论增量、父链与删除同步。[B 站搜索](https://github.com/DIYgod/RSSHub/blob/d91baf2a81f931e63f8b520097d7dd3d2354bd8d/lib/routes/bilibili/vsearch.ts)、[评论](https://github.com/DIYgod/RSSHub/blob/d91baf2a81f931e63f8b520097d7dd3d2354bd8d/lib/routes/bilibili/reply.ts)、[微博关键词](https://github.com/DIYgod/RSSHub/blob/d91baf2a81f931e63f8b520097d7dd3d2354bd8d/lib/routes/weibo/keyword.ts)

当前默认分支为 AGPL-3.0，继续按独立服务评估；不能把别的历史版本许可套到本轮 HEAD，也不能把当前 HEAD 套到本机实际安装版本。[当前许可](https://github.com/DIYgod/RSSHub/blob/d91baf2a81f931e63f8b520097d7dd3d2354bd8d/LICENSE)

## 搜索、分析与海外后续

**SearXNG**：百度和 Google 引擎源码标明无需 API key，可作为不购买聚合搜索 API 的公开线索入口。但当前默认配置两者均 disabled，输出格式默认仅 html，使用前要核对实际启用引擎和 JSON；所读引擎会报告 CAPTCHA/拒绝/限流。搜索摘要与索引日期不能替代原帖和评论，AGPL 代码以独立服务方式使用。[百度源码](https://github.com/searxng/searxng/blob/d48c4b555421e824342c51d68482dd0898e54d0f/searx/engines/baidu.py)、[配置](https://github.com/searxng/searxng/blob/d48c4b555421e824342c51d68482dd0898e54d0f/searx/settings.yml)

**BettaFish**：可参考“采集—检索—多角度分析—引用报告”，但完整系统的 Query 搜索缺 Tavily key 会报错，Media 搜索有 Anspire/Bocha key 依赖，模型使用外部兼容接口与 key。key 不必然收费，却没有证明原样运行可满足零新增 provider；不以试用额度准入。国内采集依赖 MindSpider/MediaCrawler，不能将报告效果等同采集验证。LICENSE 在 GPL 文本后又附非商业学习及 Apache 文本，不能只写 GPL-2.0；按当前决策只参考、不搬代码。最新几笔主要涉及文档、赞助或 CI，不代表采集修复。[查询依赖](https://github.com/666ghj/BettaFish/blob/b67928ff1ce515dd7672408221fb1e9500d0972d/QueryEngine/tools/search.py#L83-L93)、[Media 搜索](https://github.com/666ghj/BettaFish/blob/b67928ff1ce515dd7672408221fb1e9500d0972d/MediaEngine/tools/search.py)、[模型](https://github.com/666ghj/BettaFish/blob/b67928ff1ce515dd7672408221fb1e9500d0972d/QueryEngine/llms/base.py)、[混合许可文本](https://github.com/666ghj/BettaFish/blob/b67928ff1ce515dd7672408221fb1e9500d0972d/LICENSE#L342)

**twscrape**：MIT，使用本人已有 X Cookie 直接请求网页 GraphQL，有关键词搜索、详情、直接回复和线程；不必购买官方 API，README 中买号/代理广告不采用。默认会轮换账号或等待，且把 Cookie JSON 写 SQLite，与本项目单账号、风控停止和凭据边界有差距，不能直接接上就称合规可用。最近提交有解析/兼容修复，仍需实际运行。只保留海外后续候选。[API](https://github.com/vladkens/twscrape/blob/568844df82af956df5970bcf7ff84dd5ba729eb0/twscrape/api.py)、[Cookie 存储](https://github.com/vladkens/twscrape/blob/568844df82af956df5970bcf7ff84dd5ba729eb0/twscrape/accounts_pool.py#L127-L141)、[README](https://github.com/vladkens/twscrape/blob/568844df82af956df5970bcf7ff84dd5ba729eb0/readme.md)

**Instaloader**：MIT，直接读取 Instagram，支持已知帖子/账号/标签与评论，不要求广告商的数据 API。评论必须登录；TopSearchResults 返回账号、地点和标签，不等价于任意关键词全站帖子搜索。可参考按 ID 合并评论，不能以快速更新承诺旧帖新回复全部可见。HEAD 是 Cookie 路径文档修正，评论连续性仍未测，国内 POC 不接入。[评论与搜索结构](https://github.com/instaloader/instaloader/blob/7efc78de12e02feb1794b71125a48e66250f0db0/instaloader/structures.py)、[评论合并](https://github.com/instaloader/instaloader/blob/7efc78de12e02feb1794b71125a48e66250f0db0/instaloader/instaloader.py#L372-L443)

## 通用功能如何转成 Ripplesight 的产品能力

### 国内覆盖工作矩阵

| 国内目标 | 本轮最相关免费候选 | 仍须证明 |
|---|---|---|
| 微博 | MediaCrawler；MIT WeiboSpider 备选 | 同窗搜索、真实原帖、评论分页、直接父链与持续免费路径 |
| 抖音 | MediaCrawler；TikTokDownloader 参考；Evil0ctal 详情/评论备选 | 关键词接线、评论层级、会话和增量；三者能力不可互相代填 |
| 小红书 | MediaCrawler；Spider_XHS 未准入 | 搜索、时间、评论与许可适用；不能采用缺失许可证的替代物 |
| B 站 | 现有桥接、MediaCrawler、RSSHub 特定路由 | 现有预算下的真实链路、评论分页及父链；RSS 顶层评论不等于完整树 |
| 快手、知乎、贴吧 | MediaCrawler 官方功能表覆盖 | 本轮没有逐平台深入审完与实测，免费依赖和完整字段继续逐项验证 |
| 今日头条 | NewsNow 的热榜线索 | 任意关键词原帖/评论免费路径未验证；热榜不补齐此项 |
| 微信公众号 | 有历史采集代码线索，暂无本轮准入候选 | 关键词发现、文章及精选留言范围、会话与维护 |
| 微信视频号 | 暂无本轮核验合格候选 | 关键词发现、原帖、评论均是缺口；视频下载不等于评论采集 |

针对缺口另查了两个排除样本：[hzhu212/wechat-mp-crawler](https://api.github.com/repos/hzhu212/wechat-mp-crawler) 为 **55 star / 9 fork**，最近 push 2019-11-05；输入人工导出的指定公众号历史列表，取文章与精选留言，留言 offset 固定、只留首条作者回复，无许可证。[固定源码](https://github.com/hzhu212/wechat-mp-crawler/blob/c42aa5d326edc360322ff02becb917e82115c2b7/main.py#L149-L198)

[dongny/toutiao-comment-scraper](https://api.github.com/repos/dongny/toutiao-comment-scraper) 为 **4 star / 2 fork**，最近 push 2025-07-25；从已知文章 URL 读评论，无关键词发现，无许可证，输出还省略评论 ID/时间/回复数字，不能满足本项目验收。[固定源码](https://github.com/dongny/toutiao-comment-scraper/blob/ad451676d65102025d5042fdb1786a86e0b0a79c/toutiao_scraper_working.py#L356-L363)

两项所读代码虽未见必需付费聚合 API，也不能因“免费”忽略许可与数据缺口；都不采用。有限搜索没有找到视频号合适候选不代表 GitHub 不存在此类项目。上述清单仍为 PRD 的工作枚举，不声称穷尽“国内主流”。

### 可复用功能与当前实现的连接

以下是功能取舍提案，不是新建另一份 PRD。先使用现有采集、监控、内容和评论模块，只在 POC 证明需要后增补。

| 通用功能 | 可参考项目 | 本项目落点与复用方式 | 必须补的验证 |
|---|---|---|---|
| 关键词任一/全部/排除、别名、查询预览 | TrendRadar、MediaCrawler、WeiboSpider | 现有 monitors 查询规则；GPL 参考交互，MIT 搜索映射可评估改编 | 区分平台查询与采后过滤；未召回的近义内容无法被后置 AI 找回 |
| 按平台适配搜索/详情/评论 | MediaCrawler、RSSHub、WeiboSpider | 现有 sources 和 comments；每种能力分别显示状态 | 平台有目录项不等于功能已接通；保留请求预算与停止原因 |
| 原帖—一级评论—二级回复的关联 | MediaCrawler、WeiboSpider、twscrape | 现有 comments 的原生 ID、post/root/parent 和上下文 | 短回复缺关键词仍可相关；分页、父链缺口、排序和采样范围分别记录 |
| 内容 ID 去重与增量 | TrendRadar、Instaloader | 现有内容去重和评论更新；参考算法而非扩大采样 | 第二轮不重复入库；旧帖新评论不能改写原帖发布时间 |
| 来源刷新间隔、缓存与失败状态 | NewsNow、DailyHotApi | 采集运行记录和结果页；MIT 结构可参考 | 无新数据、命中缓存、登录失效和请求失败必须区分 |
| 榜单快照、首次/最后发现、名次变化 | TrendRadar | 热榜补充，保留可追溯快照 | 标明榜单时间；热度不冒充相关性，先于事件聚类大功能 |
| 相关性理由、候选池与反馈 | TrendRadar、BettaFish | 现有本机 Codex 路径，由 PRD 定义标签 | 同池比较关键词基线；不直接使用上游付费模型或未经评测分数 |
| 证据引用和阅读下钻 | BettaFish、NewsNow | 结果页 → 原帖 → 评论 → 原链接 | 每条结论能定位样本；报告引用不证明评论总体代表性 |

可形成的最小链路是：**主题配置 → 免费来源发现 → 原帖详情 → 有预算的评论采样 → 去重和时间标注 → 本机相关性判断 → 可核对的结果**。热榜/RSS 是补充发现入口；无需为了“AI 热点”先部署完整多 Agent 报告产品，也无需先引入向量库。

### 实时与免费之间必须测量的边界

“实时获取”先作为用户目标，不能从仓库介绍推导秒级承诺。热榜截断、上游缓存、关键词搜索排序、轮询间隔、模型排队都会影响延迟。至少记录 `source_published_at`、`source_time_kind`、`first_seen_at`、`fetched_at`、`ready_at`、缓存状态和来源失败；未知发布时间保持未知。

对可信源时间的样本才计算“发布时间到首次发现”的延迟；另报“采集开始到结果可读”的耗时和缓存年龄。对没有发布时间的榜单只报告轮询/发现情况，不计算伪发现延迟。当前 PRD 的单轮 ≤10 分钟只是待冻结的执行初值，不是全平台实时服务保证。为压低延迟而购买服务、切换账号或突破来源限制都不符合当前边界。

### 首轮建议顺序与停止条件

1. **先确认零费用依赖和版本**：每条候选路径记录 SHA、许可、目标域名、是否需要账号/key、必需第三方服务、关闭的可选付费模块。未知收费依赖记“不准入”，不能当 0 元。
2. **先跑一条国内原帖/评论链路**：建议微博比较 MediaCrawler 与 WeiboSpider；已有 B 站桥接可作更小切片。二者是建议，完整国内平台 POC 仍需逐项完成。比较真实可读评论、父链、失败行为、维护改动和取数费用，而非比最大吞吐。
3. **再评估需要的热榜补充**：NewsNow 和 DailyHotApi 选一个有限来源作对照，不同时部署两套同功能服务；需要保留历史时参考 TrendRadar 的快照概念。
4. **再测相关性与增量**：冻结同一候选池，对比关键词基线与本机 Codex；按既有 POC 指标记录结果，不能用增加收费数据源掩盖召回缺口。
5. **再扩下一国内平台**：遇到付费依赖、许可不明、不可访问、风控或样本不足，分别记录阻塞/证据不足；不要把平台目标删掉，也不要写成已支持。X、Instagram 只做后续路线储备。

本轮可支持的是“哪些源码路径值得免费验证、哪些功能适合参考”；还不能支持“已免费跑通”“全平台持续可用”“全量评论”“全网召回率”或“实时 SLA”。[旧开源调研](2026-10-06-开源方案调研.md)保留历史快照，本页作为当前选型核对依据；商业对标保留为体验背景，后续不以采购商业 API 解决本项目取数。
