Zum Hauptinhalt springen

Vorlagen und Formate

Eine Vorlage bestimmt, wie ein Clip gerendert wird. Sie kommt in Varianten, die Zuschnitte derselben Idee sind, in Versionen, die Builds sind, und in Seitenverhältnissen, die die Formen sind, in denen sie gerendert werden kann. Für einen Entwickler ist wichtig, dass eine Vorlage genau das Dokument veröffentlicht, das sie annimmt, sodass Sie daraus einen Client erzeugen können, statt zu raten.

Im Dashboard stehen die Vorlagen, die einem Workspace angeboten werden, im Clip-Studio unter Vorlage auswählen, wo Clip erstellen aus einer ein Video für sich erstellt; diese Hälfte der API ist der direkte Export.

MethodePfadBerechtigung
GET/v1/templatestemplates:read
GET/v1/templates/{templateId}/referencetemplates:read
GET/v1/templates/{templateId}/reference/{ratio}templates:read
GET/v1/templates/{templateId}/reference-sheettemplates:read
POST/v1/templates/{templateId}/validatetemplates:read
GET/v1/formats/templatestemplates:read
GET/v1/formats/template/{templateId}templates:read
GET/v1/formats/feed/{feedId}templates:read
GET/v1/formats/feed/{source}/{format}templates:read
GET/v1/cataloguetemplates:read

/v1/catalogue, /v1/formats/templates, /v1/formats/template/{id} und /v1/formats/feed/... werden auch ohne Authentifizierung geliefert. Welche Form eine Vorlage annimmt, ist eine Produktbeschreibung und keine Kundendaten, und ein Produzent braucht sie, bevor er einen Grund hat, sich zu authentifizieren. Nichts darin sagt, wer eine Vorlage nutzt oder was an sie gesendet wurde. POST /v1/templates/{templateId}/validate ist ein POST, das nur liest, braucht also templates:read und nichts weiter.

Eine Vorlage fragen, was sie annimmt​

Das ist der Aufruf, um den herum ein Produzent gebaut wird.

Eine Vorlage erhält drei Dinge, die Marke, den Kanal und den Inhalt, und nichts sonst

curl http://localhost:4000/v1/formats/template/tpl_dd7e6b264fb8

Die Antwort trägt vier Dinge: keys, eine für Menschen lesbare Beschreibung jeder Eingabe; jsonSchema, dasselbe als JSON Schema, zum Erzeugen eines Clients; example, eine durchgespielte Nutzlast, die es erfüllt; und ratios, die Formen, in denen dieser Build kommt. Hier gekürzt: keys listet jede Eingabe auf, mit Beschriftung, Beschreibung, Limits und Beispiel, und jsonSchema enthält auch jede davon.

