Zum Hauptinhalt springen

Mediathek

Die Mediathek enthält Dateien, die ein Workspace einmal hochlädt und in jedem Clip verwendet: Bilder, MP4-Videos, Sound und Schriften. Inhalte verweisen auf eine Datei als media://{id}, nie per URL, und Reelwire übergibt dem Renderer für jeden Auftrag einen privaten Download davon. Eine Datei der Mediathek hat keine dauerhafte öffentliche Adresse.

Nichts wird beim Hochladen skaliert, neu kodiert oder als Vorschaubild verkleinert. Eine Datei wird Byte für Byte gespeichert und in der Größe gezählt, in der sie ankam.

Im Dashboard ist das die Seite Medien mit drei Karten: Medien (die Mediathek), Gerenderte Clips und Speicheraufteilung.

MethodePfadBerechtigung
GET/v1/mediamedia:read
POST/v1/mediamedia:write
POST/v1/media/importmedia:write
POST/v1/media/upload-linkmedia:write
POST/v1/media/{id}/renamemedia:write
POST/v1/media/{id}/deletemedia:write
GET/v1/media/{id}/usesmedia:read
GET/v1/media/rendersmedia:read
GET/v1/media/renders/{id}/reusemedia:read
POST/v1/media/renders/{id}/deletemedia:write
POST/v1/media/renders/{id}/copymedia:write
GET/v1/assets/{id}media:read
GET/v1/assets/{id}/downloadkeine: die Signatur in der URL
POST/v1/storage/splitangemeldeter Inhaber

Der KI-Assistent erstellt Bilder, Videos, Musik und Schriften, und eines davon zu behalten legt es nach denselben Regeln wie einen Upload in diese Mediathek.

Hochladen ist multipart, und nur multipart​

POST /v1/media nimmt genau eine Datei als multipart/form-data entgegen. Nicht Base64 in einem JSON-Text, nicht eine URL zum Abrufen. Der Feldname spielt keine Rolle: Die Route nimmt den ersten Dateiteil, den sie findet, senden Sie also nur einen.

Mit curl sind das -F und ein @path. Geben Sie den Typ ausdrücklich an, denn curl rät anhand der Endung und rät bei Schriften falsch:

curl http://localhost:4000/v1/media \
-H "Authorization: Bearer rw_your_key_here" \
-F "file=@docs-example-logo.png;type=image/png"

Setzen Sie nicht zusätzlich Content-Type: multipart/form-data von Hand. Die Boundary ist Teil dieses Headers, und ein von Hand geschriebener ohne sie macht den Text nicht lesbar.

{
"file": {
"id": "01M2SQSRPWVG87Y0TD6C77XE61",
"name": "docs-example-logo.png",
"mimeType": "image/png",
"kind": "Image",
"byteSize": 74,
"included": false,
"createdAt": "2026-09-18T07:48:21.347Z",
"uploadedBy": "apikey:01M2SQKKZ3ZPXK8RB7BK5QJ3GH",
"ref": "media://01M2SQSRPWVG87Y0TD6C77XE61",
"url": "http://localhost:4000/v1/assets/01M2SQSRPWVG87Y0TD6C77XE61/download?exp=1789721301&sig=8eeefc2bed6398b1bfcadc69286fce5436c6a28f4c29f5321091351e160c527f"
},
"storage": {
"maxMb": 500,
"maxBytes": 524288000,
"usedBytes": 28182659,
"usedBy": { "media": 10821961, "renders": 17360698 },
"remainingBytes": 496105341,
"includedMb": 500,
"mediaPercent": 30,
"media": { "maxBytes": 157286400, "usedBytes": 10821961, "maxMb": 150, "usedMb": 10.3, "remainingBytes": 146464439 },
"clips": { "maxBytes": 367001600, "usedBytes": 17360698, "maxMb": 350, "usedMb": 16.6, "remainingBytes": 349640902 },
"split": { "minPercent": 10, "maxPercent": 90 }
}
}

201. ref ist das, was Sie in den Inhalt schreiben. url ist eine signierte Vorschau, eine Stunde gültig, um die Datei einer Person zu zeigen. Speichern Sie die id, nie die URL. Ein Inhalt kann eine Datei auch über ihren Namen nennen, media://docs-example-logo.png, wie es die eigenen Beispiele der Vorlagen tun.

