In diesem Dokument
- Einführung
- OpenAPI-Spezifikation
- Beglaubigung
- Basis-URLs
- Syndication-Ressource
- Aktionen
- Universelle Vorlagensprache
Zugehörige Dokumente
- Suchsyntax für Syndication
- Beispielvorlagen für Universal Syndication
- API-Referenz zur Syndication-Konfiguration
- Syndication Feed API-Referenz
Einführung
Die Brightcove Syndication Configuration API ist eine öffentlich zugängliche API, mit der Syndizierungen erstellt, verwaltet und zum Generieren dynamischer Feeds (z. B. MRSS-Feeds) aus a verwendet werden können Video Cloud Videokatalog des Kontos.
Es ist auch eine zugeordnet Syndication Feed API Dies kann verwendet werden, um einen Feed abzurufen, der einer Syndizierung zugeordnet ist.
Verfügbarkeits
Die Syndication-APIs stehen allen zur Verfügung Video Cloud Kunden, die Zugriff auf die Plattform-APIs haben.
API-Referenz / Basis-URL / Header
Der Konfigurations-API-Referenz enthält alle Details zu den verfügbaren Operationen, Feldern und Parametern.
Die Basis-URL lautet:
https://social.api.brightcove.com/v1
Alle Anforderungen müssen über einen Autorisierungsheader authentifiziert werden:
Authorization: Bearer {your_access_token}
Informationen zu Zugriffstoken finden Sie im nächsten Abschnitt zur Authentifizierung.
Für jede Anfrage, die einen Anfragetext sendet, müssen Sie auch a einschließen Content-Type: application/json
Header.
Beglaubigung
Für den Zugriff auf die Konfigurations-API muss a angegeben werden bearer
Token von der Brightcove OAuth-Dienst in der Anfrage Authorization
Header. Für die verschiedenen API-Methoden muss außerdem eine der folgenden Operationen (abhängig von der Methode, auf die zugegriffen wird) für die betreffenden Anmeldeinformationen angegeben werden:
video-cloud/social/mrss/read
video-cloud/social/mrss/write
Diese Vorgänge können über das konfiguriert werden API-Authentifizierungsabschnitt des Studio-Verwaltungsmoduls:

