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:
-
label: string
– the human-readable name of the license -
url: string | null
– the URL to the license text, if applicable. Not all license types have an associated URL.
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
}