Asset-Import
Import AssetPOST /asset/import/
Description
Asynchronously import an asset into medialoopster. Each request to import an asset creates a new ImportLog object for that asset to track it's status.
Properties
Title
Import an asset.
URL
/asset/import/
Method
POST
Headers
Name | Value | Required | Description |
---|---|---|---|
Authorization | Token xxxxx | yes | Authorization token required to communicate with the API. |
Content-Type | application/json | no | If the request body is sent as raw data instead of form-data this header needs to be set as well. |
Data Params
Die generelle Struktur eines Asset welches durch JSON repräsentiert wird ist in zwei Bereiche aufgeteilt: Kopfdaten zur Spezifizierung des Asset und asset-bezogene Metadaten welche durch den Key 'asset' eingeleitet werden. Welche Daten für einen erfolgreichen Import notwendig sind, hängt wesentlich von dem Produktionszustand (abgebildet durch die Werte für 'is_production' und 'is_archive') des zu importierenden Assets ab. In jeden Fall stellen die mit * markierten Felder die Mindestanforderungen an den Import eines Assets und sind daher Pflicht.
is_archive = True && is_production = True
Das Asset wurde bereits archiviert, liegt aber trotzdem noch auf einem online storage, sodass alle technischen Metadaten ausgelesen werden können. In diesem Fall sind zusätzlich die mit ** markierten Felder notwendig um auf das Asset im Archivsystem zuzugreifen und daher Pflicht.
is_archive = True && is_production = False
Sollte ein Asset ausschließlich im Archiv liegen ist es nicht ohne weiteres möglich die, für eine korrekte Darstellung des Assets notwendigen, technischen Metadaten auszulesen. Daher werden zusätzlich (inklusive **) die mit *** markierten Felder benötigt.
Wenn nicht anders gekennzeichnet, sind Felder mit vorgegebenen Auswahlmöglichkeiten optional und erhalten intern den erstgenannten Wert. Nachfolgend wird die Struktur näher erläutert.
Basis
{ "type": [video|audio|image], "production": <production_name>, "rewrap_proxy": [false|true], "asset": {...}, "move_asset": [false|true], "asset_destination": <device_name> }
Name | Typ | Vorgabe | Beschreibung | Abhängigkeit |
---|---|---|---|---|
type* | String | [video|audio|image] | Art des zu importierenden Assets. | |
production* | String | Name der Produktion zu der das Asset hinzugefügt werden soll. | Muss im System existieren. | |
rewrap_proxy | Boolean | [false|true] | Proxymaterial neu erstellen (false) oder vorhandenes Proxymaterial neu verpacken (true). | Kann nur als 'true' gewertet werden wenn 'path_proxy' gesetzt und erreichbar ist. |
asset | Object | Asset-bezogene Metadaten abhängig von der Asset-Art. | ||
move_asset | Boolean | [false|true] | Asset-Essenz beim Import am ursprünglichen Speicherplatz belassen (false) oder zu einem vom System verwalteten Bereich verschieben (true). Mit asset_destination kann ein Zielbereich angegeben werden. Ansonsten wird der Standard-Bereich für die Art des zu importierenden Assets in der Zielproduktion verwendet. | |
asset_destination | String | Name des Bereichs in den die Asset-Essenz verschoben werden soll. | Muss im System existieren und wird nur beachtet wenn 'move_asset' auf 'true' gesetzt ist. |
Video-Asset
{ "asset_meta": { {...}, "annotation_markers": [ { "time": frames, "text": "annotation_text", "user": "username" }, ... ], "display_aspect_ratio": "16:9", "duration": frames_int, "format": "QuickTime / MOV", "fps": framerate_fraction, "height": 576, "width": 720, "offset_frames": frames_int, "offset_string": "smpte_timecode" } "archive_details": {...}, "keywords": {...} }
Name | Typ | Vorgabe | Beschreibung |
---|---|---|---|
asset_meta | Object | ||
annotation_markers | Array | Kommentar-Metadaten | |
duration*** | Number (Integer) | Die Dauer des Videos in Frames | |
fps*** | Number (Fraction) | Die Bildfrequenz des Videomaterials in Bilder pro Sekunde | |
offset_frames | Number (Integer) | Zeitlicher Ursprung in Frames | |
offset_string | String | Zeitlicher Ursprung im SMPTE-Format (wird ignoriert wenn 'offset_frames' gesetzt ist) | |
display_aspect_ratio | String | Seitenverhältnis des Videomaterials | |
height*** | Number (Integer) | Bildhöhe in Pixel | |
width*** | Number (Integer) | Bildbreite in Pixel | |
archive_details | Object | Archiv-Metadaten | |
keywords | Object | Schlagwort-Metadaten |
Audio-Asset
{ "asset_meta": { {...} }, "technical_details": { "name": "", "filename": "", "nb_Streams": 1, "formate_name": "", "format_long_name": "", "start_time": "", "duration": "", "size": "", "bit_rate": "", "major_brand": "", "minor_version": "", "compatible_brands": "", "create_time": "", "encoder": "", "time_code": "", "com_apple_final": "" } "archive_details": {...}, "keywords": {...} }
Bild-Asset
{ "asset_meta": { {...} }, "technical_details": {}, "archive_details": {...}, "keywords": {...} }
Metadaten-Basis
{ "name": "asset_name", "description": "asset_description", "date_crt": "YYYY[-MM[-DD]]", "date_add": "", "date_mod": "", "date_del": "YYYY[-MM[-DD]]", "status_asset_description": "", "is_archive": [false|true], "is_production": [true|false], "path_file": "/path/to/original/highres.ext", "path_proxy": "/path/to/original/proxy.ext", "approval": [0|1], "meta_field_store": { "custom.key.1": "my value", "custom-key-2": 123, ... } }
Name | Type | Values | Description |
---|---|---|---|
name* | String | Name of the Asset | |
description | String | A description for the asset | |
date_crt | String | The date when the asset's essence was created. The expected format is the extended UTC format according to ISO 8601: YYYY[-MM[-DD]] Changed in medialoopster 5.4.0 date_crt is now a datetime field. The new expected format is: YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] | |
date_add | String | The date when the asset was added to the medialoopster database. This field is set by medialoopster. | |
date_mod | String | The date when the asset's metadata was last modified. This field is set by medialoopster. | |
date_del | String | The date when the asset is due for deletion. The expected format is the extended UTC format according to ISO 8601: YYYY[-MM[-DD]] | |
status_asset_description | String | An additional explanation of the current status the asset is in. | |
is_archive | Boolean | [false|true] | Define if this asset is archived |
is_production | Boolean | [true|false] | Define if this asset is available on online storage |
path_file* | String | The path to the asset's essence as seen by medialoopster. | |
path_proxy | String | The path to previously generated preview material | |
approval | Number (Integer) | [0|1] | Define the approval status of the asset |
meta_field_store | Dictionary | Custom metadata (key → value pairs) |
Archiv-Details
{ "archive_handle": <file_handle>, "archive_type": [archive_std|archive_ltfs|archive_awps], "original_path": <path>, "tape_barcode": <barcode>, "tape_label": <label>, "tape_name": <name>, "archiware_archive_index": <index_name> }
Name | Type | Values | Description |
---|---|---|---|
archive_handle** | String | ||
archive_type** | String | [archive_std|archive_ltfs|archive_awps] | |
original_path** | String | ||
tape_barcode | String | ||
tape_label | String | ||
tape_name | String | ||
archiware_archive_index** | String | Is only required if the Archive-Type is set to "archive_awps". |
Schlagworte
{ <category>: [ <keyword>, ... ], ... }
Name | Typ | Beschreibung | Abhängigkeit |
---|---|---|---|
category | String | Name einer Schlagwortkategorie. Wird im System neu angelegt sofern nicht bereits vorhanden. | Schlagwortkategorien sind abhängig von der übergeordneten Asset-Art und werden separat verwaltet. |
keyword | String | Name eines Schlagworts. Wird im System neu angelegt sofern nicht bereits vorhanden. | Schlagworte sind abhängig von der übergeordneten Asset-Art und werden separat in Schlagwortkategorien verwaltet. |
Success Response
201 - Created
{ "asset_path": "/path/to/video/asset/file.mov", "status": "asset_creation_completed", "warning": {}, "error": "", "asset_import_id": 43, "payload": "{ u'production': u'My Production', u'type': u'video', u'asset': { u'asset_meta': { u'path_file': u'/path/to/video/asset/file.mov', u'name': u'Video asset name' } } }", "asset_type": "videoasset" }
Error Response
Work in progress!
406 - Not Acceptable
{ "type": "'path_file'", "detail": "You did not provide a valid asset filepath." }
Sample Call
curl -X POST http://medialoopster-url/api/asset/import/ -d '{ "production": "My Production", "type": "video", "asset": { "asset_meta": { "name": "Video asset name", "path_file": "/path/to/video/asset/file.mov" } } }'