Saltar al contenido

Grava onde a pessoa parou e a sessão de escuta

PUT/api/media-episodes/{id}/progress

Auth
Requiere token
Quién puede:
owner
admin
Clave de API:
podcasts:write
X-CommunityId
X-CommunityId Envía el X-CommunityId de la comunidad en la que ocurre la operación.
Las descripciones de los endpoints vienen de la especificación de la API y, por ahora, están en portugués. La interfaz alrededor está traducida.

Retomada em qualquer aparelho: uma posição a menos de ~10 s da anterior é ignorada (`ignored: throttled`), menos no fim; nos últimos 5% a posição zera e o próximo play recomeça do início. Chegar a 90% ouvindo conclui o episódio (pontos uma vez): o quanto se ouviu avança no máximo no ritmo do relógio (até 2x e uma folga), então pular para o fim move a retomada, não conclui. Com `sessionId` (um id do player por play) e `listenedSeconds` (segundos do episódio ouvidos nessa sessão): o servidor aceita no máximo 2x o tempo que passou desde o primeiro play da pessoa neste episódio (todas as sessões juntas, com uma folga só) e nunca mais que a duração; concluir exige ouvir 90% da duração. O play conta com 30 s ouvidos e 30 s de sessão, no máximo um por pessoa e episódio a cada 30 min. `durationSeconds` vale só para o próprio progresso; preenche o episódio sem duração apenas quando quem envia é owner, admin ou apresentador.

Parámetros

NombreDóndeTipoDescripción
idobligatoriopathstring (uuid)

Headers

NombreTipoDescripción
X-CommunityIdopcionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Cuerpo de la solicitud application/json

NombreTipoDescripción
positionSecondsobligatoriointeger≥ 0
durationSecondsopcionalinteger≥ 1
sessionIdopcionalstring
listenedSecondsopcionalinteger≥ 0

Respuestas

CódigoDescripción
200O progresso: `resumeAt`, `maxPositionSeconds`, `completed`, `saved`, `ignored` e `play` (`listenedSeconds`, `counted`).
400Requisição inválida — falha de validação.
401Token ausente, inválido ou expirado; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`).
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.

Ejemplo con curl

curl -X PUT "https://api.memberfy.net/api/media-episodes/<id>/progress" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"positionSeconds":0}'