Data

All the metadata in this Data Lifeboat is stored in a machine-readable JSON format.

This page describes how this data is stored, so you can build your own tools and toys to work with this data.


Where is the data?

The data is in the metadata folder in the root of the Data Lifeboat package.


How is the data stored?

The data is stored in JavaScript files. Each file contains a JSON object which is assigned to a variable, for example:

const photo = {"id": "123456789"};

If you remove the variable name and trailing semicolon, you get a JSON object. These variable names always match the regex [a-zA-Z]+.

(We use JavaScript rather than JSON so we can load the metadata in the web viewer.)


What are the files?

metadata/photoIndex.js

This is a list of every photo in the Data Lifeboat.

It gives you some key information that you can use to browse the list, and work out which photos you want to look at in more detail. We use it to provide the list of photos in this viewer.

Here’s what this file looks like:

const photoIndex = {
    "123456789": {… index entry …},
    "987654321": {… index entry …},
    …
  }

It contains a JSON object. The key is the Flickr photo ID, and the value is a photo index entry. Each index entry contains the following fields:

title The title of the photo.
uploaderId The NSID of the Flickr member who uploaded the photo. You can find more information about this member in metadata/contributorIndex.js.
licenseId The license ID of this photo. You can find more information about this license in metadata/licenseIndex.js.
dateTaken When was this photo taken? This may be null if this is unknown.
dateUploaded When was this photo uploaded to Flickr?
tags A list of the tags added to this photo.
countComments How many comments were left on this photo?
countFaves How many Flickr members marked this photo as a favorite?
countViews How many people looked at this photo?
visibility The privacy controls on Flickr allow members to choose who could see their photos, on a per-photo basis. Possible values are “public”, “private”, “semi-public (friends and family)”, “semi-public (friends only)” and “semi-public (family only)”.
thumbnail A low-resolution thumbnail copy of this photo, including a path to its location in the Data Lifeboat and its width/height dimensions.
metadataPath The path to the individual metadata file for this photo, relative to the root of the Data Lifeboat. Look in this file for more detailed information about a photo.

metadata/photos/[photoId].js

There is one of these files for each photo in the Data Lifeboat, and each file contains all the information that was saved about this photo.

Here’s what this file looks like:

const photoIndex = {
    "id": "123456789"
    …
  }

It contains a JSON object with the following fields:

id The Flickr photo ID.
secret The Flickr photo secret. Think of it as a second part of the identifier: it’s used by Flickr to help identify images.
url URL of the original photo on Flickr.
title The title of the photo.
description How the Flickr member described this photo.
uploaderId The NSID of the Flickr member who uploaded the photo. You can find more information about this member in metadata/contributorIndex.js.
licenseId The license ID of this photo. You can find more information about this license in metadata/licenseIndex.js.
dateTaken When was this photo taken? This may be null if this is unknown.
dateUploaded When was this photo uploaded to Flickr?
location Where was this photo taken? This includes both GPS coordinates and some named places (if known).
tags A list of the tags added to this photo.
countFaves How many Flickr members marked this photo as a favorite?
countViews How many people looked at this photo?
albumIds A list of IDs of albums that include this photo. You can find more information about these albums in metadata/albumIndex.js.
galleryIds A list of IDs of galleries that include this photo. You can find more information about these albums in metadata/galleryIndex.js.
groupIds A list of IDs of groups that include this photo. You can find more information about these albums in metadata/groupIndex.js.
safetyLevel Safety levels are for Flickr members to let other members know that their content might contain nudity, sexual themes, or graphic imagery that some chose not to see. The possible values are “safe”, “moderate” and “restricted”.
visibility The privacy controls on Flickr allow members to choose who could see their photos, on a per-photo basis. Possible values are “public”, “private”, “semi-public (friends and family)”, “semi-public (friends only)” and “semi-public (family only)”.
originalFormat The original format of the photo, e.g. JPEG or PNG.
files Information about copies of this photo that are stored in the Data Lifeboat, which include a low-resolution thumbnail and the full-resolution original image.
media Whether this item is a “photo” or a “video”.
comments A list of comments on the photo.