Wenn Sie möchten, können Sie auch Anmeldeinformationen über das erstellen OAuth API:
Syndication-Ressource
Die Syndizierungsressource ist ein Objekt, das definiert, wie die Syndizierung erstellt wird. Hier ist ein Beispiel für einen Anforderungshauptteil zum Erstellen einer Syndizierungsressource:
{
"name": "80s music videos syndication",
"type": "advanced",
"include_all_content": false,
"include_filter": "tags:mytag",
"title": "80s Music Videos",
"description": "Amateur Tokyo drift!",
"destination_url": "http://mywebsite.com",
"keywords": "80s, rock",
"author": "Rick Astley",
"category": "Music",
"album_art_url": "http://my_album_art.jpg",
"explicit": "no",
"owner_name": "http://my_album_art.jpg",
"owner_email": "rick@astley.com",
"language": "en-us",
"fetch_sources": true,
"fetch_digital_master": false,
"fetch_dynamic_renditions": true,
"sort": "-created_at",
"content_type_header": "application/xml"
}
In der Antwort werden einige schreibgeschützte Felder hinzugefügt:
{
"id": "7f594cd3-4853-4174-aff3-203c3e99e9c2",
"name": "80s music videos syndication",
"type": "advanced",
"include_all_content": false,
"include_filter": "tags:mytag",
"title": "80s Music Videos",
"description": "Amateur Tokyo drift!",
"syndication_url": "https://social.feeds.brightcove.com/v1/accounts/9999999999999/mrss/accounts/{account_id}/mrss/syndications/7f594cd3-4853-4174-aff3-203c3e99e9c2/feed",
"destination_url": "http://mywebsite.com",
"keywords": "80s, rock",
"author": "Rick Astley",
"category": "Music",
"album_art_url": "http://my_album_art.jpg",
"explicit": "no",
"owner_name": "http://my_album_art.jpg",
"owner_email": "rick@astley.com",
"language": "en-us",
"fetch_sources": true,
"fetch_digital_master": false,
"fetch_dynamic_renditions": true,
"sort": "-created_at",
"content_type_header": "application/xml"
}
Feld | Typ | Schreibgeschützt | Beschreibung |
---|---|---|---|
id |
Schnur | Ja | Wird generiert, wenn die Syndizierung erstellt wird |
name |
Schnur | Nein | Ein interner Name für diese Syndizierung - erforderlich für POST-Anfragen |
content_type_header |
Schnur | Nein | Wenn festgelegt, wird der vom Feed-Server für den Feed dieser Syndication zurückgegebene Content-Type-Header überschrieben. Andernfalls wird standardmäßig ein syndikationstypspezifischer Headerwert verwendet |
include_all_content |
Boolean | Nein | Wenn dies der Fall ist, sind alle Katalogvideos in dieser Syndizierung enthalten |
include_filter |
Schnur | Nein | Muss angegeben werden, wenn include_all_content false ist. Wert ist a CMS API Suchzeichenfolge mit der CMS API Videosuchsyntax v2. Es gelten alle Syntaxregeln - der einzige Unterschied besteht darin, dass die Suchzeichenfolge als eingegeben wird include_filter Wert eher als ein ?query= param.
|
type |
Schnur | Nein | Die Art des Feeds, der generiert wird. Mit dem universellen Typ können benutzerdefinierte Feeds von einer hochgeladenen Feed-Vorlage generiert werden. Gültige Werte: advanced , google , iphone , ipad , mp4 , itunes , roku , source , universal . Erforderlich für POST-Anfragen |
title |
Schnur | Nein | Der Titel dieses Feeds. Dies ist in der enthalten Tag für zutreffende Feed-Typen |
description |
Schnur | Nein | Die Beschreibung dieses Feeds. Dies ist in der enthalten Tag für zutreffende Feed-Typen |
syndication_url |
Schnur | Ja | Die URL des MRSS-Feeds dieser Syndikation |
destination_url |
Schnur | Nein | Die URL, die in die URL aufgenommen werden soll Tag für zutreffende Feed-Typen |
keywords |
Schnur | Nein | durch Kommas getrennte Liste, die nur für iTunes und (möglicherweise) universelle Feeds verwendet wird |
author |
Schnur | Nein | Wird nur für iTunes und (möglicherweise) universelle Feeds verwendet |
owner_name |
Schnur | Nein | Wird nur für iTunes und (möglicherweise) universelle Feeds verwendet |
language |
Schnur | Nein | Wird nur für iTunes und (möglicherweise) universelle Feeds verwendet - aus zwei Buchstaben bestehender Sprachcode in Kleinbuchstaben, z "en" |
owner_email |
Schnur | Nein | Wird nur für iTunes und (möglicherweise) universelle Feeds verwendet |
category |
Schnur | Nein | Wird nur für iTunes und (möglicherweise) universelle Feeds verwendet. Um eine Kategorie mit einer Unterkategorie anzugeben, trennen Sie diese durch einen Doppelpunkt (:) - zum Beispiel: "Business:Business News". "category": "Music" |
album_art_url |
Schnur | Nein | URL für Bild, nur für iTunes und (möglicherweise) universelle Feeds verwendet |
fetch_sources |
Boolean | Nein | Bei universellen Vorlagen, ob Videoquellen-Metadaten abgerufen werden sollen - Wenn die Vorlage diese Metadaten nicht benötigt, kann die Leistung durch Angabe verbessert werden false ;; könnte leer sein, wenn keine verwendbare Quelle vorhanden ist |
fetch_digital_master |
Boolean | Nein | Bei universellen Vorlagen kann beim Abrufen digitaler Video-Master-Metadaten angegeben werden. Wenn die Vorlage diese Metadaten nicht benötigt, kann die Leistung durch Angabe verbessert werden false ;; könnte leer sein, wenn kein digitaler Master vorhanden ist |
fetch_dynamic_renditions |
Boolean | Nein | Bei universellen Vorlagen, ob Metadaten für die dynamische Videowiedergabe abgerufen werden sollen - Wenn die Vorlage diese Metadaten nicht benötigt, kann die Leistung durch Angabe verbessert werden false |
sort |
Schnur | Nein | Ein CMS-Videosortierspezifizierer, der die gewünschte Rückgabereihenfolge für die Feed-Ergebnisse angibt. CMS-unterstützte Werte wie name , reference_id , created_at , published_at , updated_at , schedule.starts_at , schedule.ends_at , state , plays_total , und plays_trailing_week kann angegeben werden. Um in absteigender Reihenfolge zu sortieren, müssen Sie dem Wert ein Minuszeichen (-) voranstellen, d. H. -created_at Der Feed wird nach dem neuesten sortiert updated_at Datum standardmäßig. |
[VORLÄUFIGE VOLLAUTOMATISCHE TEXTÜBERSETZUNG - muss noch überarbeitet werden. Wir bitten um Ihr Verständnis.]
Für eine detailliertere Anleitung gehen Sie bitte auf: CMS API Videosuchsyntax v2 für Details über die include_filter
Eigenschaft .. Es gelten alle Regeln für die Suchsyntax. Der einzige Unterschied besteht darin, dass die Suchzeichenfolge als eingegeben wird include_filter
Wert eher als ein ?query=
param.
Operations
Ausführliche Informationen zu den verfügbaren Vorgängen finden Sie in der API-Referenz:
Die folgenden Aktionen werden unterstützt:
- Erstellen Sie eine Syndizierung
- Aktualisieren Sie eine Syndizierung
- Löschen Sie eine Syndizierung
- Holen Sie sich alle Syndizierungen für ein Konto
- Holen Sie sich eine bestimmte Syndication
- Legen Sie die Vorlage für eine universelle Syndizierung fest
- Holen Sie sich die Vorlage für eine universelle Syndizierung
- Holen Sie sich den Feed, der einer Syndizierung zugeordnet ist
Fehlermeldungen
Wenn API-Anforderungen fehlschlagen, wird eine Fehlermeldung zurückgegeben. Fehlerantworten sehen folgendermaßen aus:
[
{
"error_code" : "Application error code 1",
"message" : "Application error message 1"
}, {
"error_code" : "Application error code 2",
"message" : "Application error message 2"
}
]
Erstellen Sie eine Syndizierung
Methode: POST
Endpunkt: /accounts/{account_id}/mrss/syndications
Beispielanfragetext:
{
"name": "my mp4 feed",
"type": "mp4"
}
Beachten Sie, dass die name
bzw. unter type
Felder sind Pflichtfelder. Andere sind optional.
Aktualisieren Sie eine Syndizierung
Methode: PATCH
Endpunkt: /accounts/{account_id}/mrss/syndications/{syndication_id}
Beispielanfragetext:
{
"name": "my new name"
}
Beachten Sie, dass der Anforderungshauptteil für PATCH-Anforderungen muss Fügen Sie die Felder hinzu (type
, id
bzw. unter syndication_url
).
Löschen Sie eine Syndizierung
Methode: DELETE
Endpunkt: /accounts/{account_id}/mrss/syndications/{syndication_id}
Holen Sie sich alle Syndizierungen für ein Konto
Methode: GET
Endpunkt: /accounts/{account_id}/mrss/syndications
Holen Sie sich eine bestimmte Syndication
Methode: GET
Endpunkt: /accounts/{account_id}/mrss/syndications/{syndication_id}
Legen Sie die Vorlage für eine universelle Syndizierung fest
Methode: PUT
Endpunkt: /accounts/{account_id}/mrss/syndications/{syndication_id}/template
Beispielanfragetext:
<feed header>My Feed Header</feed header>
Die obige Vorlage würde einen Feed ähnlich dem folgenden generieren:
<feed header>My Feed Header</feed header>
<item>
<title>Title for Video 1</title>
<video_info>Description for Video 1</video_info>
</item>
<item>
<title>Title for Video 2</title>
<video_info>Description for Video 2</video_info>
</item>
Holen Sie sich die Vorlage für eine universelle Syndizierung
Methode: GET
Endpunkt: /accounts/{account_id}/mrss/syndications/{syndication_id}/template
Holen Sie sich den Feed, der einer Syndizierung zugeordnet ist
Die Feed-URL kann von der Syndication abgerufen werden syndication_url
Feld oder manuell erstellt. Notiere dass der Syndication Feed API kann auch verwendet werden, um einen Feed ohne Authentifizierung abzurufen.
Methode: GET
Endpunkt: /accounts/{account_id}/mrss/syndications/{syndication_id}/feed
Universelle Vorlagensprache
Universelle Syndizierungen ermöglichen das Zusammenführen von Katalogdaten mit einer benutzerdefinierten Vorlage, um jede Art von Feed zu generieren. Die unterstützte Vorlagensprache ist Flüssigkeit. Feeds für die Standard-Syndication-Typen werden mit denselben Vorlagentypen generiert Vorlagen als Beispiele um Ihnen bei Bedarf beim Erstellen benutzerdefinierter Vorlagen zu helfen.
In den folgenden Abschnitten werden die Syndication-, Asset-, Source- und Digital Master-Eigenschaften aufgeführt, die Sie verwenden können, sowie eine Erweiterung zu Liquid, die der Einfachheit halber hinzugefügt wurde.
Um alles zu sehen Video Cloud Video-Metadatenfelder mit Beschreibungen, um die zu gehen CMS API Videofeldreferenz.
Eigenschaften der obersten Ebene
Abgeleitet von Syndication-Feldern
album_art_url
author
category
description
destination_url
explicit
keywords
name
owner_name
owner_email
subtitle
syndication_id
syndication_url
title
Video Cloud Konto-ID
account_id
VideoCloud Standard player Seiten-URL-Präfix
Verwenden Sie wie folgt:
<media:player url="//default_default/index.html?videoId=">
player_url
URL der nächsten Seite des Feeds
next_page
Sammlung von Video-Assets aus dem Katalog (Details siehe unten)
assets
Asset-Eigenschaften
Die Ressourcen in der Assets-Sammlung werden von den Videoressourcen abgeleitet, die von der CMS Get Videos API-Methode zurückgegeben werden, und alle gleichen Eigenschaften werden unterstützt, einschließlich, aber nicht beschränkt auf Folgendes:
created_at
description
duration
id
images
images.thumbnail
images.poster
long_description
name
original_filename
published_at
schedule
state
tags
text_tracks
updated_at
Asset-Ressourcen unterstützen auch die folgenden Eigenschaften:
sources
(Sammlung von Quellen für das Video - Quelleneigenschaften finden Sie im nächsten Abschnitt)digital_master
(ist leer, wenn kein digitaler Master vorhanden ist - siehe unten für die Eigenschaften des digitalen Masters)best_mp4_source
(Die MP4-Quelle mit der höchsten Qualität - ist möglicherweise leer, wenn keine MP4-Quellen vorhanden sind. Die Eigenschaften entsprechen denen, die in der zurückgegeben werdensources
)hls_source
(gibt die HLS-Quelle zurück - ist leer, wenn keine vorhanden ist)best_dynamic_rendition_quality
(Gibt die Videoqualität der dynamischen Wiedergabe des Videos mit der größten Bildgröße zurück, wenn für das Video Metadaten für die dynamische Wiedergabe abgerufen wurden. Zulässige Werte sind "SD", "HD", "FHD" und "UHD".)
Quelleneigenschaften
Die Ressourcen in der Quellensammlung für ein Asset werden aus den Videoquellenressourcen abgeleitet, die von der CMS Get API Sources API-Methode zurückgegeben werden. Die folgenden Eigenschaften werden unterstützt:
app_name
asset_id
codec
container
created_at
duration
encoding_rate
height
size
src
stream_name
type
uploaded_at
width
Digitale Master-Eigenschaften
Der digital_master
Die Ressource für ein Asset wird aus der digitalen Masterressource abgeleitet, die von der CMS-API-Methode Get Digital Master Info zurückgegeben wird. Die folgenden Eigenschaften werden unterstützt:
duration
encoding_rate
height
size
url
width
Dynamische Wiedergabeeigenschaften
Der dynamic_renditions
Die Ressource für ein Asset wird aus den dynamischen Wiedergaben abgeleitet, die von der CMS Get Digital Master Info API-Methode zurückgegeben werden. Die folgenden Eigenschaften werden unterstützt:
rendition_id
frame_height
frame_width
media_type
encoding_rate
created_at
updated_at
size
duration
audio_configuration
language
variant
Erweiterungen zu Liquid
toUTC Filter
Wir haben unseren Liquid-Parser erweitert, um einen toUTC-Filter zu unterstützen, der die meisten Standardformate für ISO-8601-Datums- und Uhrzeitzeichenfolgen analysiert und sie in Standard-UTC-Datums- und Uhrzeitzeichenfolgen umwandelt. Dieses Format ist für den Datumsfilter von Liquid akzeptabel, mit dem die Zeitstempel in Datums- / Uhrzeitzeichenfolgen in einem beliebigen Format neu formatiert werden können. Zum Beispiel:
<pubDate></pubDate>
Dies erzeugt eine Ausgabe wie die folgende, wenn asset.published_at den Wert 2019-08-09T13 hat: 32: 52.031Z ::
<pubDate>Fri, 09 Aug 2019 09:32:52 +0000</pubDate>
toEpoch Filter
Der von uns verwendete Liquid-Parser unterstützt das Token "% s" in Datumsfiltern zum Konvertieren von Datumsangaben in Zeitstempel der Unix-Epoche nicht. Um dies zu beheben, wird ein benutzerdefinierter toEpoch-Filter bereitgestellt, mit dem gültige Datumsspezifikationen in das Epochenformat konvertiert werden können. Der Filter gibt einen numerischen Datenwert zurück, der Millisekunden seit der Epoche darstellt, die für die Eingabe in mathematische Filter geeignet ist. Zum Beispiel:
<toEpochMillis>now</toEpochMillis>
<toEpochSeconds>0</toEpochSeconds>
<thirtyDaysAgo>-2592000000</thirtyDaysAgo>
erzeugt eine Ausgabe wie die folgende:
<toEpochMillis>1580917253024</toEpochMillis>
<toEpochSeconds>1580917253</toEpochSeconds>
<thirtyDaysAgo>2020-01-06T15:40:53.055Z</thirtyDaysAgo>
fromEpoch Filter
Der fromEpoch-Filter konvertiert Zahlen, die Millisekunden seit der Epoche darstellen, in UTC-Datumszeichenfolgen. Der Filter akzeptiert auch eine Zeichenfolge, die die Epochenwertziffern enthält, als Eingabe. Die Ausgabe kann bei Bedarf zur Neuformatierung an den Datumsfilter übergeben werden.
Beispielsweise:
<fromEpochMillis>now</fromEpochMillis>
<thirtyDaysAgoAltFormat>52067-04-10</thirtyDaysAgo>
erzeugt eine Ausgabe wie die folgende:
<fromEpochMillis>2020-02-05T16:09:37.809Z</fromEpochMillis>
<thirtyDaysAgoAltFormat>2020-02-05</thirtyDaysAgo>