API para desenvolvedores
Grátis, para qualquer pessoa: leia e grave o que você assiste a partir de players (Kodi, Jellyfin, Plex), apps e scripts. Autenticação por token Bearer; apps de terceiros usam OAuth 2.0 com PKCE.
Como usar
Base: https://www.apertaplay.com/api/v1 · Limite: 120 requisições por minuto por token e 300 por conta · Respostas em JSON.
# Quem é você
curl -H "Authorization: Bearer ap_..." https://www.apertaplay.com/api/v1/eu
# Marcar como assistido (escopo escrita)
curl -X POST -H "Authorization: Bearer ap_..." -H "Content-Type: application/json" \
-d '{"tipo":"movie","tmdb_id":550}' https://www.apertaplay.com/api/v1/historico
# Episódio
-d '{"tipo":"tv","tmdb_id":1396,"temporada":1,"episodio":2}'
# Scrobble de player: iniciar | pausar | parar (parar com 80%+ grava)
curl -X POST ... -d '{"acao":"parar","tipo":"movie","tmdb_id":550,"progresso":92}' https://www.apertaplay.com/api/v1/scrobble
# Sem o tmdb_id: id do IMDb (do filme ou do episódio), do TVDB (do episódio) ou o nome
-d '{"acao":"iniciar","tipo":"movie","imdb_id":"tt0137523"}'
-d '{"acao":"parar","tipo":"tv","serie":"Breaking Bad","temporada":1,"episodio":2,"progresso":100}'GET /eu·GET /busca?q=nome(acha o tmdb_id)GET|POST /historico·GET|POST|DELETE /watchlist·GET|POST /notasGET /continuar— próximo episódio de cada série em andamentoPOST /scrobble— para players- Especificação OpenAPI 3.1 (para Swagger UI, Postman e geradores de cliente):
/api/v1/openapi.json
Seus tokens
Seus apps (OAuth 2.0)
Para apps usados por outras pessoas. Fluxo: código de autorização + PKCE (S256) obrigatório. Envie a pessoa para https://www.apertaplay.com/oauth/autorizar?response_type=code&client_id=…&redirect_uri=…&scope=leitura%20escrita&state=…&code_challenge=…&code_challenge_method=S256 e troque o código em POST https://www.apertaplay.com/api/oauth/token.
Plex
Registra sozinho o que você assiste no Plex (precisa de Plex Pass). Gere o link e cole em Plex → Configurações → Webhooks → Adicionar webhook.
Jellyfin
No Jellyfin, instale o plugin Webhook (Painel → Plugins → Catálogo). Adicione um destino Generic com o link gerado, marque os eventos Playback Start, Playback Progress e Playback Stop, os tipos Movies e Episodes, e use este modelo:
{
"NotificationType": "{{NotificationType}}",
"NotificationUsername": "{{NotificationUsername}}",
"ItemType": "{{ItemType}}",
"Name": "{{Name}}",
"SeriesName": "{{SeriesName}}",
"Year": "{{Year}}",
"SeasonNumber": "{{SeasonNumber}}",
"EpisodeNumber": "{{EpisodeNumber}}",
"Provider_tmdb": "{{Provider_tmdb}}",
"Provider_imdb": "{{Provider_imdb}}",
"Provider_tvdb": "{{Provider_tvdb}}",
"PlaybackPositionTicks": "{{PlaybackPositionTicks}}",
"RunTimeTicks": "{{RunTimeTicks}}",
"PlayedToCompletion": "{{PlayedToCompletion}}",
"IsPaused": "{{IsPaused}}"
}Emby
No Emby (precisa de Emby Premiere): Configurações → Webhooks → Adicionar webhook. Cole o link gerado e marque os eventos de reprodução (início, pausa, parada) e "Marcado como assistido".
Kodi
O addon Aperta Play (pasta integracoes/kodi do projeto) registra sozinho o que você assiste no Kodi. Instale pelo arquivo .zip (Configurações → Addons → Instalar via arquivo .zip), abra as configurações do addon e cole um token criado acima com "Pode gravar". Ele usa os ids do IMDb, TVDB ou TMDB que o Kodi já conhece; sem eles, o nome do filme ou da série.