uploadedBy hält fest, welche Zugangsberechtigung es getan hat, apikey:{keyId} oder user:{email}, und ist null bei den Startdateien, mit denen ein Workspace kam. included ist true für genau diese Dateien, solange sie noch so sind, wie sie kamen: Sie zählen gegen keinen Speicher (siehe Womit ein neuer Workspace beginnt), und byteSize sagt weiterhin, wie groß sie sind.

Zusätzliche Formularfelder​

Zwei optionale Textteile ändern, was ein Upload bedeutet:

FeldWas es bewirkt
replace"true" erlaubt dem Upload, einen Namen zu übernehmen, der in der Mediathek schon vergeben ist.
replacesEine ID einer Mediendatei. Ersetzt diese eine Datei, behält ihren Namen mit der Endung der neuen Datei und verweist jede Marke, in der /uses (unten) die alte Datei findet, und jeden Beitrag einer Beitragsliste, der sie nannte, auf die neue.

Ein replaces-Upload muss dieselbe Art von Datei sein: Aus einem Logo wird kein Video. Die neue Datei erhält eine neue ID, statt die der alten zu übernehmen, sodass nichts, was die alten Bytes über die ID zwischengespeichert hat, das alte Bild unter dem neuen Namen rendern kann.

Ohne eines von beiden ist ein Name, der in der Mediathek schon vergeben ist, ein 409:

{
"error": {
"type": "https://reelwire.io/errors/conflict",
"code": "conflict",
"message": "docs-example-logo.png is already in the media library. Upload it again and choose to replace it.",
"requestId": "01M2SREXKAJRENJMBM4S1CXZ74",
"details": []
}
}

Was die Mediathek annimmt​

ArtTypenLimit
Bildimage/png, image/jpeg, image/webp, image/gif, image/svg+xml2048 mal 2048 Pixel
Videovideo/mp450 MB
Audioaudio/mpeg, audio/wav20 MB
Schriftfont/woff2, font/woff, font/ttf, font/otf10 MB

50 MB ist die Obergrenze, die kein einzelner Upload überschreiten darf, gleich welcher Art, und das Speicherkontingent des Workspaces begrenzt weiterhin die Gesamtmenge.

Das Pixellimit wird aus dem eigenen Header der Datei gelesen und nicht aus dem, was der Client angibt, und ein Bild, dessen Größe sich nicht lesen lässt, wird abgelehnt, weil nicht gezeigt werden kann, dass es innerhalb des Limits liegt. SVG ist ausgenommen: Es ist eine Zeichnung, scharf gerendert in jeder Größe, die ein Clip braucht.

Direkt vom Smartphone​

Was ein Smartphone erzeugt, passt in keine dieser Grenzen; die Mediathek macht es daher beim Eintreffen passend, auf jedem Weg hinein (Upload, Upload-Link, Import):

  • Ein PNG, JPEG oder WebP mit mehr als 2048 Pixeln je Seite wird in seinem eigenen Format verkleinert, so gedreht, wie es die Kamera angab, und seine EXIF-Daten (der Aufnahmeort eingeschlossen) werden entfernt. Ein GIF nicht, es muss passen.
  • Ein HEIC- oder HEIF-Foto eines iPhones wird zu einem JPEG, so gedreht, wie die Kamera es hielt, verkleinert, wo es größer als 2048 Pixel je Seite ist, mit entfernten Metadaten und einem Namen, der auf .jpg endet. Senden Sie es als image/heic oder image/heif oder mit einem Namen auf .heic oder .heif.
  • Ein Video, das kein H.264-MP4 ist, das die Mediathek behalten könnte: ein MOV, HEVC, mehr als 1920 Pixel je Seite oder über 50 MB. Es wird zu einem H.264-MP4 mit höchstens 1920 Pixeln je Seite, unter 45 MB, mit entfernten Metadaten und einem Namen, der auf .mp4 endet. Ein Upload darf auf dem Weg hinein bis zu 300 MB groß sein (ein Import, 50 MB), und ein langes Video braucht ein bis zwei Minuten zur Umwandlung.

Eine Datei, die schon passt, wird wie immer Byte für Byte behalten.

Schriften und Sounddateien werden an ihrer Dateiendung erkannt und nicht an ihrem angegebenen Typ. Browser sind sich uneinig, wie eine .otf oder eine .wav zu nennen ist, daher entscheidet die Endung.

