Публичное API
Открытое, без ключа и регистрации, только чтение, CORS для любых сайтов. Подходит для ботов чата Twitch, расширений и ИИ-ассистентов. Пожалуйста, не чаще 1 запроса в секунду - защита на краю сети режет всплески.
Проверить тайтл
GET https://streamit.rezanans.com/api/v1/check?q=Магическая битва
GET https://streamit.rezanans.com/api/v1/check?shiki=40748
GET https://streamit.rezanans.com/api/v1/check?kp=1272446{
"found": true,
"risk": "high",
"twitch_safe": false,
"verdict": "Не показывать на Twitch: правообладатель снимает трансляции и выдаёт страйки.",
"matches": [{ "slug": "40748-jujutsu-kaisen", "title": "Магическая битва", "holders": ["crunchyroll"], ... }]
}found: false не означает «безопасно» - база отмечает только известные случаи жалоб. Если тайтла нет в базе, ответ содержит поле live: результаты живого поиска с автоматической оценкой по студии и лицензиату (поле basis - на чём основана оценка).
Все методы
| Метод | Что отдаёт |
|---|---|
/api/v1/check | Проверка по q, shiki или kp |
/api/v1/lookup | Живой поиск вне базы: Shikimori и Wikidata, риск по студии |
/api/v1/chat | Ответ одной строкой для Nightbot, StreamElements, Fossabot |
/api/v1/titles | Вся база одним JSON |
/api/v1/titles/<slug> | Один тайтл с описанием правообладателей |
/api/v1/holders | Правообладатели и их тайтлы |
/api/v1/stats | Статистика |
/openapi.json | Схема OpenAPI 3 (для GPT Actions, MCP-обёрток и т.п.) |
Поля
risk: high - бан (автоматически, по паттерну трансляции), strike - повышенный риск (мировые студии, сканеры и DMCA в эфире), medium - средний риск (ручная проверка жалоб, блокировка после множества репортов, возможна ложная), low - низкий риск (зелёная зона, возможны предупреждения от второстепенных дистрибьюторов), unknown - нет данных. category: anime, film, series. Список holders - в /api/v1/holders.
Для ИИ
Инструкции для языковых моделей - /llms.txt (стандарт llms.txt), полный список тайтлов текстом - /llms-full.txt. Ассистенту достаточно дать ссылку на llms.txt: там описано, какой метод вызвать и как честно трактовать ответ.
Команда для чат-бота Twitch
Метод /api/v1/chat?q= отвечает одной строкой - её бот сразу пишет в чат. Добавьте команду, например !twitchcheck:
| Nightbot | $(urlfetch https://streamit.rezanans.com/api/v1/chat?q=$(querystring)) |
| StreamElements | ${customapi.https://streamit.rezanans.com/api/v1/chat?q=${queryescape ${1:}}} |
| Fossabot | $(customapi https://streamit.rezanans.com/api/v1/chat?q=$(querystring)) |
Зритель пишет !twitchcheck Наруто, бот отвечает:
⛔ Наруто 2002: Бан (Viz). https://streamit.rezanans.com/t/20-narutoПример для своего бота
const r = await fetch('https://streamit.rezanans.com/api/v1/check?q=' + encodeURIComponent(query)).then((r) => r.json())
say(r.found ? `${r.matches[0].title}: ${r.verdict}` : 'Нет в базе - это не гарантия безопасности')