{
"templateId": "tpl_dd7e6b264fb8",
"templateName": "Big number",
"variant": "Corporate glass",
"version": "1.0.0",
"ratios": ["9x16", "4x5", "1x1", "16x9", "2x3"],
"keys": {
"format": "reelwire.keys/1",
"summary": "One figure counted up to its value, with what it is, its change and the window it happened in, and up to six more figures after it, one at a time. metaData is the post's title, descriptions and hashtags and is never drawn.",
"keys": [
{
"key": "clipData",
"type": "group",
"label": "Clip data",
"description": "Everything drawn: a kicker, what the figure is, the figure with its prefix and unit, the window it happened in, an optional change, a line of context, up to six more figures each on a page of its own, the source and the look.",
"required": true,
"keys": [
{ "key": "kicker", "type": "text", "label": "Kicker", "description": "A word above everything, such as BREAKING or JUST IN.", "required": false, "maxLength": 20, "example": "Breaking" },
{ "key": "label", "type": "text", "label": "What the figure is", "description": "Read before the figure, so the number lands with its meaning.", "required": true, "maxLength": 70, "example": "Wiped off the value of US tech stocks" },
{ "key": "value", "type": "number", "label": "The figure", "required": true, "decimals": 4, "example": 740 }
]
}
]
},
"jsonSchema": {
"type": "object",
"properties": { "clipData": { "type": "object", "title": "Clip data" }, "metaData": { "type": "object", "title": "Meta data" }, "locales": { "type": "object" } },
"required": ["clipData"],
"additionalProperties": false
},
"example": {
"clipData": {
"kicker": "Breaking",
"label": "Wiped off the value of US tech stocks",
"value": 740,
"prefix": "$",
"unit": "billion",
"window": "in 5 minutes",
"change": { "value": -2.1, "unit": "%", "label": "Nasdaq 100 today" },
"note": "The biggest five-minute drop since March, minutes after the inflation figures came in above forecasts",
"more": [
{ "label": "Nvidia, the biggest faller among the chip makers", "value": 118.4, "prefix": "$", "unit": "", "window": "at the close", "change": { "value": -4.8, "unit": "%", "label": "on the day" }, "note": "Chip makers led the fall as bond yields jumped." },
{ "label": "Gold, where the money went", "value": 2412, "prefix": "$", "unit": "an ounce", "window": "a record close", "change": { "value": 1.2, "unit": "%", "label": "on the day" }, "note": "Investors bought the metal as a shelter from the sell-off." }
],
"source": "Exchange data, 15:35 New York time",
"look": { "theme": "auto", "pace": "auto", "corners": "auto", "align": "auto", "logo": "auto" }
},
"metaData": {
"title": "740 billion dollars off US tech stocks in five minutes",
"captionTiny": "740 billion dollars wiped off US tech stocks in five minutes after the inflation figures.",
"captionShort": "740 billion dollars were wiped off US tech stocks in five minutes after the inflation figures came in above forecasts. The Nasdaq 100 closed 2.1 percent lower.",
"captionMedium": "740 billion dollars were wiped off US tech stocks in five minutes after the inflation figures came in above forecasts. It was the biggest five-minute drop since March. The Nasdaq 100 closed the day 2.1 percent lower, led by the largest chip makers.",
"captionLong": "740 billion dollars were wiped off US tech stocks in five minutes after the inflation figures came in above forecasts. It was the biggest five-minute drop since March. The Nasdaq 100 closed the day 2.1 percent lower, led by the largest chip makers. Markets now expect fewer rate cuts this year than they did a week ago.",
"hashtags": ["markets", "nasdaq", "tech"]
}
}
}

Immer zwei Hälften. clipData wird im Clip gerendert. metaData sind der Titel, die Beschreibungen und die Hashtags des Beitrags und werden nie im Video gerendert. Jeder Schlüssel steht im Beispiel, auch die optionalen, sodass Sie die ganze Form sehen und nicht das Wenigste, das durchgehen würde. look sind dieselben neun Schalter in jedem Format der Sammlungen (Theme, Tempo, Ecken, Textausrichtung, die Platte des Logos, die Größe des Logos, die obere Zeile, die Fußzeile und das Hintergrundmuster), jeweils auto oder aus, die eigene Wahl des Stils, sofern Sie ihn nicht setzen. logoSize ist auto (Standard), small (ein Fünftel kleiner, mit seiner Platte) oder large (ein Viertel größer, wo der Stil Platz dafür hat). hideHeader ist true, um die Zeile oben, das Logo, die Titelzeile und die Dekoration des Stils darum herum wegzulassen, sodass der Inhalt oben beginnt; eine Marke lässt sie mit "header": { "enabled": false } in ihrem Stil aus jedem Clip weg. hideFooter ist true, um die Fußzeile der Marke und alles, was der Stil nur zu ihrer Aufnahme zeigt, wegzulassen, sodass der Inhalt weiter nach unten reicht; der Moderator und die Quellenzeile bleiben. Eine Marke lässt sie mit "footer": { "enabled": false } aus jedem Clip weg. pattern ist die feine Textur hinter dem Inhalt: auto behält die des Stils (die Punkte von Corporate glass, die Spaltenlinien von Swiss grid; manche Stile zeigen keine), none lässt den Hintergrund schlicht, und dots, grid oder lines (diagonale Linien) zeigen stattdessen dieses Muster blass, in jedem Stil gleich, in der Farbe der Seite. Der größere Hintergrund des Stils, seine Glühen, Strahlen oder Polarlichter, bleibt, was Sie auch wählen.

