Exigences
- La clé API Live pour votre compte.
- Le remplacement du planificateur doit être activé sur votre compte réel.
Créer un workflow de planificateur de clips
Lors de la création d'un clip, vous devez spécifier à la fois la limite de temps du clip (dans le output
champ) et une heure programmée (time_utc
champ) pour effectuer la demande de clip.
Le output
champ du corps de la demande prend en charge tous les mêmes champs que le outputs
champ du point de terminaison VOD standard. Toutefois, les plans planifiés ne prennent en charge qu'une seule sortie plutôt qu'une liste. Voir Documents de prise en charge des clips VOD pour plus de détails sur les champs disponibles.
En règle générale, vous définiriez time_utc
pour correspondre à la limite de fin de votre clip. L'heure prévue DOIT être après la limite de fin du clip, sinon la demande de clip échouera à l'heure programmée.
Horodatages pour le time_utc
Le champ doit être au format UTC au format horodatage Unix en secondes. Vous pouvez utiliser https://www.unixtimestamp.com/ pour reconversion.
Disons que nous voulons programmer un clip de 15 minutes qui commencera à 2021-02-09T13:55:00+00:00
. Nous pouvons utiliser le output.start_time
et output.end_time
pour spécifier la limite de notre clip comme heure unix en secondes. (Encore une fois, voir Documents de prise en charge des clips VOD pour plus de détails sur les champs disponibles).
start_time:
2021-02-09T13:55:00+00:00 = 1612878900
end_time:
2021-02-09T14:10:00+00:00 = 1612879800
Étant donné que le planificateur aura également besoin d'un temps pour planifier la demande de clip, nous pouvons utiliser la même valeur que end_time
car c'est aussi le temps Unix en secondes.
Nous voulons également créer une vidéo Videocloud pour le clip, nous l'incluons donc dans le output
. Une vidéo Videocloud sera créée au moment de la planification du flux de travail et son ID sera renvoyé dans la réponse afin que vous puissiez connaître l'ID de la vidéo avant la création du clip. Si vous annulez plus tard la demande de clip ou si elle échoue à l'heure prévue, la vidéo Videocloud ne sera PAS supprimée de votre compte.
Requête
Pour créer le flux de travail, faites la POST
demande suivante :
https://api.bcovlive.io/v1/scheduler/clip
Headers
Content-Type: application/json
X-API-KEY: your API Key
Corps de la demande
{
"job_id": "your Job ID",
"description": "My Scheduled Clip",
"clip": {
"output": {
"label": "My Scheduled Clip",
"start_time": 1612878900,
"end_time": 1612879800,
"videocloud": {
"video": {
"name": "My Scheduled Clip"
}
}
},
"time_utc": 1612879800
}
}
Exemple de réponse
{
"account_id": "your Account ID",
"description": "My Tuesday Clip",
"type": "clip",
"job_id": "your Job ID",
"clip": {
"state": "pending",
"output": {
"label": "My Scheduled Clip",
"start_time": 1612878900,
"end_time": 1612879800,
"videocloud": {
"video": {
"id": "70702010152202",
"name": "My Scheduled Clip"
}
}
},
"time_utc": 1612879800
}
"workflow_id": "d44cf29f4f184757ac0995beb8a0097e",
}
Noter que clip.output.videocloud.video.id
contient l'ID de la vidéo Videocloud nouvellement créée. À time_utc
la source vidéo sera mise à jour avec le clip ingéré.
Mettre à jour un workflow de planificateur de clips
Vous pouvez mettre à jour à la fois le output
et time_utc
de votre clip. Ils ne peuvent être mis à jour que si le travail est en attente : "state": "pending"
.
Suivant l'exemple précédent, nous voulons que le clip soit 5 minutes plus court que prévu. Lorsque vous mettez à jour le output
champ, vous devez fournir l'objet complet, et pas uniquement les modifications apportées. Cela inclut l'ID vidéo Videocloud renvoyé par l'appel de création ci-dessus.
Notez que dans cet exemple, nous avons mis à jour les deux end_time
et time_utc
pour refléter la réduction de 5 minutes.
Requête
Pour mettre à jour le flux de travail, faites la PUT
demande suivante :
https://api.bcovlive.io/v1/scheduler/clip/{workflow_id}
Headers
Content-Type: application/json
X-API-KEY: your API Key
Corps de la demande
{
"clip": {
"output": {
"label": "My Scheduled Clip",
"start_time": 1612878900,
"end_time": 1612879500,
"videocloud": {
"video": {
"id": "70702010152202",
"name": "My Scheduled Clip"
}
}
},
"time_utc": 1612879500
}
}
Exemple de réponse
{
"account_id": "your Account ID",
"description": "My Tuesday Clip",
"type": "clip",
"job_id": "your Job ID",
"clip": {
"state": "pending",
"output": {
"label": "My Scheduled Clip",
"start_time": 1612878900,
"end_time": 1612879500,
"videocloud": {
"video": {
"id": "70702010152202",
"name": "My Scheduled Clip"
}
}
},
"time_utc": 1612879500
}
"workflow_id": "d44cf29f4f184757ac0995beb8a0097e",
}
Annuler un workflow du planificateur de clips
Vous pouvez annuler le clip avec un DELETE
demander.
Notez que lors de l'annulation d'un flux de travail de clip, toute vidéo Videocloud créée au moment de la programmation sera NE PAS être supprimé par le backend. Vous devez supprimer manuellement les vidéos orphelines de votre compte Videocloud.
Requête
Pour mettre à jour le flux de travail, faites la DELETE
demande suivante :
https://api.bcovlive.io/v1/scheduler/clip/{workflow_id}
Headers
X-API-KEY : votre clé APICorps de la demande
Il n'y a pas de corps de requête pour cette requête.
Exemple de réponse
{
"account_id": "your Account ID",
"description": "My Tuesday Clip",
"type": "clip",
"job_id": "your Job ID",
"clip": {
"state": "cancelled",
"output": {
"label": "My Scheduled Clip",
"start_time": 1612878900,
"end_time": 1612879500,
"videocloud": {
"video": {
"id": "70702010152202",
"name": "My Scheduled Clip"
}
}
},
"time_utc": 1612879500
}
"workflow_id": "d44cf29f4f184757ac0995beb8a0097e",
}
Notifications
Vous pouvez éventuellement configurer des notifications lors de la création du workflow. Vous devez fournir une URL pour que notre service POST
à. Nous enverrons une notification lorsque le planificateur passera l'appel du clip. Vous pouvez également configurer pour recevoir une notification n
secondes avant le clip. Voir le Notifications du programmateur en direct pour plus de détails.
Exemple de corps de requête
{
"job_id": "your Job ID",
"description": "My Scheduled Clip",
"notification_url": "https://example.com/live/clip/callbacks",
"clip": {
"output": {
"label": "My Scheduled Clip",
"start_time": 1612878900,
"end_time": 1612879800,
"videocloud": {
"video": {
"name": "My Scheduled Clip"
}
}
},
"time_utc": 1612879800,
"notification": 600
}
}