文档

开放接口

使用 API 密钥,按 Shionlib、Hikarinagi、Bangumi 或 VNDB 的编号查询游戏的资源。

ringyuki
ringyuki

2026年10月14日

准备 API 密钥

  1. 打开设置 → API 密钥(或前往 /user/settings/api-keys)
  2. 点击创建 API 密钥,填写名称
  3. 复制显示的密钥。关闭对话框后无法再次查看,遗失时请删除并重新创建

每个账号最多可以创建 10 个 API 密钥。API 密钥只能用于开放接口,不能用于登录或调用站点的其他接口。设置中的列表显示每个 API 密钥开头的几个字符、创建日期和最近一次使用的时间。

请把 API 密钥保存在服务器或自己的设备上,不要写进公开的网页或代码仓库。

发送请求

在请求头 Authorization 中以 Bearer 方式附上 API 密钥:

curl -H "Authorization: Bearer $SHIONLIB_API_KEY" \
  "https://shionlib.com/api/open/v1/games?vid=v1141"
bash

接口允许跨域请求,不读取 Cookie。

查询参数

四种编号任选一种:

参数编号示例
idShionlib 游戏 ID1947
hidHikarinagi ID2303
bidBangumi 条目 ID7868
vidVNDB ID,可以省略开头的 vv1141
  • 一次最多查询 50 个编号,以英文逗号分隔,例如 bid=7868,15004
  • 同一个编号可能对应多个游戏,例如原作与重制版共用一个 VNDB ID,这些游戏都会返回
  • 只返回公开的游戏和已发布的资源,文件只含可以下载的;成人游戏同样返回,以 nsfw 标明

返回内容

{
  "code": 0,
  "message": "",
  "data": {
    "games": [
      {
        "id": 1947,
        "hid": 2303,
        "bid": "7868",
        "vid": "v1141",
        "title_jp": "俺たちに翼はない",
        "title_zh": "我们没有翅膀",
        "title_en": "",
        "nsfw": false,
        "url": "https://shionlib.com/game/1947",
        "resources": [
          {
            "id": 3443,
            "url": "https://shionlib.com/resource/3443",
            "platform": ["win"],
            "language": ["zh"],
            "translation": "group",
            "translators": [{ "id": 447, "name": "新米日文游戏中文化技术交流小组" }],
            "patch_version": null,
            "release_url": null,
            "edition": null,
            "edition_name": null,
            "form": "portable",
            "extras": [],
            "downloads": 237,
            "creator": { "id": 1, "name": "ringyuki" },
            "published_at": "2026-01-04T16:36:08.028Z",
            "updated": "2026-03-21T06:21:10.994Z",
            "files": [
              {
                "id": 3434,
                "file_name": "[Navel] 俺たちに翼はない.7z",
                "file_size": 2468559932,
                "hash_algorithm": "blake3",
                "file_hash": "11985d4448c7fd28…",
                "sha256": null
              }
            ]
          }
        ]
      }
    ],
    "missing": []
  },
  "requestId": "0f6c2a8e-6c1f-4f3e-9d0a-2b7d1c9e5a41",
  "timestamp": "2026-10-14T03:12:45.120Z"
}
json

data.games 按查询的编号的顺序排列,同一个编号对应的多个游戏按 ID 由小到大排列;data.missing 是没有找到游戏的编号,按查询时的写法返回。页面地址不带语言,打开时按访问者的语言设置跳转。

游戏

字段类型说明
id整数Shionlib 游戏 ID
hid整数或 nullHikarinagi ID
bid字符串或 nullBangumi 条目 ID
vid字符串或 nullVNDB ID
title_jp title_zh title_en字符串日文、中文、英文标题,没有时为空字符串
nsfw布尔值是否为成人内容
url字符串游戏页面的地址
resources数组已发布的资源,按最近更新的时间由新到旧排列;没有时为空数组

资源

字段说明
id资源 ID
url资源页面的地址,下载在这个页面上进行
platform平台:win mac lin and ios ps3 ps4 psv psp swi dvd
language语言:jp zh zh-hant en
translation翻译:none 无、official 官方翻译、group 汉化组、machine 机器翻译;未注明时为 null
translators汉化组,每项含 id 和 name,按署名的顺序排列
patch_version补丁版本
release_url汉化的发布页面
edition发行版本:download 下载版、package 光盘版、steam Steam 版
edition_name版本名称
form形态:disc 光盘映像、installer 安装程序、portable 免安装
extras附带内容:save 全CG存档、bonus 特典
note说明,富文本文档:段落(paragraph)中是文字(text)和换行(hard_break),文字可带粗体(bold)、链接(link,地址在 attrs.href)和剧透(spoiler)标记;没有说明时不返回此字段
downloads下载次数
creator上传者,含 id 和 name
published_at updated发布时间、最近更新时间
files可以下载的文件,同一组分卷排在一起并按顺序排列

文件

字段说明
id文件 ID
file_name文件名
file_size大小,单位为字节
hash_algorithm file_hash上传时计算的校验值及其算法(blake3 或 sha256)
sha256检查文件时计算的 SHA-256;尚未计算时为 null

错误

出错时 code 为业务码,message 为按 Accept-Language 翻译的说明,data 为 null。

状态码含义
401未提供 API 密钥,或密钥无效、已删除
403密钥已被管理员停用,或所属的账号已被封禁
422参数不正确:没有给出编号、同时给出多种编号、超过 50 个或格式不正确
429请求过于频繁,等待 Retry-After 给出的秒数后重试
503开放接口暂停服务

请求频率

同一账号的所有 API 密钥共用一个请求上限,默认为每分钟 60 次。每个响应都带有以下响应头:

响应头含义
X-RateLimit-Limit一个窗口内的请求上限
X-RateLimit-Remaining本窗口内剩余的请求次数
X-RateLimit-Reset距离次数恢复的秒数

OpenAPI 文档

开放接口的 OpenAPI 文档位于 https://shionlib.com/api/open/v1/openapi.json,可以用来生成客户端代码。

在 GitHub 上编辑此页