locales im Inhalt ist der Weg, wie ein Ereignis mehrere Sprachen trägt: neben dem Text, je Sprachcode, nur das, was abweicht, etwa "locales": { "de": { "clipData": { "label": "..." } } }. Das JSON Schema beschreibt es, und das durchgespielte Beispiel lässt es weg. Jeder Kanal nimmt die Kopie seiner eigenen Sprache über den Standard gelegt, sodass eine Sprache ohne Kopie weiterhin gerendert wird, mit dem Standard. Die Beschreibung kommt in vier Längen, weil die Plattformen es tun, und jede Plattform veröffentlicht die längste, die Platz für die Beschreibung, den Link und die Hashtags der Marke lässt: die winzige (captionTiny, bis zu 200 Zeichen) auf Pinterest, Threads und X, die kurze (captionShort, 500) auf Telegram, Threema, WeChat und WhatsApp, die mittlere (captionMedium, 1.500) auf Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack und TikTok und die lange (captionLong, 4.000) auf Facebook Feed und YouTube. Die Titel des JSON Schemas sagen dasselbe, „Tiny description (Pinterest, Threads, X)“ und so weiter. Eine weggelassene Länge wird aus der nächstkürzeren geschriebenen gefüllt, sonst aus der nächstlängeren, die das Limit der Plattform dann kürzt; Inhalt aus der Zeit vor der winzigen Länge gibt diesen Plattformen also seine kurze. Ein Kanal auf Keine bestimmte Plattform übergibt jede Länge, weil die Person, die veröffentlicht, wählt, wohin er geht.

Lassen Sie metaData bei einem Feed oder Stream weg oder senden Sie es leer, und der Beitragstext wird aus clipData erzeugt: der eigene Titel des Clips als Titel des Beitrags (sein title und label oder eine headline), der Kicker, dieser Titel, eine zweite Zeile (subline) und alle Punkte (bullets) als Beschreibung sowie bis zu vier Hashtags aus den längeren Wörtern des Titels und Kickers. Senden Sie irgendetwas davon, und nur das, was Sie gesendet haben, wird verwendet: Eine Beschreibung ohne Titel geht ohne Titel hinaus. Ein Beitrag in einer Beitragsliste sagt nur, was geschrieben wurde, und nur ein leerer Titel wird dort gefüllt.

Ein Bild ist eine Datei aus Ihrer Mediathek und sonst nichts. Jedes Bildfeld ist { "url": "...", "alt": "..." }, und url nimmt media:// gefolgt von der ID der Datei oder ihrem Namen, wie das eigene Beispiel einer Vorlage ein Bild benennt (das von Spotlight ist media://example-image.svg, eine der Dateien, mit denen die Mediathek jedes neuen Workspaces beginnt); das JSON Schema nennt die beiden Teile „Picture“ und „Alt text“. Eine Webadresse wird abgelehnt, und die Ablehnung nennt das Feld: ein 400 bei einem Feed, einer Beitragsliste oder einem direkten Export und unmapped mit dem Grund bei einem Stream. Laden Sie das Bild zuerst in die Mediathek hoch und verweisen Sie dann darauf.

Ein Video ist dasselbe, für ein Video. Eine Vorlage, die eines Ihrer Videos abspielt (die Vorlage Overlay), nimmt { "url": "media://...", "alt": "..." } auf dieselbe Weise, und der Clip ist so lang wie das Video, höchstens drei Minuten. Reelwire misst die Datei selbst und schreibt ihre Länge als durationMs in das Feld, Sie senden sie also nie, und alles, was dort gesendet wird, wird ersetzt. Ein solcher Clip spielt den eigenen Ton des Videos statt des Soundtracks der Marke, ohne Stinger, Intro und Outro der Marke, und zählt als ein Video Ihres Kontingents, wie lang er auch ist. Die Mediathek jedes neuen Workspaces beginnt mit example-video.mp4, das das eigene Beispiel der Vorlage nennt.

