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"
}
}
}'