Qual API escolher

O TMDB oferece uma API gratuita para uso elegível, sob seus próprios termos, com chaves da API v3 e tokens v4. Leia esses termos sobre uso comercial e atribuição antes de publicar. Escolha uma alternativa quando quiser um contrato pago, um limite que dê para planejar ou mais dados em cada resposta. O amodb é uma API independente que fala o protocolo TMDB v3 nas leituras, então a troca significa uma nova URL base e uma nova chave. Ele é somente de leitura, e alguns caminhos do TMDB não são oferecidos, como listado abaixo.

Fique no TMDB se os termos gratuitos servirem ao seu projeto e nada na próxima seção se aplicar a você.

Sinais de que você precisa de uma alternativa

Cinco verificações ajudam a decidir. Rode-as contra o seu próprio tráfego e o seu próprio contrato, não contra uma lista de recursos.

SinalO que testarComo o amodb responde
Termos comerciaisLeia os termos da API que você usa hoje sobre uso comercial e atribuiçãoPlanos pagos, pré-pagos, sem renovação automática
Pico de tráfegoConte as requisições no seu minuto mais movimentadoUm limite fixo de 20, 40 ou 120 requisições por minuto por chave
Dados por telaListe as chamadas extras por trás da página de um títuloappend_to_response também aceita ratings, moods, soundtracks, wikidata e showtimes
Idioma da interfaceVerifique cada idioma que você publica14 idiomas, qualquer outro volta para en
Custo de saídaConte as linhas de código que citam um fornecedorMesmos caminhos e JSON nos endpoints atendidos, então sair também é uma troca de URL base

Acertos de cache também contam. A verificação da chave e o limite de requisições rodam antes do cache de borda, então uma requisição repetida ainda usa uma das suas requisições por minuto. Planeje pelo total de requisições, e não só pelas que passam direto pelo cache.

Comparação de recursos

RecursoTMDBamodb
Modelo de preçoAPI gratuita para uso elegível, sob seus próprios termosPeríodos pré-pagos de 1, 3, 6, 12 ou 24 meses
Plano gratuitoSim, para uso elegívelNenhum, e sem período de teste
AutenticaçãoChave v3 em api_key, ou token v4 como Bearerapi_key ou Bearer, chave de 32 caracteres hexadecimais
Formato da respostaJSONJSON no formato TMDB v3
IdiomasConsulte a documentação deles14 idiomas de interface
FilmesSimSim
TVSimSim, com temporadas e episódios
PessoasSimSim
ImagensSim, de um host de imagens próprioimg.amodb.dev, mesmos tokens de tamanho, sem chave
AvaliaçõesNota dos usuários do TMDB, consulte a documentação deles sobre outras fontesNota do TMDB mais IMDb, Kinopoisk, Metacritic e Rotten Tomatoes, quando conhecidas
Métodos de escritaMétodos de conta, lista e avaliaçãoNão oferecidos, respondem 405
Limite de requisiçõesConsulte a documentação deles20, 40 ou 120 por minuto por chave
Uso comercialConsulte os termos deles sobre uso comercial e atribuiçãoVendido como API paga, veja preços
CompatibilidadeDefine o protocolo v3A maioria dos caminhos de leitura da v3, mais OMDb

Onde o amodb se diferencia

  • Limites que você consegue ler. Toda resposta com chave traz X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset em segundos. Um 429 acrescenta Retry-After. Os números são explicados em limites de requisições.
  • Blocos extras em uma chamada. Avaliações de cinco fontes, medidores de mood (clima emocional), trilhas sonoras, fatos do Wikidata e horários de sessões de cinema chegam por append_to_response, então a página de um título pode usar uma única requisição.
  • Mais fontes de ID externo. /3/find resolve imdb_id, tvdb_id, wikidata_id e kinopoisk_id, e também facebook_id, twitter_id e instagram_id. Veja busca por ID externo.
  • OMDb na mesma chave. https://api.amodb.dev/omdb/ responde a chamadas no estilo OMDb com um parâmetro apikey, o que ajuda quando dois sistemas seus usam protocolos diferentes.
  • Tempos de cache conhecidos. Detalhes e créditos ficam 6 horas na borda, em alta e descoberta 30 minutos, busca 10 minutos, configuração 24 horas e imagens 30 dias.

