Które API wybrać

TMDB oferuje darmowe API dla kwalifikowanego użycia według własnych warunków, z kluczami API v3 i tokenami v4. Zanim wdrożysz produkt, przeczytaj te warunki użycia komercyjnego i atrybucji. Wybierz alternatywę, gdy chcesz płatnej umowy, limitu, pod który da się planować, albo więcej danych w każdej odpowiedzi. amodb to niezależne API mówiące protokołem TMDB v3 w odczycie, więc przejście oznacza nowy bazowy URL i nowy klucz. Jest tylko do odczytu, a kilka ścieżek TMDB nie jest dostępnych, jak wymieniono niżej.

Zostań przy TMDB, jeśli darmowe warunki pasują do twojego projektu i nic z następnej sekcji cię nie dotyczy.

Sygnały, że potrzebujesz alternatywy

Pięć kontroli pomaga zdecydować. Uruchom je na własnym ruchu i własnej umowie, a nie na liście funkcji.

SygnałCo sprawdzićJak odpowiada amodb
Warunki komercyjnePrzeczytaj warunki API, którego używasz dziś, pod kątem użycia komercyjnego i atrybucjiPłatne plany, przedpłacone, bez automatycznego odnawiania
Szczytowy ruchPolicz żądania w najbardziej obciążonej minucieStały limit 20, 40 lub 120 żądań na minutę na klucz
Dane na ekranWypisz dodatkowe wywołania za stroną jednego tytułuappend_to_response przyjmuje też ratings, moods, soundtracks, wikidata i showtimes
Język interfejsuSprawdź każdy język, który dostarczasz14 języków, wszystko inne wraca do en
Koszt wyjściaPolicz linie kodu, które nazywają dostawcęTe same ścieżki i JSON na udostępnianych endpointach, więc wyjście to też tylko zmiana bazowego URL

Trafienia w cache też się liczą. Sprawdzenie klucza i limitu działa przed cache na edge, więc powtórzone żądanie nadal zużywa jedno z twoich żądań na minutę. Planuj według łącznej liczby żądań, a nie chybień cache.

Porównanie funkcji

FunkcjaTMDBamodb
Model cenowyDarmowe API dla kwalifikowanego użycia według własnych warunkówOkresy przedpłacone 1, 3, 6, 12 lub 24 miesiące
Darmowy planTak, dla kwalifikowanego użyciaBrak, ani wersji próbnej
UwierzytelnianieKlucz v3 w api_key albo token v4 jako Bearerapi_key lub Bearer, klucz z 32 znaków szesnastkowych
Format odpowiedziJSONJSON w kształcie TMDB v3
JęzykiSprawdź ich dokumentację14 języków interfejsu
FilmyTakTak
SerialeTakTak, z sezonami i odcinkami
OsobyTakTak
ObrazyTak, z własnego hosta obrazówimg.amodb.dev, te same tokeny rozmiarów, bez klucza
OcenyOcena użytkowników TMDB, inne źródła sprawdź w ich dokumentacjiWynik TMDB plus IMDb, Kinopoisk, Metacritic i Rotten Tomatoes, gdy znane
Metody zapisuMetody konta, list i ocenNiedostępne, odpowiadają 405
Limit żądańSprawdź ich dokumentację20, 40 lub 120 na minutę na klucz
Użycie komercyjneSprawdź ich warunki użycia komercyjnego i atrybucjiSprzedawane jako płatne API, zobacz cennik
ZgodnośćDefiniuje protokół v3Większość ścieżek odczytu v3 plus OMDb

Czym amodb się różni

  • Limity, które możesz odczytać. Każda odpowiedź z kluczem niesie X-RateLimit-Limit, X-RateLimit-Remaining i X-RateLimit-Reset w sekundach. 429 dodaje Retry-After. Liczby wyjaśnia strona limity żądań.
  • Dodatkowe bloki w jednym wywołaniu. Oceny z pięciu źródeł, mierniki nastroju, ścieżki dźwiękowe, fakty z Wikidata i seanse kinowe przychodzą przez append_to_response, więc strona jednego tytułu może użyć jednego żądania.
  • Więcej źródeł zewnętrznych ID. /3/find rozwiązuje imdb_id, tvdb_id, wikidata_id i kinopoisk_id, a także facebook_id, twitter_id i instagram_id. Zobacz wyszukiwanie po zewnętrznym ID.
  • OMDb na tym samym kluczu. https://api.amodb.dev/omdb/ odpowiada na wywołania w stylu OMDb z parametrem apikey, co pomaga, gdy dwa twoje systemy używają różnych protokołów.
  • Znane czasy cache. Szczegóły i obsada zostają 6 godzin na edge, trending i discover 30 minut, wyszukiwanie 10 minut, konfiguracja 24 godziny, a obrazy 30 dni.

