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