Das Overlay nimmt auch ein Bild. Nennen Sie ein Bild aus Ihrer Mediathek im selben Feld (etwa media://example-image.jpg), und die Marke wird genau wie über ein Video darübergelegt, auf dieselbe Weise zugeschnitten, um jedes Bildformat zu füllen. Ein Bild hat keine Länge, daher läuft der Clip die seconds, die Sie daneben senden, von 3 bis 60, oder 10 ohne sie. Reelwire schreibt, was es ist, als kind, video oder image, neben die Länge in das Feld und ersetzt auch dort alles Gesendete. Mit einem Bild wird der Clip wie jeder andere ausgestattet: Der Soundtrack Ihrer Marke spielt darüber, und ihr Stinger, Intro und Outro umgeben ihn.

Fragen Sie /v1/formats/template/{templateId} nach einem bestimmten Zuschnitt oder Build mit ?variant=Corporate%20glass&version=1.0.0. Ohne sie erhalten Sie die erste Variante und den neuesten Build. Eine Variante, die die Vorlage nicht hat, ist ein 400, der die nennt, die sie hat. version nimmt hier nur einen exakten Build: Lassen Sie es für den neuesten weg, denn latest wird als Version gesucht und ist ein 404.

Fragen Sie je Variante, wo sich die Varianten unterscheiden. Jeder Stil einer Sammlung (Große Zahl in Corporate glass, Editorial oder Data terminal) nimmt denselben Inhalt, sodass jede Variante für alle antwortet. Die Branchenvorlagen sind anders: Finance, Influencer, Retail, Tech und Public bodies halten jeweils zehn Anwendungsfälle als Varianten, und jede Variante nimmt ihren eigenen Inhalt (ein Market update ist kein Advisor intro). Fragen Sie danach mit ?variant= und senden Sie jedem Beitrag oder Ereignis den Inhalt der Variante, mit der er gerendert wird.

Stattdessen über den Feed fragen​

Ein Produzent weiß meist, dass er Zentralbankentscheidungen sendet, nicht, welche Vorlage sie rendert. Welche Vorlage ein Feed verwendet, entscheidet Reelwire und ändert sich, ohne dass es dem Produzenten gesagt wird, also fragen Sie über den Feed und folgen Sie.

curl http://localhost:4000/v1/formats/feed/fd_c16f5268064a

Die Antwort ist dasselbe Dokument, aufgelöst über die aktuelle Bindung des Feeds. GET /v1/formats/feed/{source}/{format} ist dieselbe Antwort, adressiert über die beiden Slugs.

Um ein eigenes Design bitten​

POST /v1/templates/custom-design bittet Reelwire um ein eigens für diesen Workspace gemachtes Design, für den Fall, dass keiner der Stile im Regal Ihrer ist. Es nimmt about (was das Design sein soll, mindestens ein Satz) und optional liked, disliked und brandId und sendet eine E-Mail an Reelwire mit der anfragenden Person als Reply-To; es antwortet mit { "sent": true, "answerTo": "you@example.com" }, der Adresse, an die Reelwire zurückschreibt. Was Reelwire dann erstellt, ist eine Vorlage, die allein Ihrem Workspace angeboten wird. Die Anfrage selbst verspricht nichts, weder einen Preis noch ein Datum. Fünf Anfragen pro Tag und Workspace; es braucht Clip studio: write.

Inhalt prüfen, bevor Sie ihn senden​

POST /v1/templates/{templateId}/validate prüft Inhalt gegen den Build, mit dem er gerendert würde, und speichert nichts: die Prüfung, die der Beitrag einer Beitragsliste beim Speichern erhält und die Clip erstellen vor dem Rendern erhält, gegen die eigenen Schlüssel der Variante, wobei auch jedes Bild, das der Inhalt nennt, in der Mediathek dieses Workspaces nachgeschlagen wird. Im Dashboard ist es der Link Eingabe prüfen unter einem Inhaltseditor.

FeldErforderlichWas es ist
datajaDer Inhalt, als ein Objekt: clipData, metaData und alle locales.
variantneinDer Zuschnitt, gegen den geprüft wird, nach Namen. Fehlt er, ist es der erste der Vorlage.
versionneinEin exakter Build oder "latest". Fehlt er, ist es der neueste.
curl http://localhost:4000/v1/templates/tpl_dd7e6b264fb8/validate \
-H "Authorization: Bearer rw_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"variant": "Corporate glass",
"data": { "clipData": { "label": "Ten-year Bund yield", "valeu": 2.41 } }
}'
{
"ok": false,
"templateId": "tpl_dd7e6b264fb8",
"variant": "Corporate glass",
"version": "1.0.0",
"problems": [
{ "path": "/clipData", "message": "missing value" },
{ "path": "/clipData", "message": "has a field this template does not take: valeu" }
]
}

