A step-by-step guide to exporting your Flickr library.
Flickarr requires Ruby 4.0 or newer.
ruby -vIf you need to install or update Ruby, see https://ruby-lang.org/en/downloads
gem install flickarrYou need your own Flickr API key and secret. Flickarr uses these to authenticate with the Flickr API on your behalf.
-
Go to https://flickr.com/services/apps/create and click the Request an API Key link in the Get your API Key section.

-
On the next page https://flickr.com/services/apps/create/apply click "Apply for a Non-Commercial Key"
-
Fill in the form:
- Application Name: anything you want (e.g. "Flickarr Export")
- Description: anything (e.g. "Personal archive export")
-
Submit the form
-
Copy your Key and Secret from the confirmation page
This creates a config file at ~/.flickarr/config.yml.
flickarr initBy default, your archive will be saved to ~/Pictures/Flickarr/. After you authenticate, a subfolder with your Flickr username is created automatically (e.g. ~/Pictures/Flickarr/veganstraightedge/).
To use a different base location:
flickarr init /path/to/your/archiveflickarr config:set api_key=YOUR_KEY shared_secret=YOUR_SECRETVerify they're saved:
flickarr configflickarr authThis starts the OAuth flow:
-
Flickarr prints a URL — open it in your browser
-
Flickr asks you to authorize the app — click "OK, I'll Authorize It"
-
Flickr shows you a verification code (9 digits, like
888-675-309) -
Copy that code
-
Paste the code back into your terminal
After authenticating, your access tokens, username, and user ID are saved to the config file. You only need to do this once.
flickarr export:profileThis downloads your profile metadata (JSON + YAML), avatar image, and account info to ~/Pictures/Flickarr/username/Profile/.
Export everything:
flickarr exportThis paginates through your entire Flickr timeline (most recent first) and downloads each photo/video with full metadata sidecars. It respects Flickr's rate limit (1 request per second).
For a large library, this will take a while. You can:
- Limit how many to download in one run:
flickarr export --limit 100 - Interrupt with Ctrl+C — progress is saved and the next run picks up where you left off
- Resume — just run
flickarr exportagain; already-downloaded files are skipped instantly
Export only photos or only videos:
flickarr export:photos
flickarr export:videosExport a single item by its Flickr URL — export auto-detects the URL type (post, album, collection, or profile):
flickarr export https://flickr.com/photos/USERNAME/3513998015
flickarr export https://flickr.com/photos/USERNAME/sets/72157718538273371/
flickarr export https://flickr.com/photos/USERNAME/albums/72157718538273371/
flickarr export https://flickr.com/photos/USERNAME/collections/72157666222057746/
flickarr export https://flickr.com/photos/USERNAME/Albums (sets) are exported as folders of reference files that point to your downloaded photos/videos:
flickarr export:sets
# or
flickarr export:albumsExport a single album by URL:
flickarr export:sets https://flickr.com/photos/USERNAME/sets/72157718538273371/Collections (groups of albums) work the same way:
flickarr export:collectionsExport a single collection by URL:
flickarr export:collections https://flickr.com/photos/USERNAME/collections/72157666222057746/flickarr statusShows a summary of your archive: how many photos, videos, sets, and collections are downloaded vs. total available.
The upstream totals are fetched from Flickr on first run and cached in your config file. To refresh them:
flickarr status --overwriteOpen your archive folder in Finder:
flickarr openPrint the archive path (useful for scripting):
flickarr pathCheck the error log for any failed downloads:
flickarr errors
cat $(flickarr errors)By default, Flickarr skips files that already exist. To force a re-download:
flickarr export --overwrite
flickarr export URL --overwrite
flickarr export:profile --overwrite
flickarr export:sets --overwrite~/Pictures/Flickarr/username/
_errors.log # log of any failed downloads
Profile/
avatar.jpg
profile.json
profile.yaml
2016/
11/
12/
12345678901_oh-no-photo.jpg # original size photo
12345678901_oh-no-photo.json # full metadata (EXIF, geo, tags, license, etc.)
12345678901_oh-no-photo.yaml # same metadata in YAML
13/
98765432101_cubs-win-video.mp4 # original video (or best available)
98765432101_cubs-win-video.jpg # poster frame
98765432101_cubs-win-video.json
98765432101_cubs-win-video.yaml
Sets/
72157718538273371_vacation-photos/
set.json # set metadata (title, description, dates)
set.yaml
photos.json # ordered list of photo references with file paths
photos.yaml
Collections/
375727-72157666222057746_travel/
collection.json # collection metadata
collection.yaml
sets.json # references to sets in this collection
sets.yaml
Each photo/video sidecar includes:
- Camera: make, model, and full EXIF data
- Dates: taken, uploaded, last updated
- Description: post description/caption
- Geo/Location: latitude, longitude, locality, region, country
- License: ID, human-readable name, and Creative Commons URL
- Owner: username, real name, NSID
- Sizes: all available sizes with dimensions and URLs
- Tags: full tag list
- URLs: Flickr page URL
- Views: view count
- Visibility: public, friends, family
"Not authenticated" error: Run flickarr auth to complete the OAuth flow.
Video download 404: Some older videos may not have their original resolution available on Flickr's CDN. Flickarr automatically falls back to the next best available size. If all sizes fail, the error is logged to _errors.log.
Rate limiting: Flickarr respects Flickr's 1 request/second rate limit. If you see rate limit errors, just wait and try again.
Resuming after interruption: Flickarr saves your progress after each page. Just run the same export command again to resume.




