Skip to content

alexis-mignon/python-flickr-api

Repository files navigation

Python Flickr API

A Python implementation of the Flickr API.

The project provides an almost exhaustive access to the Flickr API, through an object-oriented Python interface.

Quick Start

  1. Install the package via PyPI (or manually cloning the repo):
pip install flickr_api
  1. Acquire Flickr API keys and set up authorisation as per the Wiki

  2. Start using the OO interface!

Here's an example of fetching a list of a specific users' public photos:

user = flickr_api.Person.findByUserName("tomquirkphoto")
photos = user.getPhotos()

If you've authorised yourself as a user, you can do cooler things like upload photos:

flickr_api.upload(photo_file="path_to_the_photo_file", title="My title")

And even create albums (a.k.a Photosets):

photoset = flickr_api.Photoset.create(title="The title of the photoset", primary_photo=cover_photo)

Features

Consult the API Reference for a (semi) complete list

  • Object Oriented implementation
  • (Almost) comprehensive implementation
  • Uses OAuth for authentication
  • Context-sensitive objects (depending on the query context, objects may exhibit different attributes)
  • An interface for direct seamless calls to the Flickr API.
  • A (Django-compliant) caching mechanism

Requires:

Please note that flickrapi on PyPI is a different distribution by a different author.

API Guide

A brief guide is available in the Wiki section.

Projects using this API

create a PR to add your project here!

  • FlickrBox - A Dropbox-like backup experience for your free 1TB Flickr library!
  • Album Sorter - Sort flickr albums into date taken order
  • Flickr Download - Download photos, sets, etc from Flickr

Development

This project uses pipenv to create a virtualenv for development and control dependencies.

To run tests you can simply run it with:

pipenv install --dev
pipenv run nose2

To evoke the unittest module directly, one can run from the root directory (the directory with this file):

python -m unittest discover test

Notes

Any help, including bug reports, is appreciated!