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.
Page 1 / 1
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:
Reply
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.