Что подойдет для проекта про сериалы
TheTVDB ориентирован на сериалы и хранит для шоу несколько порядков серий, включая эфирный, DVD и абсолютный, а доступ дает по модели ключа API. Прежде чем планировать коммерческий продукт, изучите условия лицензирования в их документации. Выбирайте amodb, если вам нужны сериалы, фильмы и люди с одним ключом, пути TMDB v3 и 14 языков. Выбирайте TheTVDB, если точная альтернативная нумерация находится в центре вашего приложения: amodb перечисляет группы серий шоу, но не отдает то, что внутри них.
Как данные о сериалах соответствуют друг другу
Понятия совпадают, а названия различаются. Таблица охватывает то, что обычно читает приложение о сериалах.
| Задача | Подход TheTVDB | Вызов amodb |
|---|---|---|
| Один сериал | Запись сериала по TVDB ID | GET /3/tv/1396 после поиска по tvdb_id |
| Список сезонов | См. их документацию | Массив seasons в сведениях о сериале |
| Один сезон с сериями | См. их документацию | GET / |
| Одна серия | См. их документацию | GET / |
| Какие порядки существуют | Эфирный, DVD и абсолютный порядки | GET / |
| Серии внутри одного порядка | См. их документацию | Не поддерживается, / отвечает 404 |
| Следующая серия в эфире | См. их документацию | next_episode_to_air в сведениях о сериале |
Поля серии используют имена TMDB: air_date, episode_number, season_number, runtime и still_path. Поля external_ids у сезонов и серий всегда равны null, поэтому TVDB ID отдельного сезона или серии из amodb прочитать нельзя. Связывайте записи по season_number и episode_number. Подробности на странице сезоны и серии.
Что возвращает список групп серий
Вызов списка показывает, какие порядки существуют для сериала. Серии внутри них он не возвращает.
| Поле | Значение |
|---|---|
id | ID группы, строка |
name | Название порядка, например DVD / PVOD |
description | Текст из источника, часто пустой |
type | Число, которое показывает вид порядка |
episode_count | Число серий в порядке |
group_count | Число блоков в порядке, например сезонов |
network | Объект с телесетью или null |
Вот настоящий ответ для Breaking Bad.
{
"id": 1396,
"results": [
{
"description": "Seasons grouped as they appear on DVD, as well as paid video-on-demand services, such as Prime Video and YouTube.",
"episode_count": 62,
"group_count": 6,
"id": "69f50757054263b7bc87e32a",
"name": "DVD / PVOD",
"network": null,
"type": 3
}
]
}Одни шоу возвращают один эфирный порядок, другие несколько, а у некоторых массив results пуст. Проверьте шоу, которые важны вам. Поскольку содержимое группы не отдается, приложение, которому нужен DVD-номер или абсолютный номер каждой серии, получить его из amodb не сможет.
Сравнение возможностей
| Функция | TheTVDB | amodb |
|---|---|---|
| Модель оплаты | Модель ключа API, лицензирование см. в их документации | Предоплата на периоды от 1 до 24 месяцев |
| Бесплатный тариф | См. их документацию | Нет, пробного периода тоже нет |
| Аутентификация | Ключ API, порядок см. в их документации | api_key или заголовок Bearer |
| Формат ответа | JSON, см. их документацию | JSON в формате TMDB v3 |
| Языки | См. их документацию | 14 языков интерфейса |
| Фильмы | См. их документацию | Да |
| Сериалы | Да, это основной профиль | Да, с сезонами и сериями |
| Люди | См. их документацию | Да |
| Изображения | См. их документацию | img.amodb.dev, ключ не нужен |
| Рейтинги | См. их документацию | IMDb и еще четыре источника, где есть данные |
| Лимит запросов | См. их документацию | 20, 40 или 120 в минуту на ключ |
| Коммерческое использование | Лицензирование см. в их документации | Платные тарифы, см. цены |
| Совместимость | Собственный API | Чтение TMDB v3 и OMDb |
Чем отличается amodb
- Один ключ на весь каталог. Сериал, его актерский состав, трейлеры и фильм с тем же актером используют один базовый URL и один лимит.
- Рейтинги рядом с гидом по сериям. Параметр
append_в сведениях о сериале добавляет оценки IMDb и других источников за один запрос.to_ response= ratings - Понятные заголовки для контроля темпа.
X-RateLimit-RemainingиX-RateLimit-Resetпоказывают задаче синхронизации, сколько запросов осталось в окне 60 секунд. - Оригинальные названия сохраняются. У сериала остается
original_name, аnameследует вашемуlanguage, что удобно, когда нужно показать название на родном языке.
Когда TheTVDB подходит лучше
- Порядок серий и есть продукт. Если ваши пользователи спорят о DVD-порядке, эфирном и абсолютном, TheTVDB считает это ядром своей модели. amodb называет порядки шоу, но не возвращает их серии, а набор групп зависит от шоу.
- Готовые интеграции. Если ваш конвейер уже хранит ID TheTVDB и читает его порядки, оставьте эту часть и добавьте amodb для дополнительных данных.
- Фокус на сериалах. Если вы никогда не показываете фильмы и людей, источник, построенный вокруг сериалов, проще освоить.
Миграция на amodb
Сопоставьте сохраненные TVDB ID один раз. После этого используйте ID amodb для каждого вызова. Эндпоинт find разрешает только ID сериалов. Его массивы tv_season_results и tv_episode_results всегда пусты, поэтому сезоны и серии сопоставляйте по номеру.
const key = process.env.AMODB_KEY;
const headers = { Authorization: `Bearer ${key}` };
const base = 'https://api.amodb.dev/3';
async function getJson(path) {
const res = await fetch(`${base}${path}`, { headers });
if (!res.ok) throw new Error(`${path} returned ${res.status}`);
return res.json();
}
const found = await getJson('/find/81189?external_source=tvdb_id');
const show = found.tv_results[0];
console.log(show.id, show.name);
const groups = await getJson(`/tv/${show.id}/episode_groups`);
for (const g of groups.results) {
console.log(g.name, g.type, g.episode_count);
}Первый запрос возвращает Breaking Bad с id 1396. Второй перечисляет существующие порядки этого шоу вместе с их размерами. Чтобы сравнить нумерацию с той, что вы храните сейчас, читайте эфирный порядок из /tv/{id}/season/{n}, а любой альтернативный порядок оставьте на стороне TheTVDB. Проведите такую проверку на десяти самых популярных шоу, прежде чем переносить остальные.
Каждый вызов считается одним запросом в окне 60 секунд, а ответ 429 содержит Retry-After. См. поиск по внешнему ID и лимиты запросов.
Цены
amodb работает по предоплате без автоматического продления. Выберите 1, 3, 6, 12 или 24 месяца и один из трех тарифов на 20, 40 или 120 запросов в минуту. Длинные периоды дешевле на 10, 20, 30 или 40 процентов, а каждый тариф дает все данные. Бесплатного тарифа нет. Суммы указаны на странице цены.