Trabalhos diferentes, ferramentas diferentes
O Trakt gira em torno de dados de usuário: histórico, watchlists, avaliações, calendários e login por OAuth. Ele também tem endpoints públicos de metadados, e a documentação dele informa os limites que valem. O amodb tem uma única função: metadados de filmes, TV e pessoas, retornados como JSON no formato TMDB v3. Escolha o Trakt para o que os seus usuários fizeram. Escolha o amodb para o que um título é. A maioria dos apps que precisam dos dois chama cada serviço para a sua metade.
Dados de usuário e dados de títulos
| Função | Trakt | amodb |
|---|---|---|
| Histórico de exibição | Recurso central | Não oferecido, guarde você mesmo |
| Watchlists e listas | Recurso central | Não oferecido, escritas retornam 405 |
| Avaliações de usuários | Recurso central | Não oferecido, escritas retornam 405 |
| Calendários | Por usuário, consulte a documentação deles | next_episode_to_air por série e listas de programação |
| Login | OAuth | Só a chave, sem login de usuário |
| Metadados de títulos | Endpoints públicos, consulte a documentação deles sobre limites | Endpoints de detalhes em 14 idiomas |
| Elenco e equipe técnica | Consulte a documentação deles | /credits para um título, combined_credits para uma pessoa |
| Imagens | Consulte a documentação deles | img.amodb.dev, sem chave |
| Trailers | Consulte a documentação deles | /videos com type e official |
| Alterado desde uma data | Consulte a documentação deles | Não oferecido, não há feeds de alterações |
Para programações, GET /3/tv/airing_today e GET /3/tv/on_the_air listam séries por data de exibição, e cada registro de série traz o seu próprio next_episode_to_air. Para uma série que já terminou, esse campo é null. As duas listas são descritas em em alta e listas. O calendário de um usuário é algo que você monta a partir dos seus próprios registros de exibição.
Comparação de recursos
| Recurso | Trakt | amodb |
|---|---|---|
| Modelo de preço | Consulte a documentação deles | Períodos pré-pagos de 1 a 24 meses |
| Plano gratuito | Consulte a documentação deles | Nenhum, e sem período de teste |
| Autenticação | OAuth para dados de usuário, consulte a documentação deles sobre chamadas públicas | api_key ou cabeçalho Bearer |
| Formato da resposta | JSON, consulte a documentação deles | 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 | Consulte a documentação deles | Sim |
| Imagens | Consulte a documentação deles | img.amodb.dev, mesmos tokens de tamanho do TMDB |
| Avaliações | Avaliações de usuários, consulte a documentação deles | Notas do IMDb, Kinopoisk, Metacritic, Rotten Tomatoes e TMDB, quando conhecidas |
| Limite de requisições | Consulte a documentação deles sobre os limites | 20, 40 ou 120 por minuto por chave |
| Uso comercial | Consulte a documentação deles | Planos pagos, veja preços |
| Compatibilidade | API própria | Leituras do TMDB v3 e OMDb |
Onde o amodb se diferencia
- Sem tela de login para os seus usuários. Uma chave no servidor basta. Ninguém conecta uma conta, então não há token para renovar nem tela de consentimento para explicar.
- Variedade de campos. Duração, gêneros, produtoras, classificações indicativas, traduções e palavras-chave vêm todos dos endpoints de detalhes, no idioma que você pedir.
- Limites publicados. O limite do plano é um número por minuto, e cada resposta mostra o que resta. Você pode dimensionar uma sincronização em segundo plano com esses números.
- Medidores de mood e trilhas sonoras. As extensões em moods (clima emocional) e trilhas sonoras acrescentam dados que não fazem parte do TMDB v3.
Onde o Trakt é mais indicado
- Qualquer coisa pessoal. Scrobbling, sincronização de histórico, listas sociais e calendários por usuário são recursos do Trakt. O amodb não tem contas nem métodos de escrita.
- Estado entre dispositivos. Se um usuário espera as mesmas marcas de assistido no celular e na TV, o estado precisa viver em um serviço de usuários, e o amodb não é um.
- Apps OAuth existentes. Se o seu app já guarda tokens do Trakt, você os mantém. Acrescente o amodb só para os dados de títulos que hoje busca em outro lugar.
Migrar para o amodb: relacione seus registros
Você não migra dados de usuário, porque o amodb não guarda nenhum. Você troca as chamadas de metadados. Os itens do Trakt trazem IDs de outros bancos (consulte a documentação deles para os campos exatos), então guarde o ID do TMDB ou o do IMDb ao lado de cada registro de exibição e use-o aqui.
<?php
declare(strict_types=1);
function amodb(string $path): array
{
$ch = curl_init('https://api.amodb.dev/3' . $path);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AMODB_KEY')],
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status !== 200) {
throw new RuntimeException("amodb returned $status");
}
return json_decode($body, true);
}
$show = amodb('/tv/1396?language=en-US');
$next = $show['next_episode_to_air'] ?? null;
echo $show['name'], ' ', $show['status'], PHP_EOL;
echo $next ? 'Next: ' . $next['air_date'] : 'No episode scheduled', PHP_EOL;Quando você tem apenas um ID do IMDb, chame / uma vez e guarde o ID de tv_results. Um 429 inclui Retry-After, como descrito em limites de requisições.
Dimensionar um job de atualização
A biblioteca de um usuário com 200 séries precisa de 200 requisições de detalhes para atualizar uma vez. A 20 requisições por minuto isso leva 10 minutos, a 40 leva 5 e a 120 leva menos de 2. A verificação da chave roda antes do cache de borda, então chamadas repetidas também contam. O amodb não tem feeds de alterações, então não consegue dizer quais IDs mudaram desde uma data. Leia status e next_episode_to_air na resposta de detalhes. Atualize com frequência as séries que ainda estão no ar e raramente as encerradas. Os detalhes ficam em cache por 6 horas, então atualizar com mais frequência devolve os mesmos dados.
Preços
O amodb é pré-pago e não renova sozinho. Escolha 1, 3, 6, 12 ou 24 meses, que dão 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 retorna todos os dados e não há plano gratuito. Os valores estão em preços.