Поиск аниме по жанру 16 и языку оригинала ja
В amodb нет отдельного эндпоинта для аниме. Аниме задается фильтром на GET /3/discover/tv и GET /3/discover/movie: with_genres=16 (анимация) плюс with_. Добавьте id ключевого слова anime, которое вы находите через GET /3/search/keyword, чтобы оставить только тайтлы с пометкой аниме.
Одно честное ограничение: японский не входит в 14 языков интерфейса, которые поддерживает amodb. Названия и описания приходят на запрошенном вами языке или на английском. Японское название остается в original_name для сериалов и в original_title для фильмов.
Что вы получаете:
- Аниме-сериалы и аниме-фильмы с одними и теми же фильтрами discover.
- Оригинальные японские названия рядом с локализованными.
- Списки сезонов и серий для каждого выбранного сериала.
- Постеры и фоны (backdrop) с
https:/./ img.amodb.dev/ t/ p/ {size}/ {file}
Какие данные вы получаете
| Что нужно | Вызов или поле | Примечания |
|---|---|---|
| Аниме-сериалы | GET /3/discover/tv с with_genres=16 и with_ | results содержит name, original_name, first_air_date, genre_ids |
| Аниме-фильмы | GET /3/discover/movie с теми же двумя фильтрами | title, original_title, release_date |
| Id ключевого слова anime | GET / | Массив results с id и name |
| Список серий | GET / | Один вызов на сезон |
| Японское название | original_name или original_title | Оригинальное написание, как хранится |
| Постер | poster_path | Добавьте к хосту изображений, ключ не нужен |
Начало работы в 3 шага
- Выберите тариф на странице цены. Все данные доступны на каждом тарифе, различается только лимит: 20, 40 или 120 запросов в минуту.
- Создайте ключ в личном кабинете.
- Один раз найдите id ключевого слова, затем вызывайте discover с ним и двумя фильтрами.
Пример запроса
Скрипт на Python находит id ключевого слова anime, затем выводит самые популярные японские анимационные сериалы с этим ключевым словом. Вызов curl обходится без ключевого слова и показывает один сезон трансляции по окну дат.
curl -s "https://api.amodb.dev/3/discover/tv?with_genres=16&with_original_language=ja&first_air_date.gte=2026-10-01&first_air_date.lte=2026-12-31&sort_by=popularity.desc" \
-H "Authorization: Bearer $AMODB_KEY"import os
import requests
BASE = "https://api.amodb.dev/3"
session = requests.Session()
session.headers["Authorization"] = f"Bearer {os.environ['AMODB_KEY']}"
def get(path, **params):
r = session.get(BASE + path, params=params, timeout=10)
r.raise_for_status()
return r.json()
keywords = get("/search/keyword", query="anime")["results"]
anime_id = next((k["id"] for k in keywords if k["name"].lower() == "anime"), None)
if anime_id is None:
raise SystemExit("anime keyword not found")
page = get(
"/discover/tv",
with_genres=16,
with_original_language="ja",
with_keywords=anime_id,
sort_by="popularity.desc",
language="en-US",
page=1,
)
for show in page["results"]:
print(show.get("first_air_date"), show["name"], "/", show["original_name"])Сокращенный ответ для вызова на Python выше: 2 из 19 результатов на странице 1, массивы урезаны до 2 элементов.
{
"page": 1,
"results": [
{
"adult": false,
"backdrop_path": "/dmptwhmqxcMrCKgyvBlTt18PgDu.jpg",
"first_air_date": "2005-04-22",
"genre_ids": [
10759,
16
],
"id": 65733,
"name": "Doraemon",
"origin_country": [
"JP"
],
"original_language": "ja",
"original_name": "ドラえもん",
"overview": "Robotic cat Doraemon is sent back in time from the 22nd century to protect 10-year-old...",
"popularity": 301.2214,
"poster_path": "/9ZN1P32SHviL3SV51qLivxycvcx.jpg",
"vote_average": 8.089,
"vote_count": 252
},
{
"adult": false,
"backdrop_path": "/mFKys64gbDQrFqwUheGwXQwo2JK.jpg",
"first_air_date": "2004-10-05",
"genre_ids": [
10759,
16
],
"id": 30984,
"name": "Bleach",
"origin_country": [
"JP"
],
"original_language": "ja",
"original_name": "BLEACH",
"overview": "For as long as he can remember, Ichigo Kurosaki has been able to see ghosts. But when h...",
"popularity": 190.3257,
"poster_path": "/2EewmxXe72ogD0EaWM8gqa0ccIw.jpg",
"vote_average": 8.4,
"vote_count": 2295
}
],
"total_pages": 216,
"total_results": 4302
}Фильтры, формирующие список аниме
| Фильтр | Значение | Эффект |
|---|---|---|
with_genres | 16 | Анимация. Запятая означает логическое И, поэтому 16,35 дает анимацию и комедию. |
without_genres | id жанра | Исключает тайтлы с этим жанром. |
with_original_language | ja | Только японские оригиналы. |
with_keywords | id ключевого слова | Только тайтлы с этим ключевым словом. Тайтлы без метки пропускаются. |
first_air_date.gte, first_air_date.lte | YYYY-MM-DD | Окно трансляции для сериалов. Для фильмов используются primary_ и .lte. |
sort_by | popularity.desc, vote_average.desc, first_air_date.desc | Порядок. Сочетайте vote_average.desc с vote_count.gte, чтобы мелкие выборки не оказывались первыми. |
page | от 1 до 500 | До 20 результатов на странице. |
Разметка ключевыми словами неполная. Если список выглядит коротким, уберите with_keywords и оставьте фильтры по жанру и языку, чтобы охватить больше. Полный список фильтров есть на странице discover, а id ключевых слов описаны на странице ключевые слова.
Аниме-фильмы и длинные сериалы
Для фильмов действуют те же два фильтра на эндпоинте фильмов. Этот вызов выводит высоко оцененные японские анимационные фильмы, а vote_count.gte отсекает тайтлы с горсткой голосов.
curl -s "https://api.amodb.dev/3/discover/movie?with_genres=16&with_original_language=ja&sort_by=vote_average.desc&vote_count.gte=200" \
-H "Authorization: Bearer $AMODB_KEY"У каждого результата есть title, original_title, release_date и poster_path. Длинные сериалы в каталоге часто разбиты на несколько сезонов. GET / перечисляет другие порядки серий с названиями и числом серий, где они известны, но сами группы amodb не отдает, а number_of_episodes у сериала дает общее число. Вызовы сезонов описаны на странице API сериалов.
Названия и языки
Для аниме оригинальное название важнее всего, поэтому храните оба поля.
| Поле | Что содержит | Применение |
|---|---|---|
name | Название на запрошенном языке | Основная подпись в вашем интерфейсе |
original_name | Название на языке оригинала, японская письменность для японских оригиналов | Дополнительная подпись, полезна фанатам, которые знают японское название |
original_language | ja | Фильтруйте на своей стороне, если смешиваете источники |
overview | Локализованный текст, пустой при отсутствии перевода | При пустом значении повторите запрос с language=en-US |
GET / перечисляет другие названия по странам, где они известны. 14 поддерживаемых языков перечислены на странице языки.
Сравнение
| Возможность | Парсинг фан-сайтов | API базы только по аниме | amodb |
|---|---|---|---|
| Охват | Все, что покрывает сайт | Только аниме, глубину смотрите в документации | Фильмы и сериалы в одном каталоге, аниме выбирается фильтрами |
| Выбор аниме | Категории сайта | Смотрите документацию | Жанр 16, with_, ключевое слово anime |
| Название на языке оригинала | По-разному | Смотрите документацию | original_name и original_title |
| Списки серий | Разбор страниц | Смотрите документацию | Вызов сезона с массивом episodes |
| Японский язык интерфейса | Зависит от сайта | Смотрите документацию | Не поддерживается, только оригинальные названия |
| Условия доступа | Условия каждого сайта | Бесплатные и платные тарифы различаются | Платно, предоплата, без бесплатного тарифа |
Цены
Список аниме собирается из нескольких вызовов discover, а результаты discover хранятся в edge-кэше 30 минут, поэтому 20 запросов в минуту хватает многим приложениям. Тарифы рассчитаны на 20, 40 или 120 запросов в минуту с одними и теми же данными. Оплатите 1, 3, 6, 12 или 24 месяца со скидкой 0, 10, 20, 30 и 40 процентов, автоматического продления нет. Бесплатного тарифа нет. Выберите тариф на странице цены.