AniBT Wiki
公开 API

发布其他类资源

POST /api/other-releases/publish —— 字幕组用 API Key 发布漫画、音乐、RAW、舞台剧资源;不绑定 bgmId。

/api/other-releases/publish 是字幕组发布非番剧资源的写入端点,适用于漫画、音乐、RAW、舞台剧。它使用同一套字幕组 API Key 鉴权,但不需要 bgmId,也不会混入番剧发布列表。

这是写入接口。Key 泄露会允许别人以你的字幕组名义发布其他类资源;请只在服务端脚本或 CI secret 中使用。

URL

HTTP
POST https://anibt.net/api/other-releases/publish
Authorization: Bearer <YOUR_API_KEY>

也支持 X-API-Key: <YOUR_API_KEY>,但推荐统一使用 Authorization: Bearer

两种请求格式

上传 .torrent 文件,后端会自动提取磁力链接、标题、文件大小和 tracker。categorytitle 仍建议显式传入。需要 Nyaa 代发时也必须使用这种格式。

上传其他类种子
curl -X POST 'https://anibt.net/api/other-releases/publish' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -F 'category=manga' \
  -F 'title=Example Manga Vol.01' \
  -F 'customTags=电子版,中文' \
  -F 'notes=发布说明支持 Markdown。' \
  -F 'nyaa=true' \
  -F 'nyaaCategory=3_2' \
  -F 'nyaaComplete=false' \
  -F 'nyaaRemake=false' \
  -F 'nyaaDescription=可选:覆盖提交到 Nyaa 的 Markdown 说明' \
  -F 'torrent=@/path/to/release.torrent'

customTags / tags 在表单里用逗号分隔;trackers 用换行或 JSON 数组字符串。

直接提交磁力链接,适合已有磁力但没有上传种子文件的自动化流程。

JSON 请求
curl -X POST 'https://anibt.net/api/other-releases/publish' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  --data @- <<'JSON'
{
  "category": "music",
  "title": "Example Album FLAC",
  "magnetLink": "magnet:?xt=urn:btih:...",
  "fileSize": 734003200,
  "customTags": ["FLAC", "BK"],
  "notes": "**无损音源**,含 BK。"
}
JSON

magnetBase64 也可使用;它既接受原始 magnet,也接受 Base64 编码后的 magnet。

Nyaa 代发

其他类发布 API 使用和 /api/releases/publish 相同的 Nyaa 代发参数。启用后,发布记录会先写入 AniBT,再由后台 release_sync 队列提交到 Nyaa。

Nyaa 代发仅对白名单字幕组开放,并且必须使用 multipart/form-data 上传 .torrent 文件。种子的 announceannounce-list 必须包含 http://nyaa.tracker.wf:7777/announce,否则请求会被拒绝。

常用分类示例:

内容建议 nyaaCategoryNyaa 分类
漫画 / 轻小说翻译3_2Literature - Non-English-translated
无损音乐 / BK2_1Audio - Lossless
RAW 或实拍视频4_4Live Action - Raw
如果内容本质仍是动画 RAW1_4Anime - Raw
其他类资源 + Nyaa 代发
curl -X POST 'https://anibt.net/api/other-releases/publish' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -F 'category=manga' \
  -F 'title=Example Manga Vol.01' \
  -F 'notes=发布说明支持 Markdown。' \
  -F 'torrent=@/path/to/release.torrent' \
  -F 'nyaa=true' \
  -F 'nyaaCategory=3_2' \
  -F 'nyaaComplete=false' \
  -F 'nyaaRemake=false' \
  -F 'nyaaDescription=可选:覆盖提交到 Nyaa 的 Markdown 说明' \
  -F 'nyaaInformation=https://anibt.net/group/example'

字段别名和结构化 JSON 形态与番剧发布一致:

表单别名结构化字段必填含义
nyaa / publishToNyaasitePublish.nyaa.enabled设为 true 表示请求 Nyaa 代发。只传 nyaaCategory 等 Nyaa 字段时,服务端也会视为启用。
nyaaCategorysitePublish.nyaa.category启用代发时必填Nyaa 分类代码,必须使用 Nyaa 官方代码。完整代码表见 发布资源 API
nyaaCompletesitePublish.nyaa.complete对应 Nyaa 的 Complete 标记;合集、全卷、全季等完整资源可设为 true。默认 false
nyaaRemakesitePublish.nyaa.remake对应 Nyaa 的 Remake 标记;重传、修复版、重制版按需要设为 true。默认 false
nyaaDescriptionsitePublish.nyaa.description提交到 Nyaa 的 Markdown 说明,最多 20000 字符。不传时继承本站 notes
nyaaInformationsitePublish.nyaa.informationNyaa information 字段,最多 500 字符,通常填写官网、字幕组页面、项目页或相关说明链接。