Inhalt, der nicht passt, antwortet trotzdem mit 200: ok sagt, ob er genommen würde, und problems nennt jedes fehlerhafte Feld, als JSON Pointer, in Worten: fehlend, kein Feld, das diese Vorlage nimmt, über seinem Limit oder keiner der Werte, die es akzeptiert. Ein Bild, das die Mediathek nicht hält, ist ein Problem an seinem eigenen Feld, etwa /clipData/picture/url mit „media://harbour.jpg is not in this workspace's media library: upload it, or choose a file the library has“, weil die Form allein das nicht sagen kann und der Clip ein fehlendes Bild rendern würde. variant in der Antwort ist der Zuschnitt, der geprüft wurde, der erste, wenn Sie keinen genannt haben. Eine Variante, die die Vorlage nicht hat, oder eine Version, die sie nicht hält, ist ein 400, der nennt, was es gibt; auch data, das kein einzelnes Objekt ist, ist ein 400.

Was im Regal steht​

GET /v1/formats/templates ist jede Vorlage, die sich selbst beschreiben kann: ein Eintrag je Variante jeder Vorlage, die einen Build mit Schlüsselzuordnung hält, bei ihrem neuesten Build, in der Reihenfolge der Namen der Vorlagen. Das ist genau die Menge, auf die ein Produzent sinnvoll hingewiesen werden kann. keys zählt die Eingaben der obersten Ebene, die bei jeder Vorlage im Katalog clipData und metaData sind.

{
"templates": [
{ "templateId": "tpl_06dc2554e5ac", "templateName": "Number grid", "variant": "Data terminal", "version": "1.0.0", "keys": 2 },
{ "templateId": "tpl_06dc2554e5ac", "templateName": "Number grid", "variant": "Editorial", "version": "1.0.0", "keys": 2 }
]
}

Eine Vorlage ohne Build ist ein Name auf einem Regal, ohne etwas zu beschreiben, und wird daher nicht aufgelistet, statt aufgelistet und unbrauchbar zu sein.

GET /v1/templates ist die eigene Sicht des Workspaces: was diesem Konto angeboten wird, verbunden mit den Vorlagen, denen es schon über einen Feed, einen Stream oder eine Beitragsliste begegnet, jede mit ihrem inputSchema, duration, ratios und ihren Varianten. catalogue sind die angebotenen, wie Vorlage auswählen im Clip-Studio sie auflistet, jede mit ihrem kind; templates ist jeder Build, den der Workspace verwenden oder nennen darf, und offered sagt, ob er diese für einen Stream oder einen Beitrag wählen darf oder sie nur nennen darf, weil etwas Eigenes schon damit rendert.

{
"catalogue": [
{
"id": "tpl_dd7e6b264fb8",
"name": "Big number",
"family": "Collections",
"description": "One figure counted up to exactly what was sent, with what it is, when it happened and its change, and up to six more figures after it, one at a time: 8 to 35 seconds. In ten styles, each wearing your brand's colours, fonts, logo, presenter and background.",
"kind": "style-and-format",
"variants": ["Corporate glass", "Bento grid", "Broadcast news", "Editorial", "Swiss grid", "Neo-brutalist", "Soft friendly", "Data terminal", "Keynote minimal", "Kinetic type"]
}
],
"templates": [
{
"templateId": "tpl_dbadb7ef4a70",
"offered": true,
"version": "1.0.0",
"name": "Spotlight",
"contentStyle": "motion-graphics",
"family": "Template projects",
"milestone": 1,
"ratios": ["9x16", "4x5", "1x1", "16x9", "2x3"],
"duration": { "mode": "formula", "baseFrames": 180, "perItemFrames": 30, "itemsPath": "/clipData/facts", "freeItems": 0, "minFrames": 240, "maxFrames": 420 },
"subvariants": [],
"overridableStyle": ["*"],
"inputSchema": { "type": "object", "required": ["clipData"] },
"variants": [
{ "name": "Bento grid", "versions": ["1.0.0"] },
{ "name": "Broadcast news", "versions": ["1.0.0"] },
{ "name": "Corporate glass", "versions": ["1.0.0"] },
{ "name": "Creator native", "versions": ["1.0.0"] },
{ "name": "Editorial", "versions": ["1.0.0"] },
{ "name": "Keynote minimal", "versions": ["1.0.0"] },
{ "name": "Neo-brutalist", "versions": ["1.0.0"] },
{ "name": "Soft friendly", "versions": ["1.0.0"] },
{ "name": "Swiss grid", "versions": ["1.0.0"] }
],
"descriptorSha": "19a9365d778eb833f0f267dad6c17eb3a41a2fc9a5b961f0c784e97a1db84c4f",
"syncedAt": "2026-09-23T18:46:36.864Z"
}
]
}

