union-search-skillCAUTION
统一搜索工具集 - 跨平台内容搜索解决方案,支持 B 站/抖音/小红书/GitHub/Twitter 等 20+ 平台
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
🚀 统一的多平台搜索解决方案 — 一次调用,触达全网
[](https://www.python.org/downloads/) [](https://opensource.org/licenses/MIT) [](https://github.com/psf/black) [](CONTRIBUTING.md)
📖 目录
- 快速开始
- 支持的平台
- 统一 CLI 命令
- 使用示例
- 搜索日志记录
- 配置指南
- 项目结构
- 故障排查
- 贡献指南
- 许可证
🎯 特性亮点
- 🌐 全网覆盖 — 支持 30+ 搜索平台,涵盖开发者社区、社交媒体、通用搜索引擎
- ⚡ 统一接口 — 单一 CLI 命令调用所有平台,标准化输出格式
- 🔧 灵活配置 — 支持分组搜索、并发控制、结果过滤、多格式输出
- 📦 开箱即用 — 最小依赖设计,按需启用高级功能
- 🛡️ 生产就绪 — 完整的错误处理、速率限制、健康检查
- 🏆 渠道最多 — 与其他开源项目相比,本项目支持最多的搜索渠道和备用方案
- 🔄 自动降级 — 多渠道冗余设计,主渠道失败自动切换备用方案
💡 为什么选择这个项目?
核心优势:
- 渠道最多:一个项目解决所有搜索需求,无需在不同项目间切换
- 容错性强:某个 API 失效时,自动切换到其他可用渠道
- 持续扩展:不断添加新的搜索渠道和下载功能
📋 路线图
即将上线
⚠️ 安装提示
本项目文件较大(约 100MB+),Claude Code Core Hub 对 Skill/Agent 有 50MB 的大小限制。因此: - ❌ 通过 Core Hub 安装的版本会缺失部分文件(大文件会被忽略) - ✅ 推荐直接从 GitHub 仓库下载完整版本:https://github.com/anyangrc/union-search-skill - GitHub 仓库包含完整的依赖文件、脚本和文档,是最完整的安装方式
🚀 快速开始
1. 安装依赖
本项目支持统一的依赖管理:
# 安装 Python 依赖 pip install -r requirements.txt #
a8b5949e25aaOBSERVED · 2026-10-14Install
Commands as the repository documents them. They are shown, not run.
pip install -r requirements.txt
npm install
pip install pyimagedl
pip install --upgrade certifi
pip install --upgrade requests python-dotenv
pip install requests lxml python-dotenv
Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned | |
| cursor | mentioned | |
| openclaw | mentioned | |
| windsurf | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: union-search-skill description: 当用户需要跨多个平台搜索内容时使用此技能,包括 GitHub(仓库、代码、问题)、Reddit(帖子、子版块、用户)、小红书、抖音、Bilibili、YouTube、Twitter、微信(公众号文章)、Google、Tavily、秘塔搜索、火山引擎,以及通用搜索引擎(DuckDuckGo、Brave、Yahoo、Bing、Wikipedia、Anna's Archive),或从 18 个图片平台(百度、Bing、Google、Pixabay、Unsplash、火山引擎等)下载图片。提供统一的搜索接口,支持结构化输出格式、结果过滤、排序、自动响应归档和批量图片下载(保留元数据)。 --- # 联合搜索技能 ## 目的 提供跨多个平台的统一搜索能力,支持 20+ 个平台的内容搜索和数据获取。所有搜索脚本遵循标准化的输入/输出约定,提供可靠、可读的结果。 ## 何时使用此技能 - 跨多个平台搜索内容(GitHub、Reddit、社交媒体、搜索引擎) - 按时间范围、互动指标或内容类型过滤结果 - 批量搜索/下载并归档原始响应 - 需要无 API 密钥的搜索方案 ## 可用的搜索工具 所有脚本位于 `scripts/` 目录,每个模块都有详细的 README 文档。 ### 开发者与社区搜索 | 平台 | 描述 | 文档 | |------|------|------| | **GitHub** | 仓库、代码、问题/PR搜索 | [GITHUB_README.md](scripts/github/GITHUB_README.md) | | **Reddit** | 帖子、子版块、用户搜索 | [REDDIT_README.md](scripts/reddit/REDDIT_README.md) | ### 社交媒体与网络搜索 | 平台 | 描述 | 文档 | |------|------|------| | **小红书** | 笔记搜索,支持过滤排序 | [XIAOHONGSHU_README.md](scripts/xiaohongshu/XIAOHONGSHU_README.md) | | **抖音** | 视频搜索,支持过滤选项 | [DOUYIN_README.md](scripts/douyin/DOUYIN_README.md) | | **Bilibili** | 视频搜索,双API支持 | [BILIBILI_README.md](scripts/bilibili/BILIBILI_README.md) | | **Twitter** | 帖子和时间线搜索 | [TWITTER_README.md](scripts/twitter/TWITTER_README.md) | | **YouTube** | 视频、评论搜索 | [YOUTUBE_README.md](scripts/youtube/YOUTUBE_README.md) | | **知乎** | 中文问答平台 | [ZHIHU_README.md](scripts/zhihu/ZHIHU_README.md) | | **微信** | 微信公众号文章搜索 (JS 版) | [WECHAT_JS_README.md](scripts/wechat/WECHAT_JS_README.md) | | **Google** | Custom Search API | [GOOGLE_SEARCH_README.md](scripts/google_search/GOOGLE_SEARCH_README.md) | | **Tavily** | AI驱动搜索引擎 | [TAVILY_SEARCH_README.md](scripts/tavily_search/TAVILY_SEARCH_README.md) | | **秘塔搜索** | AI驱动搜索,智能摘要 | [METASO_README.md](scripts/metaso/METASO_README.md) | | **火山引擎** | 字节跳动融合信息搜索 | [VOLCENGINE_README.md](scripts/volcengine/VOLCENGINE_README.md) | | **Exa** | 神经搜索,代码/公司/人物/深度研究 | [EXA_SEARCH_README.md](scripts/exa_search/EXA_SEARCH_README.md) | **注意**: 火山引擎的图片搜索功能已集成到 union_image_search 模块 ### 通用搜索引擎(无需 API 密钥) | 平台 | 描述 | 文档 | |------|------|------| | **DuckDuckGo** | 隐私搜索引擎 | [DUCKDUCKGO_README.md](scripts/duckduckgo/DUCKDUCKGO_README.md) | | **Brave** | 隐私搜索引擎 | [BRAVE_README.md](scripts/brave/BRAVE_README.md) | | **Yahoo** | 雅虎搜索引擎 | [YAHOO_README.md](scripts/yahoo/YAHOO_README.md) | | **Bing** | 微软搜索引擎 | [BING_README.md](scripts/bing/BING_README.md) | | **Wikipedia** | 百科全书搜索 | [WIKIPEDIA_README.md](scripts/wikipedia/WIKIPEDIA_README.md) | | **Anna's Archive** | 电子书搜索 | [ANNASARCHIVE_README.md](scripts/annasarchive/ANNASARCHIVE_README.md) | ### 其他搜索工具 | 工具 | 描述 | 文档 | |------|------|------| | **联合搜索** | 统一多平台搜索接口 | [UNION_SEARCH_README.md](scripts/union_search/UNION_SEARCH_README.md) | | **图片搜索** | 18平台批量图片下载 (含火山引擎) | [UNION_IMAGE_SEARCH_README.md](scripts/union_image_search/UNION_IMAGE_SEARCH_README.md) | | **RSS** | 订阅源内容搜索 | [RSS_SEARCH_README.md](scripts/rss_search/RSS_SEARCH_README.md) | ## 快速开始 ### 1. 配置凭据 在项目根目录创建 `.env` 文件(参考 `ENV_TEMPLATE.txt`): ```bash # 复制模板 cp ENV_TEMPLATE.txt .env # 编辑配置 # 填入必要的 API 凭据 ``` **详细配置指南**: 参考 [API 凭据获取指南](references/api_credentials.md) ### 2. 执行搜索 建议使用统一的 CLI 入口 `union_search_cli.py`: ```bash # 联合搜索(推荐)- 同时搜索多个平台 python union_search_cli.py search "AI Agent" --group dev --preset large # 指定平台搜索 python union_search_cli.py platform github "machine learning" --limit 5 # 提取网页内容到 Markdown python union_search_cli.py defuddle https://example.com --json # 运行环境检查 python union_search_cli.py doctor ``` 常用参数: - `--preset`: 预设结果数量 (`small`=3, `medium`=5, `large`=10, `extra`=20) - `--limit` / `-l`: 自定义每平台结果数量 - `--platforms` / `-p`: 指定平台(空格分隔) - `--group` / `-g`: 指定平台组 (`search`, `social`, `dev`, `no_api_key`) - `--deduplicate`: 跨平台去重 - `--pretty`: 格式化 JSON 输出 - `-o` / `--output`: 保存输出到文件 ### 3. 查看结果 - **终端输出**: 格式化的 Markdown 表格 - **原始响应**: 保存在 `responses/` 目录(使用 `--save-raw` 参数) ## 使用工作流 ### 标准搜索流程 1. **运行前**: 验证 `.env` 配置存在且包含有效凭据 2. **运行**: 从技能目录直接执行脚本 3. **运行后**: 检查终端输出和 `responses/` 目录中的原始响应文件 ### 通用参数 大多数工具支持以下参数: - `--limit` / `-n`: 返回的结果数量 - `--json`: JSON 格式输出 - `--pretty`: 格式化 JSON 输出 - `--markdown`: Markdown 格式输出 - `-o` / `--output`: 保存输出到文件 - `--save-raw`: 保存原始 API 响应到 `responses/` 目录 ### 最佳实践 **结果过滤**: - 使用 `--limit` 控制输出量 - 应用时间过滤器获取最新内容 - 按互动指标排序以找到热门内容 **响应管理**: - 永远不要将完整的原始 JSON 粘贴到对话中 - 需要完整数据访问时引用 `responses/` 文件 - 使用 grep/jq 从保存的响应中提取特定字段 **多平台搜索**: - 为不同平台依次运行脚本 - 使用保存的响应文件比较跨平台结果 ## 参考文档 详细的配置、限制和问题排查信息,请参考 `references/` 目录: - **[API 凭据获取指南](references/api_credentials.md)** - 如何获取各平台的 API 凭据 - **[速率限制说明](references/rate_limits.md)** - 各平台的速率限制和配额信息 - **[平台特定说明](references/platform_notes.md)** - 各平台的特殊说明和注意事项 - **[问题排查指南](references/troubleshooting.md)** - 常见问题的诊断和解决方案 - **[Google 搜索技巧](references/google_search_guide.md)** - Google 搜索高级指令速查 ## 常见问题速查 | 问题 | 解决方案 | 详细文档 | |------|----------|----------| | 缺少凭据 | 检查 `.env` 文件配置 | [API 凭据](references/api_credentials.md) | | API 速率限制 | 降低请求频率或限制结果数量 | [速率限制](references/rate_limits.md) | | 网络超时 | 增加超时值或使用代理 | [问题排查](references/troubleshooting.md) | | 无效参数 | 查看模块 README 或使用 `--help` | 各模块 README | | 403 Blocked | 使用代理或降低请求频率 | [问题排查](references/troubleshooting.md) | | 平台特定问题 | 查看平台说明 | [平台说明](references/platform_notes.md) | ## 项目结构 ``` union-search-skill/ ├── scripts/ # 所有搜索脚本 │ ├── union_search/ # 联合搜索(新增) │ ├── github/ # GitHub 搜索 │ ├── reddit/ # Reddit 搜索 │ ├── xiaohongshu/ # 小红书搜索 │ ├── douyin/ # 抖音搜索 │ ├── bilibili/ # Bilibili 搜索 │ ├── youtube/ # YouTube 搜索 │ ├── google_search/ # Google 搜索 │ ├── tavily_search/ # Tavily 搜索 │ ├── exa_search/ # Exa 神经搜索 │ ├── duckduckgo/ # DuckDuckGo 搜索 │ ├── brave/ # Brave 搜索 │ ├── yahoo/ # Yahoo 搜索 │ ├── bing/ # Bing 搜索 │ ├── wikipedia/ # Wikipedia 搜索 │ ├── annasarchive/ # Anna's Archive 搜索 │ ├── wechat/
Trust audit
CAUTIONgrade B · trust 82/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (5 observation(s))
- Shell
- declared (1 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (13)
# ============================================
# print(f"Warning: Key {api_key[:8]}... failed: {e}. Trying next key...")url_hash = hashlib.md5(feed_url.encode()).hexdigest()[:8]
DUCKDUCKGO_PROXY=http://127.0.0.1:7890
BRAVE_PROXY=http://127.0.0.1:7890
YAHOO_PROXY=http://127.0.0.1:7890
BING_PROXY=http://127.0.0.1:7890
WIKIPEDIA_PROXY=http://127.0.0.1:7890
cheerio, commander, jsdom
requests, python-dotenv, lxml, pyimagedl, yt-dlp, tavily-python, loguru, pydantic
commander, mathml-to-latex, temml, turndown
requests, loguru, python-dotenv
Gates applied: no_behavioural_pass, no_license.
a8b5949e25aafull audit observations/trust-audit/skill/runningz1__union-search-skill.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-14 | a8b5949e25aa | CAUTION | B | 82 | first audit |
Questions
What does the union-search-skill skill do?
统一搜索工具集 - 跨平台内容搜索解决方案,支持 B 站/抖音/小红书/GitHub/Twitter 等 20+ 平台
Is union-search-skill safe to install?
With care. The audit graded it B (82/100) and found 13 things worth knowing before you trust this skill, listed below with the exact line each was found on.
What can union-search-skill access on my machine?
The audit observed that it reaches the network and runs shell commands. Each of those is consistent with what it says it does. Secrets in the source: none found.
Which assistants does union-search-skill work with?
Its documentation mentions claude-code, cursor, openclaw and windsurf. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (a8b5949e25aa), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.