Що обрати для серіального проєкту

TheTVDB зосереджений на серіалах і зберігає для шоу кілька порядків епізодів, зокрема ефірний, DVD та абсолютний, а доступ надає за моделлю ключа API. Перш ніж планувати комерційний продукт, перегляньте їхню документацію щодо ліцензування. Обирайте amodb, коли вам потрібні серіали, фільми й персони з одним ключем, шляхи TMDB v3 та 14 мов. Обирайте TheTVDB, якщо в центрі вашого застосунку точна альтернативна нумерація, адже amodb показує групи епізодів шоу, але не віддає їхній вміст.

Як дані про серіали зіставляються між двома сервісами

Поняття збігаються, але назви різні. Ця таблиця охоплює те, що зазвичай читає застосунок про серіали.

ПотребаПідхід TheTVDBВиклик amodb
Один серіалЗапис серіалу за TVDB idGET /3/tv/1396, після пошуку за tvdb_id
Список сезонівДивіться їхню документаціюмасив seasons у деталях серіалу
Один сезон з епізодамиДивіться їхню документаціюGET /3/tv/1396/season/1
Один епізодДивіться їхню документаціюGET /3/tv/1396/season/1/episode/1
Які порядки існуютьЕфірний, DVD та абсолютний порядкиGET /3/tv/1396/episode_groups
Епізоди всередині одного порядкуДивіться їхню документаціюНе пропонується, /3/tv/episode_group/{id} відповідає 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. Подробиці на сторінці сезони та серії.

Що повертає список груп епізодів

Виклик зі списком показує, які порядки існують для серіалу. Самих епізодів усередині них він не повертає.

ПолеЗначення
idId групи, рядок
nameНазва порядку, наприклад DVD / PVOD
descriptionТекст із джерела, часто порожній
typeЧисло, що вказує на вид порядку
episode_countКількість епізодів у порядку
group_countКількість блоків у порядку, наприклад сезонів
networkОб'єкт із телемережею або null

Ось справжня відповідь для Breaking Bad.

JSON
{
  "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.

Порівняння можливостей

МожливістьTheTVDBamodb
Модель цінМодель ключа 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_to_response=ratings у деталях серіалу додає IMDb та інші оцінки одним запитом.
  • Прості заголовки для контролю темпу. 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 завжди порожні, тож сезони та епізоди зіставляйте за номером.

JavaScript
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 відсотків, а кожен тариф відкриває всі дані. Безкоштовного тарифу немає. Суми дивіться на сторінці ціни.