Eine Datei, die nicht in das passt, was vom Medienanteil des Speichers übrig ist, wird mit einem 429 abgelehnt, der sagt, wie viel Platz es gibt. Die Mediathek löscht nie etwas, um Platz zu schaffen: Das ist Ihre Aufgabe, oder Sie geben den Medien einen größeren Anteil (unten).

Zwei weitere Wege hinein​

Von einer öffentlichen Adresse. POST /v1/media/import ruft eine Datei aus dem Web in die Mediathek ab, so bringt ein Assistent ein Bild herein, auf das er hingewiesen wurde. Es nimmt url und optional name und replace: true und antwortet genau wie ein Upload. Die Adresse muss öffentliches HTTPS ohne Benutzername oder Passwort sein; jede Adresse, in die sie aufgelöst oder auf die sie weitergeleitet wird, höchstens drei Weiterleitungen, wird geprüft, und eine interne wird abgelehnt.

curl http://localhost:4000/v1/media/import \
-H "Authorization: Bearer rw_your_key_here" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.example.com/press/logo.png","name":"press-logo.png"}'

Über einen einmaligen Upload-Link. POST /v1/media/upload-link gibt einen Link aus, der ohne Zugangsberechtigung Dateien in diese Mediathek aufnimmt, für etwas, das eine Datei, aber keinen Schlüssel hält, etwa die Code-Sandbox eines Assistenten. Senden Sie { "replace": true }, wenn die Dateien Namen übernehmen dürfen, die in der Mediathek schon vergeben sind.

{
"url": "http://localhost:4000/v1/upload-files?token=...",
"expiresAt": "2026-09-18T08:03:21.000Z",
"maxFiles": 10,
"method": "POST",
"field": "file",
"example": "curl -F \"file=@picture.png\" \"http://localhost:4000/v1/upload-files?token=...\""
}

Der Link gilt fünfzehn Minuten und nimmt bis zu zehn Dateien auf, eine je Anfrage und höchstens 30 Anfragen pro Minute, jede nach den obigen Regeln begrenzt. Ein Formularfeld name neben der Datei benennt sie auf dem Weg hinein um. Er funktioniert sofort nicht mehr, wenn der Schlüssel, der ihn angefordert hat, widerrufen wird.

Womit ein neuer Workspace beginnt​

Jeder neue Workspace findet diese Dateien in seiner Mediathek, sodass der erste Clip, den er rendert, zeigt, was eine Vorlage und eine Marke können, statt grauer Kästen:

DateiWofür es gedacht ist
example-image.jpg, example-image.png, example-image.svgDie Bilder, die die eigenen Beispiele der Referenzvorlagen namentlich verlangen.
example-image-with-animation.svgDieselbe Landschaft mit wechselndem Wetter, ein animiertes SVG. Auch Workspaces, die vor seiner Aufnahme erstellt wurden, haben es erhalten.
example-logo.png, example-badge.pngDas Logo und das Moderatorbild der Default brand.
example-background-image-universal.jpgDer Hintergrund der Default brand: ein Bild, ein Quadrat von 1440, gemacht, um von der Mitte aus beschnitten zu werden, und das jedes Bildformat füllt.
example-stinger-video-universal.mp4, example-intro-video-universal.mp4, example-outro-video-universal.mp4Stinger, Intro und Outro der Default brand: je ein Clip, ein Quadrat von 1440, gemacht, um von der Mitte aus beschnitten zu werden, und der in jedem Bildformat läuft. Sie sind ausgeschaltet, bis die Marke sie einschaltet.

Eine frühere Version dieses Satzes gab zusätzlich für jedes der fünf Bildformate einen Hintergrund, einen Stinger, ein Intro und ein Outro, zwanzig Dateien mehr. Sie sind weg: Sie wurden aus jeder Mediathek entfernt, die sie noch so hielt, wie sie gegeben wurden, und aus jeder Marke, die sie verwendete und die stattdessen die universelle Datei abspielt. | example-font.ttf | Bebas Neue, die Überschriftenschrift der Default brand. | | example-sound.mp3 | Dreißig Sekunden Musik, der Soundtrack der Default brand. |

