Image Metadata

Table of contents

Introduction

Looklet offers the export of image metadata as either XMP or JSON sidecar files together with the final images.

Sidecar File Naming

The sidecar files will be named the same as the image file (but with the .xmp or .json extension) and will be stored together with the exported image.

XMP

XMP metadata uses a custom Looklet namespace (http://ns.looklet.com) and can be embedded in the image files or delivered as XMP sidecar files.

Fields

The XMP metadata uses the http://ns.looklet.com namespace, with the prefix looklet. The structure of the data and the type of the fields is described in the table below.

METADATA FIELD     TYPE DETAILS
looklet:itemId     Number Looklet id of the main item
looklet:externalId     String Barcode/SKU of the main item
looklet:studio     String Name of the studio where the main item was shot
looklet:designer     String Name of the designer
looklet:category     String The category of the main item
looklet:batches     Array of Strings The names of the batches the item belongs to
looklet:colorLabel     Strings Color label (shown in Look Creator)
looklet:exportType     String One of: LOOK, GHOST, FABRIC_DETAIL, LOOK_DETAIL, CUT_OUT
looklet:pose     String Looklet pose - Ella / Elena / David etc.
looklet:angle     String Only available for exportType=LOOK
looklet:imageName     String  
looklet:model looklet:modelName   String Only available for exportType=LOOK
  looklet:modelExpiry   String Date formatted as YYYY-MM-DD
  looklet:modelExpiryTimestamp   Number UNIX Epoch time
  looklet:modelLicenseNotes   String A free text field containing notes about this model license
looklet:background looklet:id   Number Only available for exportType=LOOK
  looklet:variantId   Number  
looklet:stylingItems     Array List of styling items used in look
Only available for exportType=LOOK
  looklet:itemId   Number Looklet id of the styling item
  looklet:externalId   String Barcode/SKU of the styling item
  looklet:designer   String Name of the designer
  looklet:category   String The category of the styling item
  looklet:batches   Array of Strings The names of the batches the styling item belongs to
  looklet:customProperties   Array Custom properties defined by the customer for the styling item, in key-value pairs.
    looklet:key:looklet:value   String : String
looklet:createdBy looklet:name*   String Personal information, optional
  looklet:email*   String Personal information, optional
  looklet:timestamp   Number UNIX Epoch time
looklet:exportedBy looklet:name*   String Personal information, optional
  looklet:email*   String Personal information, optional
  looklet:timestamp   Number UNIX Epoch time
looklet:customProperties     Array Custom properties defined by the customer for main item, in key-value pairs
  looklet:key:looklet:value   String : String  
looklet:comments     Array List of comments for main item
  looklet:commentAuthor looklet:name* String Personal information, optional
    looklet:email* String Personal information, optional
    looklet:timestamp String UNIX Epoch time
  looklet:commentText   String  

* Personal Information

It is possible to configure whether to include personal information (names and email addresses) in the metadata

Examples

Look image metadata without personal information
Image file
ABCD-1234_1_1.jpg
Sidecar file
ABCD-1234_1_1.xmp
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 6.1.11">
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description rdf:about=""
        xmlns:looklet="http://ns.looklet.com">
      <looklet:itemId>1234</looklet:itemId>
      <looklet:externalId>ABCD-1234</looklet:externalId>
      <looklet:studio>Studio 1</looklet:studio>
      <looklet:designer>DesignerName</looklet:designer>
      <looklet:category>Blouse</looklet:category>
      <looklet:batches>
        <rdf:Bag>
          <rdf:li>example-batch1</rdf:li>
          <rdf:li>example-batch2</rdf:li>
        </rdf:Bag>
      </looklet:batches>
      <looklet:colorLabel>GREEN</looklet:colorLabel>
      <looklet:exportType>LOOK</looklet:exportType>
      <looklet:pose>Elena</looklet:pose>
      <looklet:angle>Front</looklet:angle>
      <looklet:imageName>ABCD-1234_1_1</looklet:imageName>
      <looklet:model>
        <rdf:Description>
          <looklet:modelName>Elena E1</looklet:modelName>
          <looklet:modelExpiry>2028-03-01</looklet:modelExpiry>
          <looklet:modelExpiryTimestamp>1835478000000</looklet:modelExpiryTimestamp>
          <looklet:modelLicenseNotes>Print: Yes&#xA;Shoot Date: October 4, 2019&#xA;An additional extension of 4 years will begin automatically.&#xA;The contract has been extended for an additional 4 years on 2 May, 2023&#xA;Product can stay online until sell-through&#xA;</looklet:modelLicenseNotes>
        </rdf:Description>
      </looklet:model>
      <looklet:background>
        <rdf:Description>
          <looklet:backgroundId>1234</looklet:backgroundId>
          <looklet:backgroundVariantId>4567</looklet:backgroundVariantId>
        </rdf:Description>
      </looklet:background>
      <looklet:stylingItems>
        <rdf:Bag>
          <rdf:li>
            <rdf:Description>
              <looklet:itemId>1255</looklet:itemId>
              <looklet:externalId>DEF-456</looklet:externalId>
              <looklet:designer>DesignerName</looklet:designer>
              <looklet:category>Pants</looklet:category>
              <looklet:batches>
                <rdf:Bag>
                  <rdf:li>example-batch1</rdf:li>
                  <rdf:li>example-batch2</rdf:li>
                </rdf:Bag>
              </looklet:batches>
              <looklet:customProperties>
                <rdf:Bag>
                  <rdf:li>
                    <rdf:Description>
                      <looklet:key>CustomDate</looklet:key>
                      <looklet:value>2024-01-20</looklet:value>
                    </rdf:Description>
                  </rdf:li>
                </rdf:Bag>
              </looklet:customProperties>
            </rdf:Description>
          </rdf:li>
          <rdf:li>
            <rdf:Description>
              <looklet:itemId>1431</looklet:itemId>
              <looklet:externalId>GHI-789</looklet:externalId>
              <looklet:designer>DesignerName</looklet:designer>
              <looklet:category>Shoes</looklet:category>
              <looklet:batches>
                <rdf:Bag>
                  <rdf:li>example-batch1</rdf:li>
                  <rdf:li>example-batch2</rdf:li>
                </rdf:Bag>
              </looklet:batches>
            </rdf:Description>
          </rdf:li>
        </rdf:Bag>
      </looklet:stylingItems>
      <looklet:createdBy>
        <rdf:Description>
          <looklet:timestamp>1690359182774</looklet:timestamp>
        </rdf:Description>
      </looklet:createdBy>
      <looklet:exportedBy>
        <rdf:Description>
          <looklet:timestamp>1690542300804</looklet:timestamp>
        </rdf:Description>
      </looklet:exportedBy>
      <looklet:customProperties>
        <rdf:Bag>
          <rdf:li>
            <rdf:Description>
              <looklet:key>CustomDate</looklet:key>
              <looklet:value>2024-01-20</looklet:value>
            </rdf:Description>
          </rdf:li>
          <rdf:li>
            <rdf:Description>
              <looklet:key>CustomNumber1</looklet:key>
              <looklet:value>105</looklet:value>
            </rdf:Description>
          </rdf:li>
          <rdf:li>
            <rdf:Description>
              <looklet:key>CustomNumber2</looklet:key>
              <looklet:value>3.14</looklet:value>
            </rdf:Description>
          </rdf:li>
          <rdf:li>
            <rdf:Description>
              <looklet:key>CustomBoolean1</looklet:key>
              <looklet:value>True</looklet:value>
            </rdf:Description>
          </rdf:li>
          <rdf:li>
            <rdf:Description>
              <looklet:key>CustomBoolean2</looklet:key>
              <looklet:value>False</looklet:value>
            </rdf:Description>
          </rdf:li>
          <rdf:li>
            <rdf:Description>
              <looklet:key>CustomString1</looklet:key>
              <looklet:value>Custom String Here</looklet:value>
            </rdf:Description>
          </rdf:li>
          <rdf:li>
            <rdf:Description>
              <looklet:key>CustomString2</looklet:key>
              <looklet:value></looklet:value>
            </rdf:Description>
          </rdf:li>
        </rdf:Bag>
      </looklet:customProperties>
      <looklet:comments>
        <rdf:Bag>
          <rdf:li>
            <rdf:Description>
              <looklet:commentText>Comment text</looklet:commentText>  
              <looklet:commentAuthor>
                <rdf:Description>
                  <looket:timestamp>1690359182774</looket:timestamp>    
                </rdf:Description>
              </looklet:commentAuthor>  
            </rdf:Description>
          </rdf:li>
        </rdf:Bag>
      </looklet:comments>
    </rdf:Description>
  </rdf:RDF>
</x:xmpmeta>
<?xpacket end="r"?>
Ghost image metadata with personal information
Image file
ABCD-1234_ghost_1.png
Sidecar file
ABCD-1234_ghost_1.xmp
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 6.1.11">
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description rdf:about=""
        xmlns:looklet="http://ns.looklet.com">
      <looklet:itemId>1234</looklet:itemId>
      <looklet:externalId>ABCD-1234</looklet:externalId>
      <looklet:studio>Studio 1</looklet:studio>
      <looklet:designer>DesignerName</looklet:designer>
      <looklet:category>Dress</looklet:category>
      <looklet:batches>
        <rdf:Bag>
          <rdf:li>example-batch1</rdf:li>
          <rdf:li>example-batch2</rdf:li>
        </rdf:Bag>
      </looklet:batches>
      <looklet:colorLabel>GREEN</looklet:colorLabel>
      <looklet:exportType>GHOST</looklet:exportType>
      <looklet:pose>Elena</looklet:pose>
      <looklet:imageName>ABCD-1234_ghost_1</looklet:imageName>
      <looklet:createdBy>
        <rdf:Description>
          <looklet:name>John Doe</looklet:name>
          <looklet:email>john@doe.com</looklet:email>
          <looklet:timestamp>1690359182774</looklet:timestamp>
        </rdf:Description>
      </looklet:createdBy>
      <looklet:exportedBy>
        <rdf:Description>
          <looklet:name>John Doe</looklet:name>
          <looklet:email>john@doe.com</looklet:email>
          <looklet:timestamp>1715803584432</looklet:timestamp>
        </rdf:Description>
      </looklet:exportedBy>
        <looklet:customProperties>
          <rdf:Bag>
            <rdf:li>
              <rdf:Description>
                <looklet:key>CustomDate</looklet:key>
                <looklet:value>2024-01-20</looklet:value>
              </rdf:Description>
            </rdf:li>
            <rdf:li>
              <rdf:Description>
                <looklet:key>CustomNumber1</looklet:key>
                <looklet:value>105</looklet:value>
              </rdf:Description>
            </rdf:li>
            <rdf:li>
              <rdf:Description>
                <looklet:key>CustomNumber2</looklet:key>
                <looklet:value>3.14</looklet:value>
              </rdf:Description>
            </rdf:li>
            <rdf:li>
              <rdf:Description>
                <looklet:key>CustomBoolean1</looklet:key>
                <looklet:value>True</looklet:value>
              </rdf:Description>
            </rdf:li>
            <rdf:li>
              <rdf:Description>
                <looklet:key>CustomBoolean2</looklet:key>
                <looklet:value>False</looklet:value>
              </rdf:Description>
            </rdf:li>
            <rdf:li>
              <rdf:Description>
                <looklet:key>CustomString1</looklet:key>
                <looklet:value>Custom String Here</looklet:value>
              </rdf:Description>
            </rdf:li>
            <rdf:li>
              <rdf:Description>
                <looklet:key>CustomString2</looklet:key>
                <looklet:value></looklet:value>
              </rdf:Description>
            </rdf:li>
          </rdf:Bag>
        </looklet:customProperties>
        <looklet:comments>
          <rdf:Bag>
            <rdf:li>
              <rdf:Description>
                <looklet:commentText>Comment text</looklet:commentText>
                <looklet:commentAuthor>
                  <rdf:Description>
                    <looklet:name>John Doe</looklet:name>
                    <looklet:email>john@doe.com</looklet:email>
                    <looket:timestamp>1690359182774</looket:timestamp>
                  </rdf:Description>
                </looklet:commentAuthor>
              </rdf:Description>
            </rdf:li>
          </rdf:Bag>
        </looklet:comments>
    </rdf:Description>
  </rdf:RDF>
</x:xmpmeta>
<?xpacket end="r"?>

JSON

Fields

The JSON sidecar file will include the fields listed in the table below.

METADATA FIELD     JSON TYPE DETAILS
itemId     Number Looklet id of the main item
externalId     String Barcode/SKU of the main item
studio     String Name of the studio where the main item was shot
designer     String Name of the designer
category     String The category of the main item
batches     Array of Strings Comma-separated list of batch names
colorLabel     Strings Color label (shown in Look Creator)
exportType     String One of: LOOK, GHOST, FABRIC_DETAIL, LOOK_DETAIL, CUT_OUT
pose     String Looklet pose - Ella / Elena / David etc.
angle     String Only available for exportType=LOOK
imageName     String  
model modelName   String Only available for exportType=LOOK
  id   Number  
  variantId   Number  
  modelExpiry   String Date formatted as yyyy-MM-dd
  modelExpiryTimestamp   Number UNIX Epoch time
  modelLicenseNotes   String A free text field containing notes about this model license.
scene# id   Number Only available for exportType=LOOK
  variantId   Number  
stylingItems     Array List of styling items used in look
Only available for exportType=LOOK
  itemId   Number Looklet id of the styling item
  variantId   Number Looklet variant id of the styling item
  externalId   String Barcode/SKU of the styling item
  studio   String Name of the studio where the styling item was shot
  designer   String Name of the designer
  category   String The category of the styling item
  batches   Array of Strings Comma-separated list of batch names
  createdBy name* String Personal information, optional
    email* String Personal information, optional
    timestamp Number UNIX Epoch time
  customProperties   Array Custom properties defined by the customer for the styling item, in key-value pairs.
    <key>:<value>   String : String
createdBy name*   String Personal information, optional
  email*   String Personal information, optional
  timestamp   Number UNIX Epoch time
exportedBy name*   String Personal information, optional
  email*   String Personal information, optional
  timestamp   Number UNIX Epoch time
customProperties     Array Custom properties defined by the customer for main item, in key-value pairs.
  <key>:<value>   String : String  
comments     Array List of comments for main item.
  createdBy name* String Personal information, optional
    email* String Personal information, optional
    timestamp Number UNIX Epoch time
  comment   String  

* Personal Information

It is possible to configure whether to include personal information (names and email addresses) in the metadata files

Examples

Look image metadata without personal information
Image file
ABCD-1234_1_1.jpg
Sidecar file
ABCD-1234_1_1.json
{
    "itemId": 1234,
    "externalId": "ABCD-1234",
    "studio": "Studio 1",
    "designer": "DesignerName",
    "category": "Blouse",
    "batches": [
        "example-batch1",
        "example-batch2"
    ],
    "colorLabel": "GREEN",
    "exportType": "LOOK",
    "pose": "Elena",
    "angle": "Front",
    "imageName": "ABCD-1234_1_1",
    "model": {
        "id": 1234,
        "variantId": 3456,
        "modelName": "Elena E1",
        "modelExpiry": "2024-12-31",
        "modelExpiryTimestamp": 1697625200000,
        "modelLicenseNotes": "Print: Yes\nShoot Date: October 4, 2019\nUsage shall start 6 months from the shoot date"
    },
    "scene": {
        "id": 1234,
        "variantId": 4567
    },
    "stylingItems": [
        {
            "itemId": 1255,
            "variantId": 12551,
            "externalId": "DEF-456",
            "studio": "Studio 1",
            "designer": "DesignerName",
            "category": "Pants",
            "batches": [
                "example-batch1",
                "example-batch2"
            ],
            "createdBy": {
                "timestamp": 1510669991846
            },
            "customProperties": {
                "CustomDate1": "2020-06-20",
                "CustomDate2": "2020-12-31",
                "CustomNumber1": "105",
                "CustomNumber2": "20",
                "CustomBoolean1": "True",
                "CustomBoolean2": "False",
                "CustomString1": "Custom String Here",
                "CustomString2": ""
            }
        },
        {
            "itemId": 1431,
            "variantId": 14311,
            "externalId": "GHI-789",
            "studio": "Studio 1",
            "designer": "DesignerName",
            "category": "Shoes",
            "batches": [
                "example-batch1",
                "example-batch2"
            ],
            "createdBy": {
                "timestamp": 1566920909148
            },
            "customProperties": {
                "CustomDate1": "2020-03-20",
                "CustomDate2": "2020-10-31",
                "CustomNumber1": "1050",
                "CustomNumber2": "15.5",
                "CustomBoolean1": "True",
                "CustomBoolean2": "False",
                "CustomString1": "Custom String Here",
                "CustomString2": ""
            }
        }
    ],
    "createdBy": {
        "timestamp": 1566920909148
    },
    "exportedBy": {
        "timestamp": 1567094931323
    },
    "customProperties": {
        "CustomDate1": "2020-01-20",
        "CustomDate2": "2020-12-31",
        "CustomNumber1": "105",
        "CustomNumber2": "3.14",
        "CustomBoolean1": "True",
        "CustomBoolean2": "False",
        "CustomString1": "Custom String Here",
        "CustomString2": ""
    },
    "comments": [
        {
            "timestamp": 1456996672,
            "comment": "Comment text"
        }
    ]
}
Ghost image metadata with personal information
Image file
ABCD-1234_ghost_1.png
Sidecar file
ABCD-1234_ghost_1.json
{
    "itemId": 1234,
    "externalId": "ABCD-1234",
    "studio": "Studio 1",
    "designer": "DesignerName",
    "category": "Dress",
    "batches": [
        "example-batch1",
        "example-batch2"
    ],
    "colorLabel": "GREEN",
    "exportType": "GHOST",
    "pose": "Elena",
    "imageName": "ABCD-1234_ghost_1",
    "createdBy": {
        "name": "John Doe",
        "email": "john@doe.com",
        "timestamp": 1566920909148
    },
    "exportedBy": {
        "name": "John Doe",
        "email": "john@doe.com",
        "timestamp": 1567094931323
    },
    "customProperties": {
        "CustomDate1": "2020-01-20",
        "CustomDate2": "2020-12-31",
        "CustomNumber1": "105",
        "CustomNumber2": "3.14",
        "CustomBoolean1": "True",
        "CustomBoolean2": "False",
        "CustomString1": "Custom String Here",
        "CustomString2": ""
    },
    "comments": [
        {
            "createdBy": {
                "name": "John Doe",
                "email": "john@doe.com"
            },
            "timestamp": 1456996672,
            "comment": "Comment text"
        }
    ]
}