bestblogs-fetcher
从 BestBlogs.dev OpenAPI 获取并浏览内容——文章、播客、视频、推文和通讯。 当用户希望以下操作时使用: (1) 获取最新文章或热门内容,(2) 在 BestBlogs 中搜索特定主题或关键词,(3) 获取今天或近期的高质量内容,(4) 浏览通讯/期刊,(5) 获取文章详情或全文,(6) 查看播客文字稿,(7) 列出内容来源。 触发短语示例包括 '拉取 BestBlogs 内容'、'获取最新文章'、'今天有什么好文章'、'拉取 BestBlogs'、'获取最新帖子'、'查看精选'、'拉取推文'、'获取播客'、'查看期刊',或任何提到检索 BestBlogs 内容的表达。
分类
其他工具安装
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
BestBlogs Fetcher
Fetch content from BestBlogs.dev OpenAPI. Supports articles, podcasts, videos, tweets, newsletters, and source management.
For full API parameter details, read references/api_reference.md.
Auth
All requests require header X-API-KEY. Read the key from environment variable BESTBLOGS_API_KEY:
-H "X-API-KEY: $BESTBLOGS_API_KEY"If BESTBLOGS_API_KEY is not set, prompt the user to configure it.
Default Fetch Strategy
When user does not specify filters, use these defaults:
timeFilter: 3d (近 3 天)sortType: score_desc (按评分倒序)userLanguage: zh_CNFetch Plan (5 parallel requests, max ~500 items)
# 1. AI articles (100 items)
curl -s -X POST https://api.bestblogs.dev/openapi/v1/resource/list \
-H "Content-Type: application/json" \
-H "X-API-KEY: $BESTBLOGS_API_KEY" \
-d '{"timeFilter":"3d","sortType":"score_desc","userLanguage":"zh_CN","pageSize":100,"type":"ARTICLE","category":"Artificial_Intelligence"}'
# 2. Non-AI articles: Programming + Business + Product (100 items)
curl -s -X POST https://api.bestblogs.dev/openapi/v1/resource/list \
-H "Content-Type: application/json" \
-H "X-API-KEY: $BESTBLOGS_API_KEY" \
-d '{"timeFilter":"3d","sortType":"score_desc","userLanguage":"zh_CN","pageSize":100,"type":"ARTICLE","category":"Programming_Technology"}'
# Note: also fetch Business_Tech and Product_Development if needed, or omit category to get all non-AI articles
# 3. Videos (50 items)
curl -s -X POST https://api.bestblogs.dev/openapi/v1/resource/list \
-H "Content-Type: application/json" \
-H "X-API-KEY: $BESTBLOGS_API_KEY" \
-d '{"timeFilter":"3d","sortType":"score_desc","userLanguage":"zh_CN","pageSize":50,"type":"VIDEO"}'
# 4. Podcasts (50 items)
curl -s -X POST https://api.bestblogs.dev/openapi/v1/resource/list \
-H "Content-Type: application/json" \
-H "X-API-KEY: $BESTBLOGS_API_KEY" \
-d '{"timeFilter":"3d","sortType":"score_desc","userLanguage":"zh_CN","pageSize":50,"type":"PODCAST"}'
# 5. Tweets (200 items, use tweet endpoint)
curl -s -X POST https://api.bestblogs.dev/openapi/v1/tweet/list \
-H "Content-Type: application/json" \
-H "X-API-KEY: $BESTBLOGS_API_KEY" \
-d '{"timeFilter":"3d","language":"all","sortType":"score_desc","userLanguage":"zh_CN","pageSize":100}'
# Fetch page 2 for tweets if needed (to reach 200)Run all 5 requests in parallel. After fetching, client-side filter score >= 85, then deduplicate and merge.
Adjusting Parameters
Adjust based on user input:
timeFilter: "1d"timeFilter: "1w", only fetch AI categoryqualifiedFilter: "true"Other Operations
Get Article Markdown Content
curl -s "https://api.bestblogs.dev/openapi/v1/resource/markdown?id={RESOURCE_ID}" \
-H "X-API-KEY: $BESTBLOGS_API_KEY"Returns the article body as Markdown text (in data field). Returns null if content doesn't exist.
Get Latest Newsletter
curl -s -X POST https://api.bestblogs.dev/openapi/v1/newsletter/list \
-H "Content-Type: application/json" \
-H "X-API-KEY: $BESTBLOGS_API_KEY" \
-d '{"pageSize":1,"userLanguage":"zh_CN"}'Then get details:
curl -s "https://api.bestblogs.dev/openapi/v1/newsletter/get?id={NEWSLETTER_ID}&language=zh_CN" \
-H "X-API-KEY: $BESTBLOGS_API_KEY"Available Endpoints
| Endpoint | Method | Use Case |
|---|---|---|
/openapi/v1/resource/list | POST | 查询文章/播客/视频列表 (最常用) |
/openapi/v1/resource/meta | GET | 获取单个资源的完整元数据 |
/openapi/v1/resource/markdown | GET | 获取文章的 Markdown 正文内容 |
/openapi/v1/resource/podcast/content | GET | 获取播客转录、章节、问答 |
/openapi/v1/tweet/list | POST | 查询推文列表 (含互动数据) |
/openapi/v1/newsletter/list | POST | 查询期刊列表 |
/openapi/v1/newsletter/get | GET | 获取期刊详情 (含文章列表) |
/openapi/v1/source/list | POST | 查询订阅源列表 |
For complete request/response field details, see references/api_reference.md.
Core Workflow
Step 1: Fetch All Pages
Make parallel requests per the Default Fetch Strategy. Check totalCount / pageCount and continue paginating until all data is retrieved.
Step 2: Client-side Filter & Deduplicate
score >= 85 (or user-specified threshold)title similarity or same url — keep the highest-scored versionStep 3: Output Full Details
Output all API detail fields for each item. Do NOT summarize or compress — downstream skills need full data for quality assessment.
Output Format
Use readUrl (BestBlogs 站内链接) for all links. Use url only as fallback when readUrl is absent.
Articles / Podcasts / Videos
## BestBlogs 内容列表 (YYYY-MM-DD, 近 X 天,共 N 篇)
---
### 1. [文章标题](readUrl)
- **来源**: 来源名称 | **作者**: 作者 1, 作者 2 | **评分**: 96 | **字数**: 6835 | **阅读时间**: 28 分钟
- **分类**: 人工智能 > AI 模型
- **一句话摘要**: oneSentenceSummary 内容
- **详细摘要**: summary 完整内容(不截断)
- **主要观点**:
1. **观点标题**: 详细解释说明
2. **观点标题**: 详细解释说明
3. **观点标题**: 详细解释说明
- **文章金句**:
- "金句原文 1"
- "金句原文 2"
- "金句原文 3"
- **标签**: 标签 1, 标签 2, 标签 3
- **发布时间**: publishDateTimeStr
---
### 2. [文章标题](readUrl)
...Tweets
### 1. [推文标题](readUrl)
- **作者**: @username | **评分**: 91 | **影响力**: 90
- **互动**: 👍 446 🔁 134 💬 36 💾 28 👁 45K
- **一句话摘要**: oneSentenceSummary
- **详细摘要**: summary 完整内容
- **主要观点**:
1. **观点标题**: 详细解释
- **金句**:
- "金句原文"
- **标签**: 标签 1, 标签 2
- **发布时间**: publishDateTimeStrOutput Completeness Rules
summary: Output in full, never truncatemainPoints: Output ALL points with both point and explanationkeyQuotes: Output ALL quotestags: Output ALL tagsmainPoints or keyQuotes is empty, omit that sectiontranslateContent, include it after the summaryError Handling
401: Check if BESTBLOGS_API_KEY is set and valid400: Verify parameter values match allowed enums404: Resource ID may be invalid500: Retry once, then report to userCommon Filters Quick Reference
| Filter | Values |
|---|---|
| timeFilter | 1d, 3d, 1w, 1m, 3m, 1y |
| qualifiedFilter | true (精选), false, ALL |
| sortType | default, time_desc, score_desc, read_desc |
| category | Artificial_Intelligence, Business_Tech, Programming_Technology, Product_Development |
| type | ARTICLE, PODCAST, VIDEO, TWITTER |
| language | zh_CN, en_US |