Many images usecase

From GNU MediaGoblin Wiki
Jump to navigation Jump to search

Eric is a enthusiastic photographer and takes many photos. He stores them in folders on his computer. As of now he has over 40.000 partly tagged files. They are quite easy to get to because of the folder hierarchy.

Eric uses DigiKam to organize his files, and is quite happy with that. However, he wants to store them on the internet as well, so that:

  • people can see his best photos
  • close friends can get access to all photos from an event and help him sort out the best ones for public viewing
  • people can tag themselves and others (to help him organize everything)
  • he can access it whenever he wants


After coming home from a weekend trip

Eric was at a cabin with 5 friends. When coming home he's got 1000 pictures to throw through.


Transfer

He transfers all the images to a relevant part in his Pictures-folder, and names it "Frogneseteren weekend trip, june 2011". He goes through the pictures and tags a few people in them from DigiKam. DigiKam saves the tags inside the IPTC-keywords inside the pictures themselves. And stars a few pictures that's especially good.

Eric wants to show his pictures, as well as back them up to a second computer. So he starts his file synchronization software (Unison, Sparkleshare, rsync, ...) . After a few hours, the syncing is done.

Importing from file system

Inside MediaGoblin, he either logs in and chooses «import/scan for new files», or MediaGoblin figures out that itself (from cron/celery beat).

MediaGoblin scans through the files, not touching them, but adding them to the database. It adds an import-job for each picture. When MG has scanned the full folder and found everything new, MG dispatches the job queue.

For each new pictures, MediaGoblin makes a thumbnail and possible other display versions and saves them in the "cache" folder that it keeps. Thus not meddling with Eric's folders and image files. It also extracts the IPTC and XMP fields. All the tags Eric added in DigiKam is thus recognized in MediaGoblin and immediately searchable after the import.

Making publicly visible albums

So now the pictures lie on the web server. Eric is happy that MG uses the path as metadata, so that it's easy to find and watch the new files. Having 40.000 pictures to sort through would be hard.

He marks 20 pictures that's really good and make an album called "Frogneseteren", and he makes that album publicly visible. Thus people with limited attention span can watch his site, and only get the best pictures. As well as he's sure he hasn't uploaded and made available some naked swimming photos.

Ada, one of Eric's friends visit the site, but she thinks Eric has left out too many good pictures and emails him. He gives her OpenID access to see the raw folder "Frogneseteren weekend trip, june 2011" and to link pictures in there to albums. So Ada go through the pictures and add an additional 20 pictures to the public album.

Crowd tagging/captioning/commenting

Tom signs in with his OpenID tom.example.com, and goes ahead and tags more images with the names of people in them. He also comments on some pictures.

Eric gets an email saying there's tags and comments to be moderated. He recognized that all the work Tom has done is good, and just puts his OpenID in the instant-approve list.

MG thus approves all the changes, and it doesn't only write the changes to the database, but also fires up sync-jobs where the new tags and captions are written back to the file metadata.

File sync back again

When Eric uses his file sync software again (must be two-way, so Unison or Sparkleshare), it notices some files have changed, and sync those back to his computer. When Eric runs DigiKam with it's "read new metadata from files", he can use all the new information entered in MediaGoblin by his friends to search for stuff in his pictures. He's happy he could crowd source that, and that all his metadata are safely stored inside the pictures so that it won't get lost.

Also it's great that all software can use the same metadata.