Auch Workspaces, die vor dem quadratischen Hintergrund und den Clips für Stinger, Intro und Outro erstellt wurden, haben sie erhalten. Sie sind die eigenen Kopien des Workspaces, frei umzubenennen, zu ersetzen oder zu löschen, und sie sind inbegriffen: Sie zählen gegen keinen Speicher, und die Mediathek zeigt unter Größe „Inbegriffen“. Die Kennzeichnung gilt nur, solange eine Datei genau so ist, wie sie kam. Eine Datei, die eine ersetzt, zählt voll, ebenso jeder Upload, auch derselben Bytes, sodass der kostenlose Satz weder wachsen noch gegen etwas Größeres getauscht werden kann. Das Beispiel einer Vorlage findet seine Bilder über den Namen und zeigt sie daher nur, solange die Mediathek noch eine Datei dieses Namens hat. Siehe die Default brand.

Der Rest der Mediathek​

GET /v1/media listet jede Datei auf, die neueste zuerst, mit dem Speicher, den sie belegt. Es ist nicht paginiert: Die ganze Mediathek kommt in einer Antwort zurück, weil eine Mediathek aus Hunderten von Dateien besteht und die Seiten sie selbst durchsuchen und sortieren.

{
"files": [
{
"id": "01M2S2CPZVEWKJ6TW9EATDYMJB",
"name": "test-font-roboto-mono.ttf",
"mimeType": "font/ttf",
"kind": "Font",
"byteSize": 183700,
"included": false,
"createdAt": "2026-09-18T01:34:13.501Z",
"uploadedBy": "user:enterprise2-1@example.com",
"ref": "media://01M2S2CPZVEWKJ6TW9EATDYMJB",
"url": "http://localhost:4000/v1/assets/01M2S2CPZVEWKJ6TW9EATDYMJB/download?exp=1789721209&sig=a7f7bb9d4bc230b28b59b634056a10071941c066b25f7ed16ebbefd0762594d2"
}
],
"storage": { "maxMb": 500, "usedBytes": 28182585 }
}

GET /v1/media/{id}/uses sagt, was kaputtginge, wenn Sie eine Datei löschen: die Marken, die sie verwenden, wo auch immer die Datei in der Marke sitzt (ihr Logo, Moderatorbild, ein Hintergrund oder ein Clip für ein Bildformat wie intro-9x16, eine Schrift oder der Soundtrack, die eigenen Dateien einer Sprache eingeschlossen), und die noch hinausgehenden Beiträge in Beitragslisten, deren Inhalt sie nennt. Die Default brand nimmt ihre Schrift und ihren Soundtrack genau so aus der Mediathek.

curl http://localhost:4000/v1/media/01M2SQSRPWVG87Y0TD6C77XE61/uses \
-H "Authorization: Bearer rw_your_key_here"
{
"uses": [
{ "kind": "brand", "id": "01M1VFRWE7VHP3H54ESRJQ0SAJ", "label": "Brand Brand 1: Logo" }
]
}

Fragen Sie, bevor Sie löschen. Ein leeres uses ist die einzige sichere Antwort.

POST /v1/media/{id}/rename nimmt { "name": "..." }, 1 bis 200 Zeichen, und behält die Endung der Datei, was auch immer Sie tippen: Eine .png bleibt eine .png. Verweise laufen über die ID, sodass nichts, was die Datei verwendet, es bemerkt. POST /v1/media/{id}/delete entfernt die Datei und ihre Bytes und antwortet mit dem Speicher, wie er jetzt steht. Jeder dieser Marken-Plätze, der sie hielt, wird im selben Schritt geleert; ein noch wartender Beitrag behält seinen Inhalt und wird ohne das Bild gerendert.

Gerenderte Clips​

Die Clips, die ein Render erzeugt hat, werden getrennt von Uploads im Clip-Anteil des Speichers gehalten und sind die Karte Gerenderte Clips auf der Seite Medien. Behaltene direkte Exporte, die Videos, die mit Clip erstellen im Clip-Studio oder über die API erstellt wurden, sind hier ebenfalls aufgelistet, mit source: "export", wo der Clip eines Beitrags source: "post" sagt. Ist der Clip-Anteil voll, wird der älteste Clip beider Arten entfernt, um Platz für einen neuen zu schaffen, mit derselben Wirkung auf seine Beiträge wie beim Löschen (unten); ein Clip, der in diesem Moment übergeben wird, wird übergangen.

Der Clip eines Beitrags hat ein kleines Vorschaubild daneben. Das Vorschaubild ist hier nicht aufgelistet, nimmt seinen Platz im selben Anteil ein und verschwindet mit seinem Clip.

