I have a thousands of JPG and corresponding JSON files in a Windows 10 directory, along with exiftool.exe:
0001.jpg
0001.jpg.json
0002.jpg
0002.jpg.json
0003.jpg
0003.jpg.json
...etc.
exiftool.exe
You can see the JSON file structure here:
{
"result": {
"tags": [
{
"confidence": 88.152458190918,
"tag": {
"en": "smasher"
}
},
{
"confidence": 55.5320205688477,
"tag": {
"en": "pretty"
}
},
{
"confidence": 50.7880249023438,
"tag": {
"en": "model"
}
},
{
"confidence": 49.2356948852539,
"tag": {
"en": "face"
}
},
{
"confidence": 48.7588233947754,
"tag": {
"en": "portrait"
}
},
{
"confidence": 47.0902328491211,
"tag": {
"en": "attractive"
}
},
{
"confidence": 43.7929306030273,
"tag": {
"en": "hair"
}
},
{
"confidence": 42.2323875427246,
"tag": {
"en": "adult"
}
},
{
"confidence": 41.1505165100098,
"tag": {
"en": "sexy"
}
},
{
"confidence": 40.7649612426758,
"tag": {
"en": "lady"
}
},
{
"confidence": 37.1722984313965,
"tag": {
"en": "person"
}
},
{
"confidence": 37.1080093383789,
"tag": {
"en": "fashion"
}
},
{
"confidence": 36.7636756896973,
"tag": {
"en": "brunette"
}
},
{
"confidence": 36.7621879577637,
"tag": {
"en": "cute"
}
},
{
"confidence": 34.9863166809082,
"tag": {
"en": "skin"
}
},
{
"confidence": 32.104736328125,
"tag": {
"en": "happy"
}
},
{
"confidence": 31.2583065032959,
"tag": {
"en": "makeup"
}
},
{
"confidence": 29.4580879211426,
"tag": {
"en": "posing"
}
},
{
"confidence": 28.6357250213623,
"tag": {
"en": "smile"
}
},
{
"confidence": 28.5793495178223,
"tag": {
"en": "people"
}
},
{
"confidence": 28.2635555267334,
"tag": {
"en": "make"
}
},
{
"confidence": 27.4844341278076,
"tag": {
"en": "studio"
}
},
{
"confidence": 27.2048511505127,
"tag": {
"en": "cover girl"
}
},
{
"confidence": 25.5794258117676,
"tag": {
"en": "sensual"
}
},
{
"confidence": 25.0063171386719,
"tag": {
"en": "lovely"
}
},
{
"confidence": 24.7523536682129,
"tag": {
"en": "one"
}
},
{
"confidence": 24.2116451263428,
"tag": {
"en": "eyes"
}
},
{
"confidence": 24.2004241943359,
"tag": {
"en": "lock"
}
},
{
"confidence": 23.7295970916748,
"tag": {
"en": "sensuality"
}
},
{
"confidence": 23.2414417266846,
"tag": {
"en": "lips"
}
},
{
"confidence": 22.531270980835,
"tag": {
"en": "smiling"
}
},
{
"confidence": 22.2798938751221,
"tag": {
"en": "expression"
}
},
{
"confidence": 21.9316215515137,
"tag": {
"en": "elegance"
}
},
{
"confidence": 21.450065612793,
"tag": {
"en": "women"
}
},
{
"confidence": 20.9808216094971,
"tag": {
"en": "closeup"
}
},
{
"confidence": 20.94065284729,
"tag": {
"en": "gorgeous"
}
},
{
"confidence": 20.8894214630127,
"tag": {
"en": "looking"
}
},
{
"confidence": 19.6783428192139,
"tag": {
"en": "youth"
}
},
{
"confidence": 19.4935684204102,
"tag": {
"en": "natural"
}
},
{
"confidence": 19.0460243225098,
"tag": {
"en": "fresh"
}
},
{
"confidence": 18.9859828948975,
"tag": {
"en": "healthy"
}
},
{
"confidence": 18.8311977386475,
"tag": {
"en": "human"
}
},
{
"confidence": 17.8766403198242,
"tag": {
"en": "casual"
}
},
{
"confidence": 17.6684837341309,
"tag": {
"en": "body"
}
},
{
"confidence": 17.5176486968994,
"tag": {
"en": "long"
}
},
{
"confidence": 16.7830467224121,
"tag": {
"en": "clean"
}
},
{
"confidence": 16.5375003814697,
"tag": {
"en": "care"
}
},
{
"confidence": 16.2804470062256,
"tag": {
"en": "hairstyle"
}
},
{
"confidence": 16.0539932250977,
"tag": {
"en": "health"
}
},
{
"confidence": 15.838433265686,
"tag": {
"en": "look"
}
},
{
"confidence": 15.6484327316284,
"tag": {
"en": "style"
}
},
{
"confidence": 14.9056119918823,
"tag": {
"en": "close"
}
},
{
"confidence": 14.3418111801147,
"tag": {
"en": "head"
}
},
{
"confidence": 14.0835266113281,
"tag": {
"en": "modern"
}
},
{
"confidence": 13.8814821243286,
"tag": {
"en": "cheerful"
}
},
{
"confidence": 13.8072738647461,
"tag": {
"en": "20s"
}
},
{
"confidence": 13.6136884689331,
"tag": {
"en": "dress"
}
},
{
"confidence": 13.0692186355591,
"tag": {
"en": "lifestyle"
}
},
{
"confidence": 12.909481048584,
"tag": {
"en": "elegant"
}
},
{
"confidence": 12.8674716949463,
"tag": {
"en": "friendly"
}
},
{
"confidence": 12.8258485794067,
"tag": {
"en": "teenager"
}
},
{
"confidence": 12.7428483963013,
"tag": {
"en": "pose"
}
},
{
"confidence": 11.9529628753662,
"tag": {
"en": "wellness"
}
},
{
"confidence": 11.2883729934692,
"tag": {
"en": "cosmetics"
}
},
{
"confidence": 11.1015768051147,
"tag": {
"en": "slim"
}
},
{
"confidence": 10.9321374893188,
"tag": {
"en": "hot"
}
},
{
"confidence": 10.5805339813232,
"tag": {
"en": "cosmetic"
}
},
{
"confidence": 10.5062713623047,
"tag": {
"en": "skincare"
}
},
{
"confidence": 10.3531084060669,
"tag": {
"en": "brown"
}
},
{
"confidence": 10.2322235107422,
"tag": {
"en": "happiness"
}
},
{
"confidence": 10.1532421112061,
"tag": {
"en": "teen"
}
},
{
"confidence": 9.91652774810791,
"tag": {
"en": "spa"
}
},
{
"confidence": 9.77626037597656,
"tag": {
"en": "shoulder"
}
},
{
"confidence": 9.64915561676025,
"tag": {
"en": "vertical"
}
},
{
"confidence": 9.56869029998779,
"tag": {
"en": "black"
}
},
{
"confidence": 9.28471755981445,
"tag": {
"en": "purity"
}
},
{
"confidence": 9.20380115509033,
"tag": {
"en": "blond"
}
},
{
"confidence": 9.08255577087402,
"tag": {
"en": "stylish"
}
},
{
"confidence": 8.62055492401123,
"tag": {
"en": "bright"
}
},
{
"confidence": 7.54396390914917,
"tag": {
"en": "wellbeing"
}
},
{
"confidence": 7.4316349029541,
"tag": {
"en": "single"
}
},
{
"confidence": 7.382728099823,
"tag": {
"en": "treatment"
}
},
{
"confidence": 7.36639595031738,
"tag": {
"en": "nice"
}
},
{
"confidence": 7.34033250808716,
"tag": {
"en": "alone"
}
}
]
},
"status": {
"text": "",
"type": "success"
}
}
I want to take all Tags in each .jpg.json file into the metadata of the .jpg file.
I have searched a lot but haven't been able to solve the problem.
Assuming you want to copy the "tag" entries into a keyword list type tag, the basic command would be
The problem is figuring out what you need to use for TAG. To do so, you would run the command in Exiftool FAQ #3. The output from that command would include this
This shows that you want to replace TAG in the above command with
ResultTagsTagEn, e.g.The command is not complete yet, as this command would create a single keyword that would have all the tag values in it. In other words, it would create a single keyword of
not the desired result of
To fix this, the
-sepoption must be used to separate the individual keywords. The output ofResultTagsTagEnshows the tags are split by ", " (CommaSpace).Adding that option in results in
This command will remove any previously existing keywords in favor of the ones in the JSON file. If you want to add keywords and keep the originals, you would put a plus sign before the less than sign
XMP-dc:Subjectis the most modern way to include keywords in a file, but some older programs may not read it. In that case, you would also want to write to the IPTC IIM/Legacy tag as well