metadata/contributorIndex.js

This is a list of every Flickr member who’s made a contribution to this Data Lifeboat. This could be uploading a photo, leaving a comment, or creating a gallery.

Here’s what the file looks like:

const contributorIndex = {
    "12345678@N00": {… index entry …},
    "87654321@N00": {… index entry …},
    …
  }
username Their Flickr username. This is always defined.
realname Their Flickr username. This may be empty.
pathAlias The path alias in their Flickr.com profile URL. For example, in https://www.flickr.com/photos/janet/ , the path alias is janet. This may be null ; not all Flickr members set a path alias.
contributions This is a tally that counts the number of contributions that somebody made. For example {"photo": 3, "comment": 5} tells us that there are 3 of this member's photos in the Data Lifeboat, and 5 of their comments.
isDeleted Did this person delete their Flickr account? There can be contributions from deleted Flickr members in a Data Lifeboat -- in particular, somebody can delete their account but leave their comments in-place. (This field will only be present for deleted users.)

metadata/licenseIndex.js

This is an index of every license available on Flickr at the time the Data Lifeboat was created. The variable name is licenseIndex , and the entries are keyed by license ID:

const licenseIndex = {
    "cc-by-2.0": {
      "name": "CC BY 2.0",
      "url": "https://creativecommons.org/licenses/by/2.0/"
    },
    …
  }

Each entry in the index has two fields:

Whenever you find a licenseId field on a photo, you can look up the license in this index.

metadata/albumIndex.js

This is a list of all the albums that contain photos from this Data Lifeboat. An album is a collection somebody made of their own photos – an album can only contain photos that you uploaded, and not anybody else’s.

Here’s what this file looks like:

const albumIndex = {
    "123456789": {… album index entry …},
    "987654321": {… album index entry …},
    …
  }

It contains a JSON object. The key is the Flickr album ID, and the value is an album index entry. Each index entry contains the following fields:

title The name of the album
ownerId The NSID of the Flickr member who owns this album. You can find more information about this member in metadata/contributorIndex.js.
countPhotos How many photos are there in this album?
countVideos How many videos are there in this album?
countViews How many times was this album looked at?
countComments How many comments were left on items in this album?
photoIds A list of items that are both in this album and in this Data Lifeboat. There may be more items in this album that are not in this Data Lifeboat; they will not be listed here.

metadata/galleryIndex.js

This is a list of all the galleries that contain photos from this Data Lifeboat. An gallery is a collection somebody made of other people’s photos – an album can only contain photos that you didn’t upload, and not your own.

Here’s what this file looks like:

const galleryIndex = {
    "123456789": {… gallery index entry …},
    "987654321": {… gallery index entry …},
    …
  }

It contains a JSON object. The key is the Flickr gallery ID, and the value is an gallery index entry. Each index entry contains the following fields:

title The name of the gallery
description The description of the gallery
ownerId The NSID of the Flickr member who owns this gallery. You can find more information about this member in metadata/contributorIndex.js.
countPhotos How many photos are there in this gallery?
countVideos How many videos are there in this gallery?
countViews How many times was this gallery looked at?
countComments How many comments were left on items in this gallery?
photoIds A list of items that are both in this gallery and in this Data Lifeboat. There may be more items in this gallery that are not in this Data Lifeboat; they will not be listed here.

metadata/groupIndex.js

This is a list of every group mentioned in the Data Lifeboat. A group is a place where Flickr members members can share and discuss images around a common theme, interest, or topic. Think of it like a photo album that multiple people can contribute to and discuss.

title The name of the group
url The Flickr.com URL for the group
countItems How many photos and videos are there in this group?
countMembers How many Flickr members are in the group?
photoIds A list of items that are both in this group and in this Data Lifeboat. There may be more items in this gallery that are not in this Data Lifeboat; they will not be listed here.

metadata/tagIndex.js

This is a list of every tag used in the Data Lifeboat.

It’s stored as a JSON object where the keys are the (normalized) tag names, and the values are the number of photos with that tag. For example:

const tagIndex = {
  "sunsets": 5,
  "flowers": 3,
  "outdoors": 2
}