curl http://localhost:4000/v1/media/renders \
-H "Authorization: Bearer rw_your_key_here"
{
"clips": [
{
"id": "01M2SQPAPH4YF66ZKK5Y5XA9Y7",
"kind": "video",
"mimeType": "video/mp4",
"byteSize": 740641,
"ratio": "9x16",
"locale": "en",
"width": 1080,
"height": 1920,
"durationMs": 10000,
"createdAt": "2026-09-18T07:46:28.697Z",
"templateId": "tpl_dd7e6b264fb8",
"templateName": "Big number",
"channelName": "Channel 10 en",
"url": "http://localhost:4000/v1/assets/01M2SQPAPH4YF66ZKK5Y5XA9Y7/download?exp=1789721392&sig=ae02f120693a5043646e04d5bd65a899deea94add53450aea4e9e510053bf1fb",
"needed": false,
"neededBecause": "Awaiting approval",
"source": "post"
}
]
}

GET /v1/media/renders/{id}/reuse antwortet unter reuse mit dem, woraus ein Clip gemacht wurde: seine Vorlage, variant, version, brandId, ratio, locale und data, der Inhalt in der eigenen Form der Vorlage mit locales für weitere Sprachen. Es ist dieselbe Antwort wie die Wiederverwendung eines Beitrags, für den Clip eines Beitrags oder einen behaltenen direkten Export, bereit, nach einer Änderung an POST /v1/direct-export/video gesendet zu werden. Es liest und ändert nichts.

POST /v1/media/renders/{id}/copy, In die Mediathek kopieren auf der Karte Gerenderte Clips, legt eine Kopie eines Clips, eines Beitrags oder eines behaltenen direkten Exports, als eigene Datei in die Mediathek, um sie wie einen Upload erneut zu verwenden: als Intro oder Outro einer Marke oder als Video im Inhalt einer Vorlage. Der Clip bleibt, wo er ist, und rotiert wie zuvor; die Kopie bleibt, bis sie gelöscht wird. Sie wird nach den eigenen Regeln der Mediathek gespeichert, es gelten also die Größe einer Datei und das Speicherkontingent, und eine Ablehnung ist die, die ein Upload derselben Datei erhielte. Der Text kann die Datei benennen, { "name": "Summer teaser" }, deren Endung immer die des Clips ist, und ein eigener Name, den die Mediathek schon enthält, ist ein 409. Weggelassen ist der Name die Vorlage, das Bildformat, die Sprache und der Tag, an dem gerendert wurde, mit -2, -3 frei gemacht, wo er vergeben ist; zweimal zu kopieren erzeugt also zwei Dateien. Eine Clip-ID, die weg ist, entfernt, um Platz zu schaffen, oder gelöscht, ist ein 404. Die Antwort ist 201 mit der Datei der Mediathek, wie bei einem Upload:

{
"file": {
"id": "01M2SR3V8N0Q4K7XG5D2W9PJ6T",
"name": "Big number 9x16 en 2026-10-03.mp4",
"mimeType": "video/mp4",
"kind": "Video",
"byteSize": 740641,
"createdAt": "2026-10-03T09:12:44.120Z",
"uploadedBy": "user:enterprise2-1@example.com",
"ref": "media://01M2SR3V8N0Q4K7XG5D2W9PJ6T",
"url": "http://localhost:4000/v1/assets/01M2SR3V8N0Q4K7XG5D2W9PJ6T/download?exp=..."
},
"storage": { "maxMb": 500, "usedBytes": 28182659 }
}

neededBecause sagt, worauf ein Beitrag wartet, der den Clip noch verwendet. POST /v1/media/renders/{id}/delete löscht den Clip trotzdem, und jeder Beitrag seines Auftrags, der noch auf ihn wartet, wird mit ihm abgebrochen, was cancelled in der Antwort zählt:

{ "deleted": true, "cancelled": 1, "storage": { "maxMb": 500, "usedBytes": 27442018 } }

Die einzige Ablehnung ist needed: true: Ein Beitrag wird in diesem Moment mit diesem Clip übergeben (Zustand PUBLISHING), und ihn zu löschen ist ein 409, bis das beendet ist. Ein Clip, dessen Beiträge übergeben wurden oder auf andere Weise geendet haben, wird nur aufbewahrt, und sein Löschen gibt Speicher frei; ein Link darauf, der damals übergeben wurde, antwortet dann mit 404.

