Sidecar metadata Sidecar metadata

Sidecar metadata

When scanning a storage, you can attach metadata via sidecar files. Those can be in the format XML, CSV or JSON. You also have the ability to call an external URL to convert the sidecar metadata into the format required by iconik. The metadata has to match the Metadata View that has been associated to the storage in the Scan settings.

File naming

A sidecar file will be matched if it has the same name as the original file but with an .xml, .csv or .json extension. Either replacing the original extension or in addition to it.

Examples:

filename.mp4 filename.json

filename.mp4 filename.mp4.xml

Sidecar metadata format

The format is the same as the API for metadata. An example JSON sidecar looks like this:

{
    "metadata_values": {
        "_gcvi_tags": {
            "field_values": [
                {
                    "value": "comedy"
                },
                {
                    "value": "romance"
                },
                {
                    "value": "drama"
                }
            ]
        },
        "episode": {
            "field_values": [
                {
                    "value": "2"
                }
            ]
        },
        "path": {
            "field_values": [
                {
                    "value": "/movies/movie_1/movie-001.mp4"
                }
            ]
        },
        "season": {
            "field_values": [
                {
                    "value": "1"
                }
            ]
        }
    }
}

Example XML sidecar:

<metadata_view>
<metadata_values>
<_gcvi_tags>
<field_values>
<score>1</score>
<value>Car</value>
</field_values>
</_gcvi_tags>
<age>
<field_values>
<value>2</value>
</field_values>
</age>
<description>
<field_values>
<value>Description</value>
</field_values>
</description>
<first_name>
<field_values>
<value>Test Name</value>
</field_values>
</first_name>
</metadata_values>
</metadata_view>

 

Example CSV sidecar:

_gcvi_tags,age,description,first_name
Car (1),2,Description,Test Name

 

Metadata conversion

If you don’t have sidecars that has the correct format you can call an external URL for translation. It will do a POST request to the URL with the content of the file, and expect a JSON in the format above as a result.

Example Google Cloud Function (In Python) that converts a file of the format key=value to an iconik metadata JSON:

 

import functions_framework

@functions_framework.http
def hello_http(request):

data = request.get_data().decode("utf-8")

print("DATA: %s" % str(data))

res = {
"metadata_values": {
}
}

for line in data.split("\n"):
print("LINE: %s" % line)
if "=" in line:
key, value = line.split("=")
res['metadata_values'][key] = {
"field_values": [
{
"value": value
},
]
}

print("RES: %s" % str(res))
return res

Example key value pair input to the above function:

_gcvi_tags=Car (1)
age=2
description=Video of a car
first_name=John