duration sagt, wie lang ein Clip läuft, in Frames mit der Framerate des Builds (30 pro Sekunde): Bei den meisten Vorlagen wächst sie mit dem, was Sie senden (hier von 180 Frames plus 30 für jeden Fakt, gehalten zwischen 240 und 420), sodass mehr Inhalt einen längeren Clip ergibt statt eines überfüllten. variants in templates listet jeden Zuschnitt nach Namen mit den dafür hochgeladenen Builds auf, in alphabetischer Reihenfolge; catalogue listet die Namen in der Reihenfolge auf, in der der Vorlagen-Katalog sie zeigt, wobei der erste der ist, der verwendet wird, wenn keiner genannt wird. kind sagt, welche Art von Sammlung eine Vorlage ist, nach dem, was sich zwischen ihren Varianten ändert: package (verschiedene Dinge in einem Stil, etwa ein für einen Workspace gemachtes Package), looks (eine Sache, etwa ein Intro oder Outro, in jedem Stil) oder style-and-format (ein Format in den Stilen, die dazu passen). Es ist null bei einer Vorlage, die noch unter keiner davon eingeordnet ist. inputSchema ist das eigene der Vorlage, hier gekürzt: Bei einer Branchenvorlage, deren Varianten verschiedenen Inhalt nehmen, fragen Sie stattdessen /v1/formats/template/{templateId} je Variante.

descriptorSha ändert sich, wann immer sich der Build hinter einer Version ändert, sodass ein Client, der eine Vorlage zwischenspeichert, erkennen kann, wann er sie erneut lesen soll.

Was einem Workspace angeboten wird, folgt den Branchen, die sein Inhaber gewählt hat (siehe Ihre Branchen): eine Vorlage, die für eine davon als Kern oder möglich eingestuft ist. Der Inhaber ändert sie im Dashboard; kein Schlüssel kann es. Eine Branche zu entfernen lässt das, was schon mit einer Vorlage rendert, in Ruhe.

GET /v1/catalogue ist der mitgelieferte Feed-Katalog und nicht das Vorlagenregal: jeder Feed, den Reelwire mitbringt, gleich was einem Workspace angeboten wird, jedes Format mit seiner fd_-ID, seinem Nutzlast-Schema (jsonSchema, die Schlüsselzuordnung der Vorlage dahinter), einem durchgespielten Beispiel (examples), templateIds, markets und maxAgeSeconds, wie alt ein Ereignis sein darf, bevor es aufbewahrt, aber nie veröffentlicht wird: ein Tag bei den fertigen Feeds. markets ist die Einstufung, mit der der Feed ausgeliefert wurde, je Markt-ID, core, possible oder bad; die IDs sind brokers (der Markt namens Finanzen), tech, public und retail. Es wird mit einem etag und cache-control: public, max-age=30 geliefert, sodass ein Client, der die Version gesehen hat, das Parsen überspringen kann. Was einem Workspace angeboten wird, steht in GET /v1/feeds.

Welche Builds es gibt​

curl http://localhost:4000/v1/templates/tpl_dd7e6b264fb8/reference \
-H "Authorization: Bearer rw_your_key_here"
{
"templateId": "tpl_dd7e6b264fb8",
"name": "Big number",
"variants": [
{ "name": "Corporate glass", "versions": [{ "version": "1.0.0", "ratios": ["9x16", "4x5", "1x1", "16x9", "2x3"] }] },
{ "name": "Bento grid", "versions": [{ "version": "1.0.0", "ratios": ["9x16", "4x5", "1x1", "16x9", "2x3"] }] },
{ "name": "Broadcast news", "versions": [{ "version": "1.0.0", "ratios": ["9x16", "4x5", "1x1", "16x9", "2x3"] }] }
]
}

Hier gekürzt auf drei der zehn Varianten von Große Zahl. Sie kommen in der Reihenfolge, in der der Vorlagen-Katalog sie auflistet, jede mit ihren Builds, die neuesten zuerst.