Onde o TMDB é mais indicado

  • Projetos gratuitos. Se o seu uso se enquadra nos termos gratuitos, o TMDB não custa nada, e o amodb não consegue igualar isso.
  • Métodos de escrita de usuário. O TMDB oferece métodos de escrita de conta, sessão, avaliação e lista. O amodb responde a eles com 405 e status_code 37, então um app que deixa pessoas entrarem e avaliarem títulos deve manter o TMDB para essa parte.
  • Feeds de alterações. O TMDB lista os IDs que mudaram. O amodb não tem esse feed, então você atualiza no seu próprio ritmo.
  • Idiomas além de 14. O amodb não serve texto de interface em alemão, japonês ou coreano e volta para o inglês. Os títulos originais continuam chegando em original_title e original_name. Para outros idiomas no TMDB, consulte a documentação deles.
  • Termos que você já aceitou. Se a revisão jurídica do TMDB já foi feita, trocar custa outra revisão.

O que o amodb não oferece

Confira seu código com esta lista antes da virada. A tabela completa está em amodb vs TMDB.

Chamada do TMDBResposta do amodb
Escritas de conta, sessão, avaliação e lista405, status_code 37
Alterações, créditos agregados, consultas de crédito e de resenha, conteúdo de grupos de episódios404, status_code 34
Traduções de pessoas, imagens e traduções de coleções, produtoras e emissoras404, status_code 34
Lista de resenhas de um filme ou série200, vazia para a maioria dos títulos
Imagens, vídeos e traduções de temporada200, vazio
IDs externos de temporada e episódio200, todos null

Dois comportamentos são silenciosos. Um nome de append_to_response que o amodb não conhece, como aggregate_credits, é ignorado sem erro. O parâmetro include_adult também é ignorado, porque títulos e pessoas adultos nunca são servidos.

Migrar para o amodb

  1. Escolha um plano em preços e crie uma chave no painel da sua conta.
  2. Troque a URL base e a chave em um só lugar, como abaixo.
  3. Leia images.secure_base_url de /3/configuration para que os links de imagem usem img.amodb.dev.
  4. Remova as chamadas de métodos de escrita e dos caminhos da tabela acima.
  5. Trate o 429 esperando os segundos de 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);

Rode seus testes existentes contra as duas URLs base antes da virada. Um formato em comum não garante valores idênticos, então compare uma amostra dos seus próprios títulos. O passo a passo completo está no início rápido, e uma tabela lado a lado está em amodb vs TMDB.

O tratamento de erros continua valendo

Chamadas que falham retornam o corpo do TMDB {"success": false, "status_code": N, "status_message": "..."}, então o código que ramifica por status_code não precisa ser reescrito.

HTTPstatus_codeCausa típica
4017Chave ausente ou digitada errado
40110Chave suspensa
40236Período pré-pago encerrado
40434ID não encontrado, ou um caminho que o amodb não oferece
40537Um método de escrita que o seu código ainda chama
42925Mais requisições do que o plano permite em 60 segundos

Trate o 402 como um sinal para renovar manualmente, porque nada renova automaticamente. A lista completa está em erros.

Preços

O amodb é pré-pago. Escolha um período de 1, 3, 6, 12 ou 24 meses, que dá 0, 10, 20, 30 ou 40 por cento de desconto, e um de três planos de 20, 40 ou 120 requisições por minuto. Todo plano recebe todos os dados e nada renova automaticamente. Não há plano gratuito nem período de teste. Os valores atuais estão em preços.