Який API обрати

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

Лишайтеся на TMDB, якщо безкоштовні умови підходять вашому проєкту і нічого з наступного розділу вас не стосується.

Ознаки того, що вам потрібна альтернатива

П'ять перевірок допоможуть ухвалити рішення. Проганяйте їх на власному трафіку й власному договорі, а не за списком можливостей.

ОзнакаЩо перевіритиВідповідь amodb
Комерційні умовиПрочитайте умови API, яким користуєтеся нині, щодо комерційного використання й атрибуціїПлатні тарифи, передплата, без автоматичного продовження
Пікове навантаженняПорахуйте запити у вашу найзавантаженішу хвилинуФіксований ліміт 20, 40 або 120 запитів на хвилину на ключ
Дані на екранПерелічіть додаткові виклики за однією сторінкою фільмуappend_to_response приймає також ratings, moods, soundtracks, wikidata та showtimes
Мова інтерфейсуПеревірте кожну мову, яку ви постачаєте14 мов, решта відкочується на en
Вартість виходуПорахуйте рядки коду, що називають постачальникаТі самі шляхи й JSON на підтримуваних ендпоінтах, тож вихід теж зводиться до зміни базового URL

Влучання в кеш теж рахуються. Перевірка ключа й ліміт запитів виконуються перед edge-кешем, тож повторний запит усе одно витрачає один із ваших запитів на хвилину. Плануйте за загальною кількістю запитів, а не за промахами кешу.

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

МожливістьTMDBamodb
Модель цінБезкоштовний API для відповідного використання за власними умовамиПередплачені періоди 1, 3, 6, 12 або 24 місяці
Безкоштовний тарифТак, для відповідного використанняНемає, пробного періоду теж немає
АвтентифікаціяКлюч v3 у api_key або токен v4 як Bearerapi_key або Bearer, ключ із 32 шістнадцяткових символів
Формат відповідіJSONJSON у формі TMDB v3
МовиДивіться їхню документацію14 мов інтерфейсу
ФільмиТакТак
СеріалиТакТак, із сезонами та серіями
ПерсониТакТак
ЗображенняТак, зі свого хоста зображеньimg.amodb.dev, ті самі токени розмірів, без ключа
РейтингиОцінка користувачів TMDB, інші джерела дивіться в їхній документаціїОцінка TMDB плюс IMDb, Kinopoisk, Metacritic і Rotten Tomatoes, де вони відомі
Методи записуМетоди для акаунтів, списків і оцінокНе пропонуються, відповідають 405
Ліміт запитівДивіться їхню документацію20, 40 або 120 на хвилину на ключ
Комерційне використанняУмови щодо комерційного використання й атрибуції дивіться в їхніх правилахПродається як платний API, див. ціни
СумісністьВизначає протокол v3Більшість шляхів читання v3, а також OMDb

Чим відрізняється amodb

  • Ліміти, які можна прочитати. Кожна відповідь на запит із ключем містить X-RateLimit-Limit, X-RateLimit-Remaining і X-RateLimit-Reset у секундах. Відповідь 429 додає Retry-After. Ці числа пояснено на сторінці ліміти запитів.
  • Додаткові блоки в одному виклику. Рейтинги з п'яти джерел, шкали настрою, саундтреки, факти Wikidata та сеанси кінотеатрів надходять через append_to_response, тож одна сторінка фільму може обійтися одним запитом.
  • Більше джерел зовнішніх id. /3/find розпізнає imdb_id, tvdb_id, wikidata_id і kinopoisk_id, а також facebook_id, twitter_id та instagram_id. Див. пошук за зовнішнім ID.
  • OMDb з тим самим ключем. https://api.amodb.dev/omdb/ відповідає на виклики у стилі OMDb із параметром apikey, що допомагає, коли дві ваші системи використовують різні протоколи.
  • Відомі терміни кешу. Деталі та акторський склад зі знімальною групою лишаються в edge-кеші 6 годин, тренди й discover 30 хвилин, пошук 10 хвилин, конфігурація 24 години, а зображення 30 днів.

