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.
| Sinal | O que testar | Como o amodb responde |
|---|---|---|
| Termos comerciais | Leia os termos da API que você usa hoje sobre uso comercial e atribuição | Planos pagos, pré-pagos, sem renovação automática |
| Pico de tráfego | Conte as requisições no seu minuto mais movimentado | Um limite fixo de 20, 40 ou 120 requisições por minuto por chave |
| Dados por tela | Liste as chamadas extras por trás da página de um título | append_to_response também aceita ratings, moods, soundtracks, wikidata e showtimes |
| Idioma da interface | Verifique cada idioma que você publica | 14 idiomas, qualquer outro volta para en |
| Custo de saída | Conte as linhas de código que citam um fornecedor | Mesmos 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
| Recurso | TMDB | amodb |
|---|---|---|
| Modelo de preço | API gratuita para uso elegível, sob seus próprios termos | Períodos pré-pagos de 1, 3, 6, 12 ou 24 meses |
| Plano gratuito | Sim, para uso elegível | Nenhum, e sem período de teste |
| Autenticação | Chave v3 em api_key, ou token v4 como Bearer | api_key ou Bearer, chave de 32 caracteres hexadecimais |
| Formato da resposta | JSON | JSON no formato TMDB v3 |
| Idiomas | Consulte a documentação deles | 14 idiomas de interface |
| Filmes | Sim | Sim |
| TV | Sim | Sim, com temporadas e episódios |
| Pessoas | Sim | Sim |
| Imagens | Sim, de um host de imagens próprio | img.amodb.dev, mesmos tokens de tamanho, sem chave |
| Avaliações | Nota dos usuários do TMDB, consulte a documentação deles sobre outras fontes | Nota do TMDB mais IMDb, Kinopoisk, Metacritic e Rotten Tomatoes, quando conhecidas |
| Métodos de escrita | Métodos de conta, lista e avaliação | Não oferecidos, respondem 405 |
| Limite de requisições | Consulte a documentação deles | 20, 40 ou 120 por minuto por chave |
| Uso comercial | Consulte os termos deles sobre uso comercial e atribuição | Vendido como API paga, veja preços |
| Compatibilidade | Define o protocolo v3 | A 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-RemainingeX-RateLimit-Resetem segundos. Um 429 acrescentaRetry-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/findresolveimdb_id,tvdb_id,wikidata_idekinopoisk_id, e tambémfacebook_id,twitter_ideinstagram_id. Veja busca por ID externo. - OMDb na mesma chave.
https:/responde a chamadas no estilo OMDb com um parâmetro/ api.amodb.dev/ omdb/ 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_titleeoriginal_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 TMDB | Resposta do amodb |
|---|---|
| Escritas de conta, sessão, avaliação e lista | 405, status_code 37 |
| Alterações, créditos agregados, consultas de crédito e de resenha, conteúdo de grupos de episódios | 404, status_code 34 |
| Traduções de pessoas, imagens e traduções de coleções, produtoras e emissoras | 404, status_code 34 |
| Lista de resenhas de um filme ou série | 200, vazia para a maioria dos títulos |
| Imagens, vídeos e traduções de temporada | 200, vazio |
| IDs externos de temporada e episódio | 200, 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
- Escolha um plano em preços e crie uma chave no painel da sua conta.
- Troque a URL base e a chave em um só lugar, como abaixo.
- Leia
images.secure_base_urlde/3/configurationpara que os links de imagem usemimg.amodb.dev. - Remova as chamadas de métodos de escrita e dos caminhos da tabela acima.
- Trate o 429 esperando os segundos de
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);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,, então o código que ramifica por status_code não precisa ser reescrito.
| HTTP | status_code | Causa típica |
|---|---|---|
| 401 | 7 | Chave ausente ou digitada errado |
| 401 | 10 | Chave suspensa |
| 402 | 36 | Período pré-pago encerrado |
| 404 | 34 | ID não encontrado, ou um caminho que o amodb não oferece |
| 405 | 37 | Um método de escrita que o seu código ainda chama |
| 429 | 25 | Mais 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.