为什么 Anitabi 的作品元数据全部来自番组计划 bangumi.tv
设计选择
Anitabi 的架构决策:不自己建作品数据库,而是全部从番组计划 bangumi.tv 同步。
这意味着:
- 作品的中文名、原名、封面、类型、开播日期 → 全部来自 Bangumi Subject 条目
- Anitabi 只维护自己的地标和截图数据
- 两部作品之间的唯一关联键是 Bangumi Subject ID
好处
1. 数据全
番组计划 bangumi.tv 是目前中文社区最完善的番剧数据库之一——动画、漫画、游戏、小说的条目覆盖度非常高,冷门作品也有人维护。
Anitabi 从 Bangumi 拉数据,等于一夜之间拥有了一套成熟的作品元数据系统。
2. 更新快
番组计划的编辑社区非常活跃——新番开播、旧番条目纠正、封面替换,Bangumi 上先更新,Anitabi 这边很快就能看到。
3. 唯一标识
Bangumi Subject ID 是跨平台通用的唯一标识——
- 你在 Bangumi 上看到的 Subject ID,直接粘进 Anitabi 就能创建作品
- 其他社区(如 MyAnimeList)也能互相映射
Anitabi 自己维护什么
| 数据 | 谁维护 |
|---|---|
| 作品元数据(名称、封面、开播日期、类型) | ✅ Bangumi |
| Bangumi Subject ID | ✅ Bangumi |
| 地标坐标 | ❌ Anitabi 社区 |
| 地标截图 | ❌ Anitabi 社区 |
| EP 集数 + 秒数 | ❌ Anitabi 社区 |
| 地标分组(车站 / 公园 / 学校) | ❌ Anitabi 社区 |
| 贡献来源(origin + originURL) | ❌ Anitabi 社区 |
用 Subject ID 联动
Anitabi 的 API 全部以 Bangumi Subject ID 为参数:
/bangumi/${subjectID}/lite/bangumi/${subjectID}/points/detail
同时还提供了一个辅助函数生成 Anitabi 巡礼地图地址:
function getAnitabiSubjectURLById(id) {
return `https://anitabi.cn/map?bangumiId=${id}`;
}
直接跳到 Anitabi 地图打开指定作品的地标视图。
番组计划 API
Bangumi 也有自己的开放 API,可以拿到完整的作品元数据。Anitabi 内部就是通过 Bangumi API 拉数据的。如果你做的是本地个人项目,也可以直接调 Bangumi API。
搜不到作品怎么办
如果 Anitabi 搜不到某作品,先去 Bangumi 搜一下——Bangumi 上也没有的话,需要先在 Bangumi 建 Subject 条目(见「04 给地图添砖加瓦 → 从番组计划录新作品」)。