Коротке порівняння

amodb це незалежний API, що говорить тим самим протоколом, що й TMDB v3. Клієнт, написаний для TMDB, читає з amodb після зміни базового URL і ключа, якщо він не викликає шлях із таблиці «не пропонується» нижче. Тож вибір залежить від умов, додаткових можливостей і кількох прогалин. TMDB пропонує безкоштовний API для відповідного використання за власними умовами. amodb це платний API лише для читання з 14 мовами, п'ятьма додатковими блоками даних і лімітом, що рахується на ключ.

Збіг ендпоінтів

Кожен рядок показує шлях читання TMDB v3 і те, як він поводиться на https://api.amodb.dev/3.

ОбластьШлях TMDB v3В amodb
Деталі фільму/movie/{movie_id}Так само, з п'ятьма додатковими значеннями append_to_response
Деталі серіалу/tv/{series_id}Так само, але без поля type, а created_by порожнє для більшості серіалів
Сезони й серії/tv/{series_id}/season/{season_number}Та сама структура. Зображення, відео й переклади сезонів порожні, а external_ids сезонів і серій дорівнюють null
Персони/person/{person_id}Так само, з combined_credits, movie_credits, tv_credits, external_ids та images (лише профілі)
Акторський склад і знімальна група/movie/{movie_id}/creditsТак само. У серій cast порожній
Пошук/search/multiТак само, кеш 10 хвилин
Discover/discover/movieТак само, кеш 30 хвилин
Тренди/trending/{media_type}/{time_window}Так само, кеш 30 хвилин
Списки/movie/popularТак само, page від 1 до 500
Зображення/movie/{movie_id}/imagesТа сама структура, файли завантажуються з img.amodb.dev
Відео/movie/{movie_id}/videosТак само
Переклади/movie/{movie_id}/translationsТак само, підтримується 14 мов
Ключові слова/movie/{movie_id}/keywordsТак само
Рецензії/movie/{movie_id}/reviewsВідповідає 200, але рецензії є лише в кількох тайтлів, тож порожній список це норма
Колекції/collection/{collection_id}Так само, parts упорядковані за датою виходу
Компанії й телемережі/company/{company_id}Ті самі ключі. description компанії порожній, а parent_company дорівнює null
Жанри/genre/movie/listТак само
Конфігурація/configurationТі самі ключі, хост зображень img.amodb.dev
Пошук за зовнішнім ID/find/{external_id}Той самий ендпоінт, плюс kinopoisk_id. tv_episode_results і tv_season_results завжди порожні
Групи серій/tv/{series_id}/episode_groupsПерелічує групи серіалу без їхнього вмісту

Що не пропонується в amodb

Ці виклики TMDB v3 не мають відповідників. Невідомі шляхи відповідають 404 зі status_code 34, а методи запису відповідають 405 зі status_code 37.

Виклик TMDB v3Відповідь amodb
/movie/changes, /tv/changes, /person/changes і changes під одним id404, status_code 34
aggregate_credits під серіалом або сезоном404, status_code 34
/credit/{credit_id} і /review/{review_id}404, status_code 34
/tv/episode_group/{id}404, status_code 34
/person/{person_id}/translations, tagged_images і /person/latest404, status_code 34
images, translations і alternative_names для колекцій, компаній і телемереж404, status_code 34
/configuration/timezones404, status_code 34
Усе під account, authentication, guest_session і list, а також будь-який шлях /rating або /account_states405, status_code 37

Якщо ви додасте aggregate_credits або changes до append_to_response, amodb ігнорує цю назву без помилки, тож ключа просто немає в тілі відповіді.

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

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

