Files
FacereDataset/docs/sources/oshwhub_listing_full.md
Knowit d89a7cdf9c oshwhub: dump full listing index (33,695 projects) for batch sizing
Probed listing API and learned: total field is exposed (Pro=21,202 / Std=12,493),
pageSize accepts >=1000 (full corpus = 35 requests / 71s), sort param is silently
ignored. Dump all listings via scripts/dump_listing_index.py to local jsonl so
downstream batch-selection no longer hits the API.

Why: needed quantitative anchors before scaling Pro batch beyond top-5. License
is detail-page only (~19h serial scan), so we want to filter on grade/like
*locally* first to shortlist before paying that cost. Quality-tier counts now
known: A-tier (grade>=3 & like>=10) = 2,806 across both origins.

- scripts/dump_listing_index.py: one-shot scraper, polite QPS, streams to jsonl
- docs/sources/oshwhub_listing_full.md: human-readable report with growth
  trends, quality tiers, owner concentration, and storage-budget anchors

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 23:30:56 +08:00

145 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# oshwhub 全量 Listing 索引简报
**采集时间**2026-04-28
**数据**`data/state/oshwhub_listing_full.jsonl`28.4 MBgitignore可重抓
**采集脚本**`scripts/dump_listing_index.py`
**接口**`https://oshwhub.com/api/project?origin={pro,std}&pageSize=1000&page=N`,无鉴权
**耗时 / 流量**35 次请求 × ~1 MB ≈ 35 MB / 71 秒QPS=1
---
## 1. 总盘
| origin | 项目数 | 时间跨度 | 唯一作者数 |
|---|---:|---|---:|
| Pro | **21,202** | 2021-05 ~ 2026-04 | 10,536 |
| Std | **12,493** | 2016-07 ~ 2026-04 | 5,531 |
| **合计** | **33,695** | — | ~16,000 |
> "项目"定义listing API 返回的 `public:true` 公开项目;私有 / 草稿不计入。
>
> Pro / Std 不重叠(单项目 origin 二选一)。
---
## 2. 增长趋势(按 `created_at` 年份)
| year | Pro | Std |
|---:|---:|---:|
| 2016 | — | 1 |
| 2017 | — | 73 |
| 2018 | — | 30 |
| 2019 | — | 320 |
| 2020 | — | 2,545 |
| 2021 | 13 | 3,193 |
| 2022 | 1,718 | 3,394 |
| 2023 | 4,056 | 1,554 |
| 2024 | 6,827 | 905 |
| 2025 | 7,436 | 426 |
| 2026 (Q1) | 1,152 | 52 |
**关键观察**
- **Std 在 2021-2022 见顶后断崖下跌**3394 → 1554 → 905 → 426用户在迁出。
- **Pro 2022 起线性增长**2024-2025 合计占全 Pro 的 67%。
- 2026 仅过 4 个月就有 1,152 Pro 新项目(外推全年 ~3,500会比 2025 略降,但仍是主战场)。
**抓取策略含义**Pro corpus 还在快速膨胀索引建议每月增量重抓一次Std 已基本静态。
---
## 3. 质量分层
| Tier | 条件 | Pro 命中 | Pro % | Std 命中 | Std % |
|---|---|---:|---:|---:|---:|
| S | grade≥4 & like≥50 | 390 | 1.8% | 193 | 1.5% |
| A | grade≥3 & like≥10 | 1,356 | 6.4% | 1,450 | 11.6% |
| B | grade≥2 & like≥5 | 2,292 | 10.8% | 3,951 | 31.6% |
| 总池 | grade≥1 | 20,028 | 94.5% | 9,510 | 76.1% |
| 末档 | grade==0 | 1,174 | 5.5% | 2,983 | 23.9% |
**两点反直觉**
- **Std 高质量比例 > Pro**A 档 11.6% vs 6.4%。Std 平台老项目有时间累积点赞Pro 大量是 2024+ 新项目,社交信号还没沉淀。
- **Pro 末档比例反而低**5.5% vs 23.9%)。可能是 grade 内部打分逻辑不同Std 兜底更宽。
---
## 4. 互动指标分布
### like
| | p50 | p90 | p99 | max |
|---|---:|---:|---:|---:|
| Pro | 2 | 22 | 190 | 2,137 |
| Std | 6 | 40 | 207 | 1,457 |
### views
| | p50 | p90 | p99 | max |
|---|---:|---:|---:|---:|
| Pro | 1,036 | 6,550 | 39,144 | 1,036,026 |
| Std | 3,362 | 13,519 | 53,663 | 348,877 |
> Std 流量是 Pro 同档位的 ~3 倍(更老更普及);但 Pro 头部单项 view 能上百万X86 主板等)。
---
## 5. 头部作者(按项目数)
### Pro top-10
| # | username | n |
|---:|---|---:|
| 1 | course-examples | 79 |
| 2 | freakstudio | 79 |
| 3 | aknice | 69 |
| 4 | eda_kwazdnpkc | 64 |
| 5 | windskys | 56 |
| 6 | li-chuang-kai-fa-ban | 49 |
| 7 | dingcheng | 44 |
| 8 | o0v0o | 42 |
| 9 | xiaocc22 | 42 |
| 10 | eda_ycuzzivoa | 41 |
### Std top-10
| # | username | n |
|---:|---|---:|
| 1 | li-chuang-zhi-neng-ying-jian-bu | 183 |
| 2 | zhqsoft | 144 |
| 3 | jixin | 92 |
| 4 | Ismartware | 53 |
| 5 | FJ956391150 | 52 |
| 6 | an_ye | 51 |
| 7 | micespring | 48 |
| 8 | li-chuang-EDAjing-sai-xiao-zu | 47 |
| 9 | 583703056a | 46 |
| 10 | akatople | 46 |
> 立创官方账号占据头部(`course-examples` / `li-chuang-kai-fa-ban` / `li-chuang-zhi-neng-ying-jian-bu` / `li-chuang-EDAjing-sai-xiao-zu`)—— 这些是 **开发板 / 比赛 / 教程** 系列质量高、license 倾向 GPL/NC-SA内容受立创内部审核。
>
> 长尾比较健康top 1 占比仅 0.4% (Pro) / 1.5% (Std);不存在被少数账号 dominate 的情况。
---
## 6. listing API 注意事项(沉淀给后续爬虫开发)
- **`origin` 默认值**:不带参数返回 Std要 Pro 必须显式 `origin=pro`
- **`sort` 参数无效**`hot/new/newest/latest/created_at/...` 全部静默 fallback 到隐式排序。实测排序 = grade desc → 内部质量分 desc。要"按时间排序"得自己拉全集后本地排。
- **`pageSize` 无显式上限**`pageSize=1000` 工作良好,单次响应 ~1 MB`pageSize=30`(旧爬虫默认)效率低 30 倍。
- **`license` 不在 listing**:要 license 必须挨个抓详情页 (`/<owner>/<path>`)33,695 个 → QPS≤0.5 → ~19 小时;考虑同步抓索引时**只抓详情页**,不重抓 listing。
- **`public:true` 隐含**listing 只返公开项目;不过我们也只关心公开项目。
---
## 7. 后续放量决策的量化锚点
| 目标 | 候选池大小 | 估算开销(详情页 + 工程源) |
|---|---:|---|
| **保守**S 档grade≥4 & like≥50双 origin | 583 | 1-2 小时详情,~50 GB Pro 工程源 + ~10 GB Std |
| **中度**A 档grade≥3 & like≥10双 origin | 2,806 | ~7 小时详情,~250 GB Pro + ~25 GB Std |
| **激进**B 档双 origin | 6,243 | ~14 小时详情,~500 GB Pro + ~60 GB Std |
| 全 Pro | 21,202 | 19h 详情,**~1 TB Pro 源** |
| 全 corpus | 33,695 | 19h 详情,~1.1 TB+ |
> Pro 工程源体积估计基于已落库 5 项均值(最坏单项 481 MBP50 约 30 MB中度 + 激进档若加 size cap如单项 ≤ 200 MB skip能砍 30-40%。
**当前下一步建议**
- 先按 **A 档**2,806 项)在本地索引上 filter做 license 详情扫描,得到"license 白名单 ∩ A 档"的真实候选清单
- 再决定是否动手批量下源