Mediafiles
Producties kunnen mediafiles bevatten: affiches, scenebeelden, trailers, technische fiches, en meer. Elke mediafile heeft een categorie (mediafile_type) en een of meer downloadbare bestanden.
Mediafiles ophalen voor een productie
POST /entities/filter
Content-Type: application/json[
{ "type": "type", "value": "mediafile" },
{
"type": "selection",
"key": ["podiumnet:1|properties.ref_productions.value"],
"value": "{production_id}",
"match_exact": true
}
]Filteren op categorie
[
{ "type": "type", "value": "mediafile" },
{
"type": "selection",
"key": ["podiumnet:1|properties.ref_productions.value"],
"value": "{production_id}",
"match_exact": true
},
{
"type": "selection",
"key": ["podiumnet:1|properties.mediafile_type.value"],
"value": "poster",
"match_exact": true
}
]Responsstructuur
{
"count": 3,
"results": [
{
"id": "MF-ABC123",
"_id": "uuid-here",
"type": "mediafile",
"metadata": [
{ "key": "mediafile_type", "value": "scene_images" },
{ "key": "title", "value": "Repetitiebeeld 1" },
{ "key": "description", "value": "Foto van de generale repetitie" },
{ "key": "copyright", "value": "© Jan Fotograaf" }
],
"relations": [
{ "key": "PR-ABC123", "type": "refProductions" }
],
"identifiers": ["uuid-here", "MF-ABC123", "repetitiebeeld-1.jpg"],
"display_filename": "transcoded-repetitiebeeld-1.jpg",
"audit": {
"created": { "at": "2026-05-20T16:54:48Z", "by": "user@example.com" },
"updated": { "at": "2026-05-20T16:58:32Z", "by": "user@example.com" }
}
}
],
"skip": 0,
"limit": 20
}Velden
| Veld | Beschrijving |
|---|---|
id | Leesbaar mediafile-ID (bv. MF-ABC123) |
metadata[mediafile_type] | Categorie (zie tabel hieronder) |
metadata[title] | Titel van de mediafile |
metadata[description] | Beschrijving |
metadata[copyright] | Copyrightvermelding |
relations[refProductions] | ID van de gekoppelde productie |
identifiers | Bevat o.a. de originele bestandsnaam |
display_filename | Bestandsnaam van de getranscode versie |
Categorietypes
mediafile_type | Categorie |
|---|---|
poster | Affiche |
scene_images | Scenebeelden |
trailer | Trailer |
review | Recensies |
rider | Technische info |
social_media | Social media posts |
music_fragments | Muziekfragmenten |
framing | Omkadering |
Meerdere bestanden per categorie
Eén productie kan meerdere mediafiles hebben met hetzelfde mediafile_type. Dit is bewust — bv. bij rider kunnen zowel een technische fiche als een rider aanwezig zijn. Alle bestanden worden teruggegeven.
Download-URL ophalen
Gebruik het volgende endpoint om getekende download-URLs op te halen voor zowel het originele als het getranscode bestand:
GET __API_BASE_URL__/mediafiles/{id}/download-urls
Authorization: Bearer {token}
X-tenant-id: podiumnetRespons:
{
"original_file_location": "https://storage.example.com/download-with-ticket/{filename}?ticket_id={uuid}",
"transcode_file_location": "https://storage.example.com/download-with-ticket/{display_filename}?ticket_id={uuid}"
}| Veld | Beschrijving |
|---|---|
original_file_location | Getekende URL naar het origineel geüploade bestand |
transcode_file_location | Getekende URL naar de getranscode versie (JPEG voor afbeeldingen, gelijk aan origineel voor PDF's) |
Bestand downloaden
Download rechtstreeks via de URL — geen extra Authorization-header nodig (het ticket is ingebakken in de URL):
GET {original_file_location}URL-levensduur
Getekende URLs vervallen na ±1 uur. Sla ze niet op — vraag telkens een nieuwe URL op via /mediafiles/{id}/download-urls wanneer je het bestand nodig hebt.
Volledig integratieoverzicht
Hieronder de volledige flow om mediafiles van een productie op te halen en te downloaden:
Stap 1 — Authenticeer
Haal een OAuth-token op of gebruik een statische JWT. Zie Authenticatie.
Stap 2 — Zoek de productie
POST __API_BASE_URL__/entities/filter?limit=20
Content-Type: application/json
[
{ "type": "type", "value": "production" },
{ "type": "text", "key": ["podiumnet:1|properties.title.value"], "value": "Hamlet*" },
{ "type": "selection", "key": ["podiumnet:1|properties.ref_venues.value"], "value": "{venue_id}", "match_exact": true }
]Noteer het id van de gewenste productie uit de resultaten (bv. PR-ABC123).
Stap 3 — Controleer de beschikbaarheidsstatus
Haal de productie op en bekijk de statusvelden in metadata (bv. posters_status). Zie Producties.
Stap 4 — Haal mediafiles op per categorie
POST __API_BASE_URL__/entities/filter?limit=20
Content-Type: application/json
[
{ "type": "type", "value": "mediafile" },
{ "type": "selection", "key": ["podiumnet:1|properties.ref_productions.value"], "value": "PR-ABC123", "match_exact": true },
{ "type": "selection", "key": ["podiumnet:1|properties.mediafile_type.value"], "value": "poster", "match_exact": true }
]Stap 5 — Haal de download-URL op
GET /mediafiles/{id}/download-urlsStap 6 — Download het bestand
GET {original_file_location}