Краткое сравнение
amodb является независимым API, работающим по тому же протоколу, что и TMDB v3. Клиент, написанный для TMDB, читает данные из amodb после смены базового URL и ключа, если он не вызывает путь из таблицы не предлагаемых вызовов ниже. Поэтому выбор зависит от условий, дополнений и нескольких пробелов. TMDB предлагает бесплатный API для подходящего использования на своих условиях. amodb, напротив, платный API только для чтения с 14 языками, пятью дополнительными блоками данных и лимитом, который считается на ключ.
Совместимость эндпоинтов
Каждая строка показывает путь чтения TMDB v3 и его поведение на https:/.
| Область | Путь TMDB v3 | В amodb |
|---|---|---|
| Детали фильма | /movie/{movie_id} | То же, плюс пять дополнительных значений append_to_response |
| Детали сериала | /tv/{series_id} | То же, но без поля type, а created_by пусто у большинства сериалов |
| Сезоны и серии | / | Та же структура. Изображения, видео и переводы сезонов пусты, а external_ids сезонов и серий равны null |
| Люди | /person/{person_id} | То же, с combined_credits, movie_credits, tv_credits, external_ids и images (только профили) |
| Актеры и съемочная группа | / | То же. У серий cast пуст |
| Поиск | /search/multi | То же, кэш 10 минут |
| Discover | /discover/movie | То же, кэш 30 минут |
| В тренде | / | То же, кэш 30 минут |
| Списки | /movie/popular | То же, page от 1 до 500 |
| Изображения | / | Та же структура, файлы загружаются с img.amodb.dev |
| Видео | / | То же |
| Переводы | / | То же, поддерживается 14 языков |
| Ключевые слова | / | То же |
| Отзывы | / | Отвечает 200, но отзывы есть лишь у нескольких тайтлов, поэтому пустой список вполне обычен |
| Коллекции | / | То же, 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 всегда пусты |
| Группы серий | / | Выводит группы сериала без их содержимого |
Что amodb не предлагает
У этих вызовов TMDB v3 нет аналога. Неизвестные пути отвечают 404 со status_code 34, а методы записи отвечают 405 со status_code 37.
| Вызов TMDB v3 | Ответ amodb |
|---|---|
/movie/changes, /tv/changes, /person/changes и changes внутри одного ID | 404, 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 |
/, tagged_images и /person/latest | 404, status_code 34 |
images, translations и alternative_names для коллекций, компаний и телесетей | 404, status_code 34 |
/ | 404, status_code 34 |
Все, что находится под account, authentication, guest_session и list, а также любой путь /rating или /account_states | 405, status_code 37 |
Если добавить aggregate_credits или changes в append_to_response, amodb игнорирует это имя без ошибки, поэтому ключ просто отсутствует в теле ответа.
Сравнение возможностей
| Возможность | TMDB | amodb |
|---|---|---|
| Модель оплаты | Бесплатно для подходящего использования, на условиях TMDB | Предоплата, от 1 до 24 месяцев за покупку |
| Бесплатный тариф | Да, для подходящего использования | Нет, пробного периода тоже нет |
| Аутентификация | Ключ v3 в api_key или токен v4 как Bearer | api_key или Bearer с шестнадцатеричным ключом из 32 символов |
| Формат ответа | JSON | JSON, те же поля на поддерживаемых путях |
| Языки | Уточняйте в их документации | 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_code22. - Пусто по замыслу. Изображения, видео и переводы сезонов, а также
descriptionкомпании всегда пусты. Отзывы иcreated_byу сериала заполнены лишь для нескольких тайтлов.external_idsсезонов и серий везде равны null. - Контент для взрослых.
include_adultигнорируется. Тайтлы и люди для взрослых никогда не отдаются и отвечают 404. - Изображения. Путь CDN:
https:/. Ключ не нужен, файлы кэшируются на 30 дней./ img.amodb.dev/ t/ p/ {size}/ {file} - Лимиты. Окно скользящее, 60 секунд на ключ. Заголовки показывают остаток, а попадания в кэш тоже засчитываются, потому что проверка лимита выполняется первой.
- Независимость. Каталог собирается из публичных и открытых источников и нашего собственного обогащения. Общая структура не гарантирует одинаковых значений каждого поля у каждого тайтла.
Когда TMDB подходит лучше
- Бесплатное подходящее использование. Платить не нужно, и amodb здесь не сможет сравниться.
- Запись. Оценка тайтла, создание списка и сессии аккаунта работают в TMDB. В amodb они возвращают 405.
- Ленты changes. TMDB перечисляет ID, которые изменились. В amodb такой ленты нет, поэтому обновление идет по вашему расписанию.
- Aggregate credits и поиск по credit. Оба отвечают 404 в amodb. Используйте
/creditsу тайтла. - Потребность в других языках. Если вашему интерфейсу нужен язык вне этих 14, сначала проверьте TMDB.
- Уже полученное одобрение. Команде, которая согласовала TMDB с юристами, стоит учесть цену второго согласования.
Миграция на amodb
Изменение сводится к одной строке на запрос.
# 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"Перед переключением сравните структуру нескольких ответов бок о бок. Этот скрипт печатает ключи верхнего уровня, которые возвращает одна сторона и не возвращает другая.
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');
}Необязательные поля у конкретного тайтла могут отличаться, поэтому воспринимайте отсутствующий ключ как повод проверить, а не как приговор. Затем пройдите по этому списку:
- Выберите тариф на странице цены, затем создайте ключ в личном кабинете.
- Вынесите базовый URL и ключ в конфигурацию.
- Читайте
images.secure_base_urlиз/3/configuration. - Найдите в коде вызовы записи и пути из таблицы не предлагаемых. Вызовы записи оставьте в TMDB, остальное замените.
- Добавьте обработчик 429, который ждет
Retry-Afterсекунд. См. лимиты запросов и ошибки.
Цены
amodb работает по предоплате. Выберите 1, 3, 6, 12 или 24 месяца со скидкой 0, 10, 20, 30 или 40 процентов и один из трех тарифов на 20, 40 или 120 запросов в минуту. Любой тариф возвращает все данные, и ни один не продлевается сам. Суммы указаны на странице цены.