Lecture d'un média
GET /contents/{id}/stream
Section intitulée « GET /contents/{id}/stream »Paramètre facultatif usage : stream (défaut) ou download.
Réponse 200 :
{ "content_id": 3, "product_id": 1, "type": "audio", "duration_s": 420, "url": "https://…/media/private/audio/programme-motivation-de-soi/3.m4a?expires=…&signature=…", "expires_at": "2026-09-14T12:00:00+01:00", "usage": "stream"}| Code | Cas |
|---|---|
| 200 | extrait gratuit (avec ou sans compte) ; ou segment verrouillé avec un droit actif |
| 401 | segment verrouillé, ou téléchargement, sans jeton |
| 403 | compte désactivé, ou aucun droit actif sur le produit |
| 404 | segment ou produit non publié |
| 409 | le segment n’a pas encore de fichier associé |
Règles à respecter côté application
Section intitulée « Règles à respecter côté application »- Ne jamais stocker
urldurablement. Le lien expire ; garder l’identifiant du segment et redemander. - Renouveler sur 403 ou expiration et reprendre à la position enregistrée. C’est le filet prévu : avancer dans la piste, reprendre après une pause ou changer de réseau relance une requête au stockage, et la validité est dimensionnée pour que cela n’arrive pas en cours d’écoute.
- Le droit descend l’arbre. Un compte qui possède le parcours obtient un lien pour chaque segment de ses programmes.
- Téléchargement :
usage=downloaddonne un lien plus long (six heures par défaut) et exige toujours un compte et un droit.
PUT /me/progress/{id} — enregistrer ma position
Section intitulée « PUT /me/progress/{id} — enregistrer ma position »{ "position_s": 210, "completed": false }Envoyée périodiquement pendant l’écoute, à la pause et à la sortie. La réponse rend position_s, percent, completed et updated_at. Dernière écriture gagne, quel que soit l’appareil : c’est ce qui permet de reprendre ailleurs. completed se déduit si absent, à partir de 95 % de la durée ; une position au-delà de la durée est ramenée à la durée. Un segment verrouillé exige un droit d’accès (403 sinon) ; un extrait gratuit, seulement un compte.
GET /me/progress liste toutes mes positions ; et chaque segment d’une fiche produit porte progress (ou null) quand un jeton est envoyé — c’est ce que l’application lit pour afficher « reprendre ».
Ce qui viendra
Section intitulée « Ce qui viendra »La limitation d’appareils et l’anti-partage arrivent avec le lot L8.