Який 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-кешем, тож повторний запит усе одно витрачає один із ваших запитів на хвилину. Плануйте за загальною кількістю запитів, а не за промахами кешу.
Порівняння можливостей
| Можливість | TMDB | amodb |
|---|---|---|
| Модель цін | Безкоштовний API для відповідного використання за власними умовами | Передплачені періоди 1, 3, 6, 12 або 24 місяці |
| Безкоштовний тариф | Так, для відповідного використання | Немає, пробного періоду теж немає |
| Автентифікація | Ключ v3 у api_key або токен v4 як Bearer | api_key або Bearer, ключ із 32 шістнадцяткових символів |
| Формат відповіді | JSON | JSON у формі 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:/відповідає на виклики у стилі OMDb із параметром/ api.amodb.dev/ 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
- Оберіть тариф на сторінці ціни і створіть ключ у панелі вашого акаунта.
- Замініть базовий URL і ключ в одному місці, як показано нижче.
- Читайте
images.secure_base_urlз/3/configuration, щоб посилання на зображення вказували наimg.amodb.dev. - Приберіть виклики методів запису та шляхів із таблиці вище.
- Обробляйте 429, чекаючи стільки секунд, скільки вказано в
Retry-After.
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, переписувати не треба.
| HTTP | status_code | Типова причина |
|---|---|---|
| 401 | 7 | Ключ відсутній або з помилкою |
| 401 | 10 | Ключ призупинено |
| 402 | 36 | Передплачений період закінчився |
| 404 | 34 | Id не знайдено або шлях, якого amodb не пропонує |
| 405 | 37 | Метод запису, який ваш код досі викликає |
| 429 | 25 | Більше запитів, ніж тариф дозволяє за 60 секунд |
Сприймайте 402 як сигнал продовжити вручну, бо автоматично нічого не продовжується. Повний перелік подано на сторінці помилки.
Ціни
amodb працює за передплатою. Оберіть період 1, 3, 6, 12 або 24 місяці, що дає знижку 0, 10, 20, 30 або 40 відсотків, та один із трьох тарифів на 20, 40 або 120 запитів на хвилину. Кожен тариф відкриває всі дані, і нічого не продовжується автоматично. Безкоштовного тарифу й пробного періоду немає. Актуальні суми дивіться на сторінці ціни.