参数

属性

类型

categorytitle 必填;torrenttorrentStorageIdmagnetLinkmagnetBase64 至少提供一个。

参数值速查

分类代码

category 不是中文名,必须填写英文代码:

代码页面分类RSS 路径什么时候用
manga漫画/rss/other/manga.xml漫画、轻小说、书籍、画册等非番剧文本/图像阅读资源。
music音乐/rss/other/music.xmlOST、角色歌、专辑、单曲、演唱会音源、广播剧音频。
rawRAW/rss/other/raw.xml不绑定 Bangumi 番剧条目的 RAW 资源、合集、杂项视频源。
stage舞台剧/rss/other/stage.xml舞台剧、音乐剧、Live action 舞台相关资源。

种子、磁力和说明字段

字段怎么填说明
torrentmultipart 文件字段,-F 'torrent=@release.torrent'推荐方式。上传后会写入本站公共存储,并从种子提取 magnet、文件大小和 tracker。
magnetLink原始 magnet:?xt=urn:btih:...JSON 或 multipart 都可传。表单字段 magnet 是兼容别名。
magnetBase64原始 magnet 或 Base64 编码后的 magnetmagnetLink 二选一即可;存在 torrent 时通常不用手填。
torrentStorageId已上传的公共 torrent key内部自动化场景使用。普通客户端不要手工构造。
fileSize字节数,例如 734003200上传 torrent 时可自动提取;magnet 带 xl= 时也可推断。
trackersJSON 数组或 multipart 换行文本追加 tracker。不要把多个 URL 写成一个逗号字符串,除非是 customTags
notesMarkdown 文本发布页和 RSS 描述使用。
descriptionMarkdownMarkdown 文本notes 的兼容别名。contentdescriptionintro 也会被兼容为说明文本。
customTagsJSON 数组或 multipart 逗号分隔最多 20 个,每个最长 80 字符。例:FLAC,BK,自购
tagscustomTagscustomTags 的兼容别名。

返回

成功响应
{
  "ok": true,
  "result": {
    "releaseId": "orel_DYXiEZs5KMep",
    "groupId": "org_xxx",
    "category": "manga",
    "createdTorrentFileKey": "torrent/..."
  }
}

releaseId 可拼成详情页:https://anibt.net/other-release/<releaseId>。发布后对应分类的 RSS 会出现新条目,见 其他类 RSS

统一错误响应

JSON 磁力发布和 multipart 种子上传使用同一种错误 envelope;字段语义与 番剧资源发布 API 一致:

错误响应
{
  "ok": false,
  "error": {
    "code": "PUBLIC_SNAPSHOT_ENQUEUE_PAUSED",
    "message": "System deployment in progress. Please retry shortly.",
    "reason": "DEPLOYMENT_IN_PROGRESS",
    "retryable": true,
    "retryAfterMs": 15000,
    "requestId": "req-example-123",
    "i18n": {
      "key": "error_deployment_in_progress"
    }
  }
}

codemessage 用于机器分支与安全回退提示;reason 给出更具体的业务原因;retryable / retryAfterMs 指示能否重试及等待时间;requestId 与响应头 X-Request-ID 相同;i18n.key(以及可选 i18n.params)用于本地化显示。reason、重试字段与 i18n 只在适用时返回。存在 retryAfterMs 时,响应头也会返回按秒向上取整的 Retry-After

部署期间暂停发布交接会返回 503 Service Unavailablecode=PUBLIC_SNAPSHOT_ENQUEUE_PAUSEDreason=DEPLOYMENT_IN_PROGRESSretryable=true。写入限流会返回 429 Too Many Requestscode=RATE_LIMIT_EXCEEDEDreason=RATE_LIMITEDretryable=true。两者都应按 Retry-After / retryAfterMs 退避。

常见错误

HTTP原因处理
400缺少 category / title,或没有任何种子 / 磁力来源补齐必填项;确认 category 是四个允许值之一
401未传 API Key加上 Authorization: Bearer <YOUR_API_KEY>
403API Key 无效、已撤销,或用户已不在字幕组在字幕组后台重新生成 Key,确认成员权限
404torrentStorageId 指向的文件不存在改用 multipart 上传,或确认文件 key 属于该字幕组
429reason=RATE_LIMITED,写入频率过高Retry-After / retryAfterMs 退避
503reason=DEPLOYMENT_IN_PROGRESS,系统正在部署Retry-After / retryAfterMs 等待后重试

下一步:订阅分类 RSS 用 /rss/other/<category>.xml;番剧资源仍走 /api/releases/publish

本页目录