Коли TMDB підходить краще

  • Безкоштовні проєкти. Якщо ваш випадок підпадає під безкоштовні умови, TMDB нічого не коштує, і amodb цього не перевершить.
  • Користувацькі методи запису. TMDB пропонує методи запису для акаунтів, сесій, оцінок і списків. amodb відповідає на них 405 і status_code 37, тож застосунок, у якому люди входять і оцінюють фільми, має лишити TMDB для цієї частини.
  • Стрічки змін. TMDB перелічує id, що змінилися. В amodb такої стрічки немає, тож оновлюйте дані за власним розкладом.
  • Мови понад 14. amodb не віддає текст інтерфейсу німецькою, японською чи корейською й відкочується на англійську. Оригінальні назви все одно надходять у original_title та original_name. Про інші мови в TMDB дивіться їхню документацію.
  • Умови, які ви вже прийняли. Якщо юридичну перевірку для TMDB вже пройдено, перехід вимагатиме ще однієї.

Чого amodb не пропонує

Перед переходом звірте свій код із цим списком. Повну таблицю подано на сторінці amodb проти TMDB.

Виклик TMDBВідповідь amodb
Запис для акаунтів, сесій, оцінок і списків405, status_code 37
Зміни, aggregate credits, пошук за credit та review, вміст груп епізодів404, status_code 34
Переклади персон, зображення та переклади колекцій, компаній і телемереж404, status_code 34
Список рецензій до фільму чи серіалу200, порожній для більшості назв
Зображення, відео та переклади сезону200, порожньо
Зовнішні id сезонів та епізодів200, усі null

Дві поведінки тихі. Назва append_to_response, якої amodb не знає, наприклад aggregate_credits, ігнорується без помилки. Параметр include_adult теж ігнорується, бо матеріали та персони для дорослих не віддаються ніколи.

Міграція на amodb

  1. Оберіть тариф на сторінці ціни і створіть ключ у панелі вашого акаунта.
  2. Замініть базовий URL і ключ в одному місці, як показано нижче.
  3. Читайте images.secure_base_url з /3/configuration, щоб посилання на зображення вказували на img.amodb.dev.
  4. Приберіть виклики методів запису та шляхів із таблиці вище.
  5. Обробляйте 429, чекаючи стільки секунд, скільки вказано в Retry-After.
JavaScript
const config = {
  // before: baseUrl held your current TMDB v3 base URL
  baseUrl: 'https://api.amodb.dev/3',
  apiKey: process.env.AMODB_KEY,
};

const res = await fetch(`${config.baseUrl}/movie/550?language=en-US`, {
  headers: { Authorization: `Bearer ${config.apiKey}` },
});
if (!res.ok) throw new Error(`request failed with status ${res.status}`);
const movie = await res.json();
console.log(movie.title, movie.release_date);

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

Обробка помилок лишається тією самою

Невдалі виклики повертають тіло TMDB {"success": false, "status_code": N, "status_message": "..."}, тож код, який розгалужується за status_code, переписувати не треба.

HTTPstatus_codeТипова причина
4017Ключ відсутній або з помилкою
40110Ключ призупинено
40236Передплачений період закінчився
40434Id не знайдено або шлях, якого amodb не пропонує
40537Метод запису, який ваш код досі викликає
42925Більше запитів, ніж тариф дозволяє за 60 секунд

Сприймайте 402 як сигнал продовжити вручну, бо автоматично нічого не продовжується. Повний перелік подано на сторінці помилки.

Ціни

amodb працює за передплатою. Оберіть період 1, 3, 6, 12 або 24 місяці, що дає знижку 0, 10, 20, 30 або 40 відсотків, та один із трьох тарифів на 20, 40 або 120 запитів на хвилину. Кожен тариф відкриває всі дані, і нічого не продовжується автоматично. Безкоштовного тарифу й пробного періоду немає. Актуальні суми дивіться на сторінці ціни.