GET /v1/templates/{templateId}/reference/{ratio} liefert den Referenzclip selbst, sodass Sie sehen können, wie eine Vorlage aussieht, bevor Sie sich festlegen. Es ist ein Video, kein JSON:

HTTP/1.1 200 OK
content-type: video/mp4
etag: "5f3346d28eb21a9d24768c82d387c7a66708cf6561511a9f3837c8455f385fa2-9x16"
cache-control: private, no-cache
x-template-version: 1.0.0

Schränken Sie mit ?variant=Corporate%20glass&version=1.0.0 ein; hier ist version=latest der neueste Build. Ein Seitenverhältnis, das nicht NxM ist, ist ein 400, der „No such shape“ sagt, und eine Variante, Version oder ein Bildformat, für die der Build keinen Clip hat, ist ein 404. Senden Sie das etag als If-None-Match zurück, und ein unveränderter Build antwortet mit 304 und nichts zum Herunterladen.

GET /v1/templates/{templateId}/reference-sheet ist ein Bild, ein JPEG und kein JSON, einer Variante, gerendert mit ihrem durchgespielten Beispiel in mehreren Marken, Looks und Bildformaten, sodass Sie auf einen Blick sehen, wie sie eine Marke trägt. Es nimmt dieselben ?variant= und ?version=, trägt ein etag, das genauso funktioniert, und x-template-version und ist ein 404 bei einem Build, der kein Blatt trägt.

Versionen und Varianten​

Eine Version benennt einen Build. "latest" ist eine echte Antwort und keine Abwesenheit, und es ist der Standard: Es folgt dem neuesten Build, aufgelöst in dem Moment, in dem etwas gerendert wird.

Vorläufig steht jede Vorlage auf Version 1.0.0. Eine Verbesserung einer Vorlage ersetzt ihren 1.0.0-Build, statt eine Version hinzuzufügen, sodass ein Kanal, der auf 1.0.0 festgelegt ist, und einer auf "latest" heute dasselbe rendern. Der Inhalt, den eine Vorlage annimmt, ändert sich mit einem neuen Build nicht.

Eine Variante ist ein Zuschnitt derselben Vorlage. In einer Sammlung, etwa Große Zahl, ist jede Variante ein visueller Stil, und jeder Stil nimmt denselben Inhalt; in einer Branchenvorlage, etwa Finance, ist jede Variante ein Anwendungsfall mit eigenem Inhalt. Welche Variante und welche Version, ist die Wahl des abonnierenden Kanals, die des Beitrags in einer Beitragsliste oder die des Videos bei einem direkten Export; sie ist nie die des Produzenten. Siehe Kanäle.

POST /v1/templates/sync, das in der Routenliste erscheint, spiegelt die Vorlagen-Registry. Es gehört Reelwire selbst, für seine Mitarbeiter, und wird jedem Schlüssel verweigert: Nichts, was ein Produzent oder ein Veröffentlichender tut, braucht es.

Häufige Fehler​

Die Nutzlast von Hand nach einem Beispiel schreiben. Nehmen Sie jsonSchema und erzeugen Sie einen Typ. Das Beispiel ist da, um sich daran zu prüfen, nicht um es zu kopieren.

Einen Clip rendern, um herauszufinden, ob der Inhalt passt. POST /v1/templates/{templateId}/validate beantwortet dieselbe Frage sofort, nennt jedes fehlerhafte Feld, fehlende Bilder der Mediathek eingeschlossen, und kostet nichts.

Gerenderten Inhalt in metaData legen. Es wird nie gerendert. Überschriften und Zahlen gehören in clipData.

locales neben den Inhalt senden. Es gehört in den Inhalt, wo die Vorlage es validiert.

Eine Version festlegen, weil sie da ist. Eine Festlegung folgt neuen Versionen nicht mehr. Legen Sie fest, wenn Sie einen Grund haben, nicht standardmäßig.

Annehmen, jede Vorlage komme in jeder Form. ratios gilt je Build. Ein Kanal auf einer Oberfläche, die die Vorlage nicht rendert, hat nichts zu rendern.

Einen Feed in gespeicherter Konfiguration über seine Slugs ansprechen. Slugs sind Wörter, und Wörter werden bearbeitet. Verwenden Sie die fd_-ID.