Skip to main content

Get metadata from Search API

  • September 26, 2023
  • 1 reply
  • 207 views

I am trying to call the Box api with c# and search for documents and get their metadata. I am able to see the metadata when I pass “metadata.enterprise.{metadata_template_key}” in a string array into the fields for the Search Manager. How am I able to extract that data? I do not see a way to get it from the BoxItem type. I know I can make a second call to get the metadata directly but I would have to make this call on all the documents the search api returned. I would like to prevent making so many calls if possible.

1 reply

rbarbosa Box
  • Developer Advocate
  • 553 replies
  • September 28, 2023

Hi @cdeleon , welcome to the forum.


To get the actual metadata values for a file (it’s similar for folders) you will need the file_id, the template_scope, and the template_key.


To get these id’s I use the GET https://{{api.box.com}}/2.0/metadata_templates/enterprise end point.


Then it’s a matter of querying the file metadata.


For example:


curl --location 'https://api.box.com/2.0/files/1121082178302/metadata/enterprise_877840855/demoMediaMetadata' \

--header 'Authorization: Bearer 8k...y8'


Results in:


{

    "$id": "45bd22c2-c964-4ddb-89aa-0d6f31ea2236",

    "$version": 0,

    "$type": "demoMediaMetadata-d2c5ef83-23c1-4bb5-8486-7833cfa7c9f4",

    "$parent": "file_1121082178302",

    "$typeVersion": 0,

    "$template": "demoMediaMetadata",

    "$scope": "enterprise_877840855",

    "fileName": "BigBuckBunny.mp4",

    "streamIdentifier": "0",

    "trackType": "General",

    "otherFrameRate": "24.000 FPS",

    "videoFormatWithhintList": "AVC",

    "formatExtensionsUsuallyUsed": "mov mp4 m4v m4a m4b m4p m4r 3ga 3gpa 3gpp 3gp 3gpp2 3g2 k3g jpm jpx mqv ismv isma ismt f4a f4b f4v",

    "headersize": "179655",

    "proportionOfThisStream": "0.00114",

    "count": "336",

    "otherStreamSize": "175 KiB (0%), 175 KiB, 175 KiB, 175 KiB, 175.5 KiB, 175 KiB (0%)",

    "otherDuration": "9 min 56 s, 9 min 56 s 473 ms, 9 min 56 s, 00:09:56.473, 00:09:56:11, 00:09:56.473 (00:09:56:11)",

    "otherKindOfStream": "General",

    "audioCodecs": "AAC LC",

    "isstreamable": "Yes",

    "gssd": "BADC219C2HH1385162467077729",

    "datasize": "157828719",

    "otherFileName": "download",

    "otherFormat": "MPEG-4",

    "format": "MPEG-4",

    "kindOfStream": "General",

    "otherOverallBitRate": "2 119 kb/s",

    "videoFormatList": "AVC",

    "otherCodecId": "mp42 (isom/avc1/mp42)",

    "folderName": "/All Files/Media Samples/Video",

    "taggedDate": "UTC 2010-01-10 08:29:06",

    "countOfStreamOfThisKind": "1",

    "completeName": "/All Files/Media Samples/Video/BigBuckBunny.mp4",

    "fileExtension": ".mp4",

    "gshh": "r8---sn-o097zned.googlevideo.com",

    "gstd": "596961",

    "frameRate": "24.000",

    "gsst": "0",

    "fileSize": 158008374,

    "duration": 596473,

    "otherFileSize": "151 MiB, 151 MiB, 151 MiB, 151 MiB, 150.7 MiB",

    "audioFormatList": "AAC LC",

    "footersize": "0",

    "codecidCompatible": "isom/avc1/mp42",

    "audioFormatWithhintList": "AAC LC",

    "overallBitRate": 2119236,

    "countOfVideoStreams": "1",

    "frameCount": "14315",

    "overallBitRateMode": "VBR",

    "otherOverallBitRateMode": "Variable",

    "codecIdUrl": "http://www.apple.com/quicktime/download/standalone.html",

    "formatProfile": "Base Media / Version 2",

    "countOfAudioStreams": "1",

    "codecsVideo": "AVC",

    "commercialName": "MPEG-4",

    "internetMediaType": "video/mp4",

    "streamSize": 179663,

    "encodedDate": "UTC 2010-01-10 08:29:06",

    "codecId": "mp42",

    "$canEdit": true

}


By the way this examples comes from this article, if you’re interested in the context:



I’m not versed on the C# SDK, but see if this example from the SDK helps you:



Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings