Aller au contenu principal

API PlayLoop Playlists

Objectif

Créer et maintenir les playlists PlayLoop qui alimentent les devices d’affichage dynamique.

Périmètre

Liste, création, modification, suppression, ajout/retrait/réordonnancement d’items.

Acteurs/applications consommatrices

  • Interface PlayLoop admin.
  • API Laravel.
  • Devices via endpoint device playlist.

Authentification requise

Routes admin visibles : identify.app + auth:sanctum, avec X-App-Source: playloop.

Permissions/RBAC

  • Gestion réservée aux propriétaires/gestionnaires de l’acteur.
  • Un device ne reçoit que les playlists qui lui sont assignées ou applicables.

Endpoints actuels visibles si confirmés

MéthodeRouteStatut
GET/api/v1/playloop/acteurs/{id}/playlistsConfirmé.
POST/api/v1/playloop/acteurs/{id}/playlistsConfirmé.
POST/api/v1/playloop/playlists/{id}/itemsConfirmé.
PATCH/api/v1/playloop/playlists/{id}/reorderConfirmé.
PATCH/api/v1/playloop/playlists/{id}Confirmé.
DELETE/api/v1/playloop/playlists/{id}Confirmé.
DELETE/api/v1/playloop/playlists/items/{id}Confirmé.

Endpoints cibles proposés si utile

  • POST /api/v1/playloop/playlists/{id}/publish, non confirmé.
  • GET /api/v1/playloop/playlists/{id}/preview, non confirmé.

Exemple de requête

POST /api/v1/playloop/playlists/playlist-id/items
Authorization: Bearer <token>
X-App-Source: playloop
Content-Type: application/json

{
"content_type": "media",
"content_id": "media-id",
"duration_s": 10,
"ordre": 1
}

Exemple de réponse succès

{
"item": {
"id": "item-id",
"content_type": "media",
"content_id": "media-id",
"duration_s": 10,
"ordre": 1,
"content": null
}
}

Exemple d’erreur

{
"error": "playlist_scope_denied",
"message": "Vous ne pouvez pas modifier cette playlist."
}

Pagination si applicable

Applicable à la liste des playlists.

Rate limiting si applicable

Recommandé sur réordonnancement et ajout massif d’items.

Audit/logs si applicable

Recommandé pour création, suppression, publication et réordonnancement.

Sécurité

  • Vérifier que les médias appartiennent au même périmètre.
  • Ne pas exposer de contenu non validé aux devices.
  • Respecter l’autonomie PlayLoop sans dépendre obligatoirement de DMV.

État actuel vs cible

SujetÉtat actuelCible
CRUD playlistRoutes visibles.Versionnement et cache device à stabiliser.
ItemsRoutes visibles.Contrat précis d’item à définir.

Points à confirmer

  • Format exact des items.
  • Assignation playlist-device.
  • Versionnement, ETag ou horodatage de sync.
  • Preview/publication.