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 

JSON Basis Struktur
{
	"type": [video|audio|image],
	"production": <production_name>,
	"rewrap_proxy": [false|true],
	"asset": {...},
	"move_asset": [false|true],
	"asset_destination": <device_name>
}
NameTypVorgabeBeschreibungAbhä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_proxyBoolean[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.

assetObject
Asset-bezogene Metadaten abhängig von der Asset-Art.
move_assetBoolean[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_destinationString
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

Video Asset Struktur
{
	"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": {...}
}
NameTypVorgabeBeschreibung
asset_metaObject

annotation_markersArray
Kommentar-Metadaten
duration***

Number (Integer)


Die Dauer des Videos in Frames
fps***Number (Fraction)
Die Bildfrequenz des Videomaterials in Bilder pro Sekunde
offset_framesNumber (Integer)
Zeitlicher Ursprung in Frames
offset_stringString
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_detailsObject
Archiv-Metadaten
keywordsObject
Schlagwort-Metadaten

Audio-Asset

Audio Asset title
 {
	"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

Image Asset title
{
	"asset_meta": {
		{...}
	},
	"technical_details": {},
	"archive_details": {...},
	"keywords": {...}
}

Metadaten-Basis

Metadaten Basis Struktur
{
	"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,
        ...
    }
}
NameTypeValuesDescription
name*String
Name of the Asset
descriptionString
A description for the asset  
date_crtString

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_addString
The date when the asset was added to the medialoopster database. This field is set by medialoopster.
date_modString
The date when the asset's metadata was last modified. This field is set by medialoopster.
date_delString
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_descriptionString
An additional explanation of the current status the asset is in.
is_archiveBoolean[false|true]Define if this asset is archived
is_productionBoolean[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_proxyString
The path to previously generated preview material
approvalNumber (Integer)[0|1]Define the approval status of the asset
meta_field_storeDictionary
Custom metadata (key → value pairs)

Archiv-Details

Archiv Detail Struktur
{
	"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>
}
NameTypeValuesDescription
archive_handle**String

archive_type**String[archive_std|archive_ltfs|archive_awps]
original_path**String

tape_barcodeString

tape_labelString

tape_nameString

archiware_archive_index**

String
Is only required if the Archive-Type is set to "archive_awps".

Schlagworte

Schlagwort Struktur
{
	<category>: [
		<keyword>,
		...
	],
	...
}
NameTypBeschreibungAbhängigkeit
categoryStringName einer Schlagwortkategorie. Wird im System neu angelegt sofern nicht bereits vorhanden.Schlagwortkategorien sind abhängig von der übergeordneten Asset-Art und werden separat verwaltet.
keywordStringName 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"
        }
    }
  }'