La première étape consiste à générer un token en utilisant l'API d'authentification suivante :
{
"email": "xxxxxxxxxxxx",
"password": "xxxxxxxxxx"
}
{
"token_type": "Bearer",
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE2NzI3NTk1NDcsImV4cCI6MTY4ODUzODM0Nywicm",
"expires_at": "2023-01-03 17:25:47",
"refresh_token": "313a3e66cfcd82f01e3f5280612453bafd31615327ad44ad97da348b0b0048f"
}
Note : Il faut récupérer la valeur access_token dans cette réponse d’api et l’ajouter au niveau d’Header Authorization dans tous les appels API suivants qui servent à gérer les vidéos Live.
Cette requête permet de créer une nouvelle instance de Live.
RAW body :
{
"title": "xxxxx",
"catalog": "xxxx",
"description": "xxxx",
"category": "news",
"tags": ["testlive","testlive2","testlive3"]
}
Note : Les champs “title”, “category” et “catalog” sont obligatoires
{
"id": "xxxxx",
"title": "xxxxxx",
"description": "xxxxxx",
"liveConfig": {
"vodAvailable": false,
"liveId": "xxxx",
"urlRtmp": "rtmp://xxxxxx",
"rtmpKey": "xxxxxx",
"programmation": {
"type": "default",
"config": null
},
"state": "stopped"
}
}
Cette étape consiste à récupérer le “liveId” d'une vidéo sur la base de l'ID vidéo Digiteka.
{
"id": "<VIDEO ID>",
"createdAt": "2023-01-03T11:26:21.000Z",
"updatedAt": "2023-01-03T11:26:21.000Z",
"title": "Test live api 03\/01",
"streams": 0,
"broadcastStart": "2023-01-03T11:26:21.000Z",
"broadcastEnd": null,
"description": "Test live",
"duration": 300,
"lang": "fr",
"externPlayLists": [],
"thumbnails": "xxxx.jpg",
"authors": [],
"externURL": "",
"catalog": {},
"thematic": {},
"uploaderEmail": "xxxx@gmail.com",
"type": "live",
"liveConfig": {
"vodAvailable": false,
"liveId": "xxxx",
"urlRtmp": "rtmp://xxxx.m3u8",
"rtmpKey": "xxxxx",
"state": "stopped"
},
"playlists": [],
"territories": []
}
Note : la valeur pour liveId se trouve dans cette réponse dans l’objet liveConfig.liveId
Cette requête permet de démarrer un Live.
RAW body :
{
"liveId": "xxxxx",
"status": "start"
}
Note : La demande de démarrage d'un live peut durer quelques secondes/minutes. Pendant ce délai, l’état du live sera “starting” et passera ensuite à “started” automatiquement.
{
"id": "<VIDEO ID>",
"createdAt": "2023-01-03T11:26:21.000Z",
"updatedAt": "2023-01-03T11:26:21.000Z",
"title": "Test live api 03\/01",
"streams": 0,
"broadcastStart": "2023-01-03T11:26:21.000Z",
"broadcastEnd": null,
"description": "Test live",
"duration": 300,
"lang": "fr",
"externPlayLists": [],
"thumbnails": "xxx.jpg",
"authors": [],
"externURL": "",
"catalog": {},
"thematic": {},
"uploaderEmail": "xxxx@gmail.com",
"type": "live",
"liveConfig": {
"vodAvailable": false,
"liveId": "xxxx",
"urlRtmp": "rtmp://xxxx.m3u8",
"rtmpKey": "xxxxx",
"state": "starting"
},
"playlists": [],
"territories": []
}
Note : Il faut utiliser la variable liveConfig.state pour voir l’état en cours en retour de cette api.
Cette requête permet de récupérer l'état d'une vidéo Live.
Réponse API OK :
{
"state": "starting"
}
Valeurs possibles:
Cette requête permet d'arrêter une vidéo Live.
RAW body :
{
"liveId": "xxxxx",
"status": "stop"
}
Réponse API OK :
{
"id": "<VIDEO ID>",
"createdAt": "2023-01-03T11:26:21.000Z",
"updatedAt": "2023-01-03T11:26:21.000Z",
"title": "Test live api 03\/01",
"streams": 0,
"broadcastStart": "2023-01-03T11:26:21.000Z",
"broadcastEnd": null,
"description": "Test live",
"duration": 300,
"lang": "fr",
"externPlayLists": [],
"thumbnails": "xxx.jpg",
"authors": [],
"externURL": "",
"catalog": {},
"thematic": {},
"uploaderEmail": "xxxx@gmail.com",
"type": "live",
"liveConfig": {
"vodAvailable": false,
"liveId": "xxxx",
"urlRtmp": "rtmp://xxxx.m3u8",
"rtmpKey": "xxxxx",
"state": "stopping"
},
"playlists": [],
"territories": []
}
Note : La demande d’arrêt d’un live peut durer quelques secondes. Pendant ce délai, l’état du live sera “stopping” et passera ensuite à “stopped” automatiquement.
Cette requête permet de demander la création d'un replay une fois le Live terminé. Le replay vient remplacer le Live et diffuse donc sur le même ID vidéo que le Live.
RAW body :
{
"videoId": "xxxxx"
}
Note : La demande de création d'un replay de live peut durer quelques secondes/minutes, mais la réponse de l'API est immédiate
{
"id": "xxxxx",
"type": "vod",
"liveConfig": {
"vodAvailable": true,
"liveId": "xxxxx",
"urlRtmp": "rtmp:xxxx",
"rtmpKey": "xxxxx",
"programmation": {
"type": "default",
"config": null
},
"state": "stopped"
}
}