AniBT Wiki
公开 API

字幕组目录

GET /api/subtitle-groups —— 公开字幕组列表,第三方应用拼 RSS 前先拉这一份做 name → slug 映射。

/api/subtitle-groups 返回站内所有可见字幕组的 slug、展示名、发布数与番剧数。第三方应用应在启动时调用一次,把响应缓存到本地,再走 RSS。

数据极少变化,几乎全部命中 304。配合 If-None-Match 轮询带宽接近零。

请求

HTTP
GET https://anibt.net/api/subtitle-groups
Accept: application/json

响应(节选)

200 OK
{
  "ok": true,
  "data": [
    {
      "slug": "kirara-fantasia",
      "name": "Kirara Fantasia",
      "organizationId": "org_HCFDS3FmwXnP",
      "status": "ACTIVE",
      "totalReleases": 469,
      "totalAnimes": 84,
      "createdAt": 1775269444251
    },
    {
      "slug": "pre-s",
      "name": "Prejudice-Studio",
      "organizationId": "org_OcyZBPpv1lTk",
      "status": "ACTIVE",
      "totalReleases": 47,
      "totalAnimes": 12,
      "createdAt": 1772900000000
    },
    {
      "slug": "kitauji-sub",
      "name": "北宇治字幕组",
      "organizationId": "org_aagmgM9i0ZyR",
      "status": "ACTIVE",
      "totalReleases": 6,
      "totalAnimes": 2,
      "createdAt": 1776618758015
    }
  ]
}

字段说明

属性

类型

304 支持

ETag 形如 W/"sg{count}-{maxCreatedAt}-{releaseSum}-{urlHash}"。再次请求带 If-None-Match 即拿 304。

验证 304
H=$(curl -sI "https://anibt.net/api/subtitle-groups")
ETAG=$(echo "$H" | grep -i '^etag:' | cut -d' ' -f2- | tr -d '\r')
curl -sI -H "If-None-Match: $ETAG" "https://anibt.net/api/subtitle-groups" | head -1
# → HTTP/2 304

实战:用 jq 挑出目标字幕组

挑 4 个组
curl -s https://anibt.net/api/subtitle-groups \
  | jq '.data[] | select(.name | test("Kirara Fantasia|Prejudice-Studio|北宇治字幕组|拨雪寻春")) | {name, slug}'

输出:

结果
{"name":"Kirara Fantasia","slug":"kirara-fantasia"}
{"name":"Prejudice-Studio","slug":"pre-s"}
{"name":"北宇治字幕组","slug":"kitauji-sub"}
{"name":"拨雪寻春","slug":"haruhana"}

缓存与限流

项目
Cache-Controlpublic, max-age=0, s-maxage=300, stale-while-revalidate=86400, stale-if-error=86400
速率限制与 RSS 端点共用 60 秒窗口,详见 限流与上限
条件请求支持 If-None-MatchIf-Modified-Since

下一步:拿到 slug 后,去 RSS 主入口拼订阅 URL。

本页目录