Planification de la génération de clips pour une diffusion en direct

Avec le point de terminaison Clip, vous pouvez planifier l'événement de clip d'un travail en direct existant. À l'heure spécifiée, notre système effectuera les appels d'API nécessaires pour démarrer une tâche de clip en votre nom.

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é API

Corps 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
		}
	}