POST /v1/storage/split verschiebt die Grenze zwischen den beiden, mit { "mediaSharePercent": 30 }; das ist die Karte Speicheraufteilung auf der Seite Medien. Es ändert, wofür der bezahlte Speicher des Workspaces verwendet wird, und ist daher Sache des angemeldeten Inhabers: Ein Schlüssel wird abgelehnt, was er auch enthält. Es muss eine ganze Zahl sein, und der Block split in jeder Speicherantwort nennt den Bereich, den sie annehmen darf; keine Seite darf unter ein Zehntel oder unter das fallen, was sie schon hält, und ein Wert außerhalb des Bereichs ist ein 403.

Signierte Downloads​

GET /v1/assets/{id}/download liefert die Bytes jedes Assets: eines gerenderten Clips, einer Markendatei, einer Datei der Mediathek, eines behaltenen direkten Exports oder von etwas, das der KI-Assistent erstellt hat. Es wird durch exp und sig in der URL autorisiert und nicht durch ein Bearer-Token, weil diese URLs an einen Browser übergeben und in ein <video src> eingefügt werden und ein Video-Element keinen Header Authorization anhängen kann. Die Signatur nennt genau ein Asset und läuft ab, und das macht es sicher. Eine falsche oder abgelaufene Signatur ist ein 403: Fordern Sie eine neue Adresse an. Es unterstützt Range, damit ein Browser springen kann. Fügen Sie &save=1 und &name= für den Dateinamen hinzu, damit die Datei gespeichert statt geöffnet wird. Eine Schrift wird für jeden Origin geliefert (Access-Control-Allow-Origin: *), sodass eine Webseite oder eine Mail-App anderswo sie über ihre signierte Adresse laden kann; sonst nichts.

GET /v1/assets/{id} liefert Metadaten ohne die Bytes und nimmt ein Bearer-Token. Es antwortet nur für die gerenderten Clips von Beiträgen: Eine Mediathek-ID ist hier ein 404, weil die Metadaten einer Mediathek-Datei unter /v1/media liegen, ebenso die eines behaltenen direkten Exports, den /v1/media/renders auflistet.

curl http://localhost:4000/v1/assets/01M2SQPAPH4YF66ZKK5Y5XA9Y7 \
-H "Authorization: Bearer rw_your_key_here"
{
"assetId": "01M2SQPAPH4YF66ZKK5Y5XA9Y7",
"kind": "video",
"ratio": "9x16",
"locale": "en",
"mimeType": "video/mp4",
"width": 1080,
"height": 1920,
"durationMs": 10000,
"byteSize": 740641,
"sha256": "19c629bfd5a1ec22a1fb9baed2c043ce23d523d01c5886ffd0d4278be444e5c8",
"url": "http://localhost:4000/v1/assets/01M2SQPAPH4YF66ZKK5Y5XA9Y7/download?exp=1789722005&sig=48542502fdc9cc4b9d0368cefd53b04b7f71f696a3926e0f7e4aadfb9ee5fa23",
"expiresAt": "2026-09-18T09:00:05.000Z"
}

Prüfen Sie sha256 nach einem Download. Eine signierte URL ist keine Zugangsberechtigung zum Speichern: Behalten Sie die ID und fordern Sie eine neue URL an.

Häufige Fehler​

JSON senden. Der Upload ist multipart. Ein JSON-Text ist ein 415, der das sagt. Senden Sie die Datei als Formularteil, oder verwenden Sie /v1/media/import, wenn Sie eine Adresse halten.

Content-Type: multipart/form-data selbst setzen. Er muss die Boundary tragen. Lassen Sie Ihren HTTP-Client ihn schreiben.

Mehr als eine Datei senden. Eine je Anfrage. Das Limit wird durchgesetzt, es ist keine Empfehlung.

Eine Datei über ihre signierte URL referenzieren. Der Inhalt nimmt media://{id}, und eine Webadresse in einem Bildfeld wird abgelehnt. Eine signierte URL wäre eine URL, die abläuft, und jede andere Adresse ruft der Renderer nicht ab.

Eine Datei löschen, ohne /uses zu prüfen. Eine Marke verliert ihr Logo, und der nächste Clip wird ohne eines gerendert.

Dem Typ-Tipp von curl bei einer Schrift vertrauen. Geben Sie ;type=font/otf ausdrücklich an, oder verlassen Sie sich auf die Endung, was der Server tut.