Чим відрізняються докладніше

  • Умови. TMDB просить вас прочитати його умови щодо комерційного використання й атрибуції. amodb продається за передплаченими періодами, без автоматичного поновлення, безкоштовного тарифу й пробного періоду.
  • Мови. amodb обслуговує en, ru, uk, be, zh, pt, bg, he, cs, ro, fr, pl, it та es. Він приймає теги TMDB, як-от ru-RU і pt-BR. Німецька, японська й корейська відкочуються до en, а original_title зберігає початкову назву. Про мовне покриття TMDB дивіться їхню документацію. Дивіться мови.
  • Розширення. append_to_response також приймає moods, soundtracks, ratings, wikidata і showtimes, і кожне має власний шлях під фільмами та серіалами.
  • Зовнішні id. /3/find розв'язує imdb_id, tvdb_id, wikidata_id, kinopoisk_id, facebook_id, twitter_id і instagram_id. Джерела freebase_mid, freebase_id, tvrage_id, tiktok_id і youtube_id приймаються, але повертають порожні масиви. Відсутнє чи невідоме external_source відповідає 400 зі status_code 22.
  • Порожнє за задумом. Зображення, відео й переклади сезонів та description компанії завжди порожні. Рецензії й created_by серіалу заповнені лише для кількох тайтлів. external_ids сезонів і серій усі дорівнюють null.
  • Матеріали для дорослих. include_adult ігнорується. Тайтли й персони для дорослих ніколи не віддаються та відповідають 404.
  • Зображення. Шлях CDN: https://img.amodb.dev/t/p/{size}/{file}. Ключ не потрібен, а файли кешуються на 30 днів.
  • Ліміти. Вікно це ковзні 60 секунд на ключ. Заголовки показують залишок, а влучання в кеш усе одно враховуються, бо перевірка ліміту виконується першою.
  • Незалежність. Каталог походить із публічних і відкритих джерел та нашого власного збагачення. Спільна структура не гарантує однакових значень кожного поля кожного тайтла.

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

  • Безкоштовне відповідне використання. Платити не потрібно, і amodb цього не може повторити.
  • Запис. Оцінювання тайтла, створення списку та сесії акаунта працюють у TMDB. В amodb вони повертають 405.
  • Стрічки змін. TMDB перелічує id, що змінилися. В amodb такої стрічки немає, тож ви оновлюєте за власним розкладом.
  • Aggregate credits і пошук credit. Обидва в amodb відповідають 404. Використовуйте /credits тайтла.
  • Ширші мовні потреби. Якщо вашому інтерфейсу потрібна мова поза цими 14, спершу перевірте TMDB.
  • Наявне погодження. Команда, яка пройшла юридичну перевірку TMDB, має зважити вартість другої перевірки.

Міграція на amodb

Зміна полягає в одному рядку на запит.

Shell
# before: TMDB_BASE is your current TMDB v3 base URL
curl -s "$TMDB_BASE/movie/550?api_key=$TMDB_KEY"

# after
curl -s "https://api.amodb.dev/3/movie/550?api_key=$AMODB_KEY"

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

JavaScript
async function topLevelKeys(base, key, path) {
  const res = await fetch(`${base}${path}?api_key=${key}`);
  if (!res.ok) throw new Error(`${path} returned ${res.status}`);
  return Object.keys(await res.json()).sort();
}

for (const path of ['/movie/550', '/tv/1396', '/person/31']) {
  const current = await topLevelKeys(process.env.TMDB_BASE, process.env.TMDB_KEY, path);
  const next = await topLevelKeys('https://api.amodb.dev/3', process.env.AMODB_KEY, path);
  const missing = current.filter((k) => !next.includes(k));
  console.log(path, missing.length ? `missing: ${missing.join(', ')}` : 'same keys');
}

Необов'язкові поля можуть відрізнятися для окремого тайтла, тож сприймайте відсутній ключ як привід перевірити, а не як вирок. Потім пройдіть цей список:

  1. Оберіть тариф на сторінці ціни, потім створіть ключ у кабінеті акаунта.
  2. Винесіть базовий URL і ключ у конфігурацію.
  3. Прочитайте images.secure_base_url з /3/configuration.
  4. Знайдіть у коді виклики запису та шляхи з таблиці «не пропонується». Залиште запис на TMDB, а решту замініть.
  5. Додайте обробник 429, що чекає Retry-After секунд. Дивіться ліміти запитів і помилки.

Ціни

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