Kiedy TMDB pasuje lepiej

  • Darmowe projekty. Jeśli twoje użycie spełnia darmowe warunki, TMDB nic nie kosztuje i amodb nie może tego dorównać.
  • Użytkownikowe metody zapisu. TMDB oferuje metody zapisu konta, sesji, ocen i list. amodb odpowiada na nie 405 i status_code 37, więc aplikacja, która pozwala ludziom logować się i oceniać tytuły, powinna zostawić TMDB dla tej części.
  • Kanały zmian. TMDB wymienia ID, które się zmieniły. amodb nie ma takiego kanału, więc odświeżasz według własnego harmonogramu.
  • Języki poza 14. amodb nie udostępnia tekstu interfejsu po niemiecku, japońsku ani koreańsku i wraca do angielskiego. Tytuły oryginalne nadal przychodzą w original_title i original_name. Inne języki w TMDB sprawdź w ich dokumentacji.
  • Warunki, które już zostały zaakceptowane. Jeśli przegląd prawny dla TMDB jest zrobiony, przejście kosztuje cię kolejny przegląd.

Czego amodb nie udostępnia

Przed przełączeniem sprawdź swój kod z tą listą. Pełna tabela jest na stronie amodb vs TMDB.

Wywołanie TMDBOdpowiedź amodb
Zapisy konta, sesji, ocen i list405, status_code 37
Changes, aggregate credits, wyszukiwanie wpisów obsady i recenzji, zawartość grup odcinków404, status_code 34
Tłumaczenia osób, obrazy i tłumaczenia kolekcji, firm i sieci404, status_code 34
Lista recenzji filmu lub serialu200, pusta dla większości tytułów
Obrazy, wideo i tłumaczenia sezonów200, puste
Zewnętrzne ID sezonów i odcinków200, wszystkie null

Dwa zachowania są ciche. Nazwa w append_to_response, której amodb nie zna, na przykład aggregate_credits, jest ignorowana bez błędu. Parametr include_adult też jest ignorowany, bo tytuły i osoby dla dorosłych nigdy nie są udostępniane.

Przejście na amodb

  1. Wybierz plan na stronie cennik i utwórz klucz w panelu konta.
  2. Zamień bazowy URL i klucz w jednym miejscu, jak niżej.
  3. Odczytaj images.secure_base_url z /3/configuration, aby linki do obrazów używały img.amodb.dev.
  4. Usuń wywołania metod zapisu i ścieżek z powyższej tabeli.
  5. Obsłuż 429, czekając Retry-After sekund.
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);

Przed przełączeniem uruchom istniejące testy na obu bazowych URL. Wspólny kształt nie gwarantuje identycznych wartości, więc porównaj próbkę własnych tytułów. Pełny przewodnik jest w szybkim starcie, a tabela obok siebie na stronie amodb vs TMDB.

Obsługa błędów się przenosi

Nieudane wywołania zwracają treść TMDB {"success": false, "status_code": N, "status_message": "..."}, więc kod rozgałęziający po status_code nie wymaga przepisania.

HTTPstatus_codeTypowa przyczyna
4017Brak klucza lub literówka
40110Klucz zawieszony
40236Okres przedpłaty dobiegł końca
40434Nie znaleziono ID albo ścieżka, której amodb nie udostępnia
40537Metoda zapisu, którą twój kod nadal wywołuje
42925Więcej żądań, niż plan dopuszcza w 60 sekund

402 traktuj jako sygnał do ręcznego odnowienia, bo nic nie odnawia się automatycznie. Pełna lista jest na stronie błędy.

Cennik

amodb jest przedpłacone. Wybierz okres 1, 3, 6, 12 lub 24 miesięcy, za który jest zniżka 0, 10, 20, 30 lub 40 procent, oraz jeden z trzech planów z 20, 40 lub 120 żądaniami na minutę. Każdy plan dostaje wszystkie dane i nic nie odnawia się automatycznie. Nie ma darmowego planu ani wersji próbnej. Aktualne kwoty są na stronie cennik.