I need to move most of the albums from one Flickr account to another. There do not appear to be any tools to do this directly. I am left with downloading them, then uploading them to the other account.

  • If I download direct from Flickr the images do not retain title, description, etc.
  • If I use the Flickrdownloadr tool it copies this metadata into a separate json file, but in such a way that exiftool reports it as a 'File Format Error' and won't process the files. Here is the content of one sample json file:

    "Tags":"tumblr","Description":"This is how bundling clothes helps you get more stuff in smaller spaces, wrinkle-free!","Title":"Bundles in bags"

If I run exiftool on the original jpg file, it extracts it into this format, which is probably the format it is expecting:

  "SourceFile": "2497947965.jpg",
  "ExifToolVersion": {
    "id": "ExifToolVersion",
    "table": "Extra",
    "val": 10.80
  "FileName": {
    "id": "FileName",
    "table": "Extra",
    "val": "2497947965.jpg"

I need to merge the metadata with the image files, somehow, some way. Fifty Google searches have not resolved this issue yet. Short of downloading dozens of albums and manually copy-pasting this metadata, one file at a time, is there any other way to achieve my goal?

My OS is Kubuntu. I have a Windows machine available if needed...

  • \$\begingroup\$ I tried formatting an existing json to match the format I thought it expected, and the exiftool still responds 'file format error' \$\endgroup\$
    – dixonge
    Aug 1, 2018 at 13:24

1 Answer 1


I downloaded and installed Windows versions of Flickrdownloadr (version and ExifTool (version 11.08).

I uploaded an image (with no specific exif data) to flickr and added it to an album.

I changed the title and description to known values (in Flickr). It appears Flickr does not add these values to the image file exif data - it adds it to its own metatdata for the image - which Flickrdownloadr picks up and writes to the JSON file for each image.

I downloaded the album using Flickrdownloadr, which downloaded the image and its sidecar JSON file (containing the two values for title and description).

I then followed this answer on stack overflow to write the values from the JSON file into the exif data in the image file using:-

exiftool -json=x.jpg.json x.jpg

(where x.jpg is the name of the image file)

I then uploaded the image back to Flickr - and (now that the Flickr values were burned into the image file) the title and description received the correct values from the original album in Flickr.

Applying the sidecar JSON files to the images can, in Windows, be automated using:-

for %1 in (*.jpg) do ..\exiftool -json=%1.json %1

(where exiftool.exe was installed in the parent folder of the current/download folder)

You'll need to figure out how to do that for any other OS you may be using.

In Linux/bash this will achieve the for loop:

for jpg in *.jpg; do exiftool -json=$jpg.json $jpg; done

The JSON file created by Flickrdownloadr has this format:-

{"Tags":"kitten","Description":"flickr description","Title":"flickr title"}

  • 2
    \$\begingroup\$ I added the json file sample to my question. running exiftool on the same image produces a long list of items, none of which map to the three fields in the json. This makes sense, because evidently Flickr keeps this data separately. I would mainly want to write the Title and Description to the jpg file, but I am unsure if those fields already exist (and are blank) or if I need to map to a different existing field... \$\endgroup\$
    – dixonge
    Aug 1, 2018 at 12:42
  • 1
    \$\begingroup\$ What you are describing is exactly the behavior I expected. Unfortunately when I try it in linux I get the following response: <code>Error opening JSON file '2105989082.jpg.json' No SourceFile '2501989082.jpg' in imported JSON database</code> It seems to expect the file being written to to also be listed in the JSON file as a source. I will try this over on my Windows box after lunch to see if it is simply an issue with the linux version of exiftool. \$\endgroup\$
    – dixonge
    Aug 1, 2018 at 18:03
  • 1
    \$\begingroup\$ So I copied a folder of the images and json files to Windows, downloaded and installed exiftool, and it works for one file at a time. Your 'for' loop, however, got an error for each file. exiftool seems to be expecting a SourceFile entry. I'm researching additional exiftool commands to avoid having to run a zillion sed/awk commands to insert filenames into json files... \$\endgroup\$
    – dixonge
    Aug 1, 2018 at 20:42
  • 1
    \$\begingroup\$ nvm Your 'for' loop also worked! (my first attempt I tried to 'correct' the syntax, which did not work) As much as I hate doing this in Windows vs linux, there is either a problem with the version I'm using in linux, or I'm hosing the syntax there as well. Not sure, so I will test some more, but you have definitely answered this. Thanks! \$\endgroup\$
    – dixonge
    Aug 1, 2018 at 20:53
  • 1
    \$\begingroup\$ And it works in linux. For anyone else who is trying to work with Flickr Downloadr (flickrdownloadr.com) and wants to copy over the Title and Description before re-uploading to Flickr this is the syntax to do a folder (album) of images at a time: <code>for jpg in *.jpg; do exiftool -json=$jpg.json $jpg; done</code> you can put that all on one line or enter each segment separately or put it all in a bash script. \$\endgroup\$
    – dixonge
    Aug 1, 2018 at 21:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.