Überblick
Verlage müssen aus technischen und geschäftlichen Gründen häufig die Inhaltsmerkmale ihrer Medienmanifeste ändern. Um diese Anforderungen zu erfüllen, hat Brightcove ein Framework erstellt, in dem Regeln angewendet werden können, die den Inhalt des von Dynamic Delivery zurückgegebenen Manifests ändern.
Lieferregeln bestehen aus Bedingungen und Aktionen.
- Bedingungen - „Wenn“-Bedingungen, die eine bestimmte Aktion auslösen
- Aktionen - "Dann"-Parameter, die definieren, wie das Manifest geändert wird
Weitere Informationen zu Lieferregeln finden Sie unter:
Kontoeinrichtung
Wenden Sie sich an Ihren Customer Success Manager, um die Preise zu erfahren und diese Funktion für Ihr Konto zu aktivieren.
Regeln anwenden
Das folgende Flussdiagramm zeigt, wie Versandregeln angewendet werden.
Bedingungen
Die "if"-Bedingungen, die in der ersten Phase unterstützt werden, umfassen Folgendes:
-
Explizite Anfrage - Eine Konfigurations-ID ist die ID einer Aktion, die Sie erstellt haben. Sie verwenden diese ID, um zur Laufzeit an die Playback-API zu übergeben. Diese ID wird Konfigurationswerten zugeordnet, die es den zugrunde liegenden Diensten ermöglichen, Entscheidungen zu treffen, die von der Playback-API genutzt werden, um die entsprechenden Antwortdaten zurückzugeben.
-
Gerätegruppe - Gerätetyp, wie er vom User-Agent-Parsing erkannt wurde. Zu den derzeit unterstützten Gruppen gehören:
- Android
- Apple TV
- Chromecast
- iPad
- iPhone
- Desktop-Chrom
- Desktop-Firefox
- Desktop-Safari
- tv holen
- ios-andere
- roku-7/8
- Smartphone-Generikum
- Tablet-Android
- Tablet-Kindle
- unbekannt
-
Geographie - Physischer Standort des anfordernden Geräts:
- Kontinent
- Land
Aktionen
Die in der ersten Phase unterstützten Aktionen oder "dann"-Parameter umfassen Folgendes:
-
CDN für die Medienbereitstellung - Von den CDNs, die für die Verwendung in einem bestimmten Dynamic Delivery-Konto konfiguriert sind, das CDN, das für die Bereitstellung von Mediensegmenten verwendet werden soll.
-
Wiedergabeeigenschaften - Filter basierend auf den Eigenschaften der zugrunde liegenden Medienwiedergaben. Dazu gehören:
- Minimale Video-Bitrate
- Maximale Video-Bitrate
- Mindestvideoauflösung
- Maximale Videoauflösung
- Maximale Anzahl von Audiowiedergaben
- Maximale Anzahl von Videowiedergaben
- Erste Video-Bitrate
- Diskontinuitäten
Umfang
Aktionen können auf zwei Ebenen angewendet werden:
- Konto - Aktionen, die für alle Anfragen gelten, die an ein bestimmtes Kundenkonto gestellt werden
- Spezifische Anfrage - Aktionen, die bei einer bestimmten Anfrage aufgerufen werden
Die Aktionen werden in der oben aufgeführten Reihenfolge angewendet. Spätere Aktionen überschreiben frühere.
Regeln definieren
Verwenden Sie die Delivery Rules API, um die Medienbereitstellung anzupassen.
Lieferregeln-API
Die Lieferregeln-API ermöglicht es Ihnen, Bedingungen und Aktionen zu definieren, um Ihre Medienbereitstellung zu steuern.
Die Antwort aus der Delivery Rules API enthält a conditions
Array. Mit diesem Array können Sie mehrere erstellen if
/ then
Bedingungen, in denen jeder then
verweist auf einen oder mehrere Aktions-IDs.
Obwohl es keine Methoden zum Hinzufügen oder Löschen gibt conditions
, können Sie dies tun, indem Sie das conditions
Array aktualisieren.
Basis-URL
Die Basis-URL für die API lautet:
https://delivery-rules.api.brightcove.com
Account-Pfad
In allen Fällen werden Anfragen für ein bestimmtes Video Cloud-Konto gestellt. Sie fügen also immer den Begriff Konten gefolgt von Ihrer Konto-ID zur Basis-URL hinzu:
https://delivery-rules.api.brightcove.com/accounts/{accountID}
Autorisierung
Ein Zugriffstoken für Anfragen ist erforderlich und muss im Autorisierungsheader vorhanden sein።
Authorization: Bearer {access_token}
Das Zugriffstoken ist ein temporäres OAuth2-Zugriffstoken, das vom Brightcove OAuth-Dienst abgerufen werden muss. Ausführliche Informationen zum Abrufen von Client-Anmeldeinformationen und deren Verwendung zum Abrufen von Zugriffstoken finden Sie im Übersicht über Brightcove OAuth.
Berechtigungen
Anfragen an die Playback Rights API müssen gestellt werden von Kundenanmeldeinformationen mit folgenden Berechtigungen:
-
video-cloud/delivery-rules/read
-
video-cloud/delivery-rules/all
Regeln verwalten
Die Delivery Rules API unterstützt die folgenden Anfragen. API-Details finden Sie im API-Referenz für Lieferregeln.
Lieferregeln abrufen
Verwenden Sie die folgende GET-Anfrage, um die neueste Version der Übermittlungsregeln für ein Konto abzurufen.
GET /accounts/{accountID}
API-Antwort
Hier ist der Antworttext. Beachten Sie, dass Lieferregeln eine Reihe von Bedingungen und eine Reihe von Aktionen enthalten.
{
"conditions": [
{
"name": "MyCondition1",
"if": {
"device_group": [
"ipad"
],
"request_country": [
"string"
],
"request_continent": [
"AF"
]
},
"then": [
"{action_id}"
]
}
],
"actions": [
{
"id": "44c91a1d-71f1-40b4-b9cf-3abcd12345",
"properties": {
"min_video_bitrate": 0,
"max_video_bitrate": 0,
"first_video_bitrate": 0,
"min_video_resolution": "string",
"max_video_resolution": "string",
"max_video_renditions": 0,
"max_audio_renditions": 0,
"preferred_cdn_provider": "string",
"preferred_cdn_domain": "string",
"video_codecs": [
"string"
],
"audio_codecs": [
"string"
]
}
}
]
}
Bedingungen abrufen
Verwenden Sie die folgende GET-Anfrage, um die Bedingungen für ein Konto abzurufen.
GET /accounts/{accountID}/conditions
API-Antwort
Hier ist der Antworttext.
[
{
"name": "MyCondition1",
"if": {
"device_group": [
"ipad"
],
"request_country": [
"string"
],
"request_continent": [
"AF"
]
},
"then": [
"44c91a1d-71f1-40b4-b9cf-3abcd12345"
]
}
]
Bedingungen aktualisieren
Verwenden Sie die folgende PUT-Anfrage, um die Bedingungen für ein Konto zu aktualisieren.
PUT /accounts/{accountID}/conditions
Content-Type: application/json
Authorization: Bearer {access_token}
Body: {conditions object}
Anforderungsstelle für Bedingungen
Hier ist der Anforderungstext für Bedingungen. Beachten Sie, dass dies ein Array von Bedingungsobjekten ist.
[
{
"name": "MyCondition1",
"if": {
"device_group": [
"ipad"
],
"request_country": [
"string"
],
"request_continent": [
"AF"
]
},
"then": [
"44c91a1d-71f1-40b4-b9cf-3abcd12345"
]
}
]
Hier sind die Felddetails für Bedingungen:
Feld | Typ | Beschreibung |
---|---|---|
name |
Zeichenfolge | Eindeutiger Bezeichner für die Bedingung |
device_group |
Zeichenfolge | Array von Gerätetypen, wie sie vom User-Agent-Parsing erkannt wurden |
request_country |
Zeichenfolge | Array von zweibuchstabigen Ländercodes |
request_continent |
Zeichenfolge | Array von Kontinentcodes mit zwei Buchstaben |
then |
Zeichenfolge | Eindeutige Kennung für die zugehörige Aktion |
Erstellen Sie eine Aktion
Verwenden Sie die folgende POST-Anfrage, um Aktionen für ein Konto zu erstellen.
POST /accounts/{accountID}/actions
Content-Type: application/json
Authorization: Bearer {access_token}
Body: {actions object}
Anfragetext für Aktionen
Hier ist der Anforderungstext für Aktionen.
{
"properties": {
"min_video_bitrate": 0,
"max_video_bitrate": 0,
"first_video_bitrate": 0,
"min_video_resolution": "string",
"max_video_resolution": "string",
"max_video_renditions": 0,
"max_audio_renditions": 0,
"preferred_cdn_provider": "string",
"preferred_cdn_domain": "string",
"video_codecs": [
"string"
],
"audio_codecs": [
"string"
]
}
}
Hier sind die Felddetails für Aktionen:
Feld | Typ | Beschreibung |
---|---|---|
properties |
Objekt | Ein Objekt mit definierten Eigenschaften für eine bestimmte Aktion |
min_video_bitrate , max_video_bitrate |
Ganze Zahl | Legen Sie die minimal oder maximal zulässige Video-Bitrate (kbps) fest. |
first_video_bitrate |
Ganze Zahl | Stellen Sie die Bitrate für das erste Video ein (kbps) |
min_video_resolution , max_video_resolution |
Zeichenfolge | Legen Sie die minimal oder maximal zulässige Videoauflösung (BxH) fest. |
max_video_renditions |
Ganze Zahl | Legen Sie die maximale Anzahl von Videowiedergaben fest |
max_audio_renditions |
Ganze Zahl | Legen Sie die maximale Anzahl von Audiowiedergaben fest |
preferred_cdn_provider |
Zeichenfolge | Legen Sie den bevorzugten CDN-Anbieter fest |
preferred_cdn_domain |
Zeichenfolge | Legen Sie die bevorzugte CDN-Domain fest |
video_codecs |
Zeichenfolge | Array von Video-Codecs |
audio_codecs |
Zeichenfolge | Array von Audio-Codecs |
API-Antwort für Aktionen
Hier ist ein Beispiel für einen Antwortkörper für Aktionen.
{
"id": "44c91a1d-71f1-40b4-b9cf-3abcd12345",
"properties": {
"min_video_bitrate": 0,
"max_video_bitrate": 0,
"first_video_bitrate": 0,
"min_video_resolution": "string",
"max_video_resolution": "string",
"max_video_renditions": 0,
"max_audio_renditions": 0,
"preferred_cdn_provider": "string",
"preferred_cdn_domain": "string",
"video_codecs": [
"string"
],
"audio_codecs": [
"string"
]
}
}
Zusätzlich zu den Aktionsfeldern in der Anfrage enthält die API-Antwort das folgende generierte Feld:
Feld | Typ | Beschreibung |
---|---|---|
id |
Zeichenfolge | Ein vom System generierter eindeutiger Bezeichner für die Aktion. Dies ist das actionID in den Update- und Löschmethoden verwendet. |
Aktionen abrufen
Verwenden Sie die folgende GET-Anfrage, um die Aktionen für ein Konto abzurufen.
GET /accounts/{accountID}/actions
API-Antwort
Siehe die API-Antwort für Aktionen.
Holen Sie sich eine Aktion
Verwenden Sie die folgende GET-Anfrage, um eine bestimmte Aktion für ein Konto abzurufen.
GET /accounts/{accountID}/actions/{actionID}
API-Antwort
Siehe die API-Antwort für Aktionen.
Aktualisieren einer Aktion
Verwenden Sie die folgende PUT-Anfrage, um eine Aktion für ein Konto zu aktualisieren.
PUT /accounts/{accountID}/actions/{actionID}
Content-Type: application/json
Authorization: Bearer {access_token}
Body: {actions object}
API-Anfrage
Hier ist ein Beispiel für den Anforderungstext zum Aktualisieren von Aktionen.
{
"id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
"properties": {
"custom_properties": {
"generate_thumbnails": false,
"hls_iframes": true
}
}
}
API-Antwort
Hier ist eine Beispielantwort für aktualisierte Aktionen.
{
"id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
"properties": {
"custom_properties": {
"generate_thumbnails": false,
"hls_iframes": true
}
}
}
Eine Aktion löschen
Verwenden Sie die folgende DELETE-Anfrage, um eine Aktion für ein Konto zu entfernen.
DELETE /accounts/{accountID}/actions/{actionID}
Einschränkungen
Es gibt einige bekannte Einschränkungen bei der Verwendung von Lieferregeln:
- Medieninhalte — Die Lieferregeln funktionieren nicht mit Smooth- oder PMP4-Videos.
- Medieninhalt - Lieferregeln funktionieren nicht mit Live-Videos.
- Nur Audio - Lieferregeln mit aktivierten Server-Side Ads (SSAI) erfordern sowohl Video- als auch Audioinhalte. Dies ist eine SSAI-Einschränkung.