dFlickr: Delphi API Kit for Flickr


dFlickr wraps most functions of the Flickr API and provides the necessary classes to access users/photos/photosets/groups/pools/blogs in Flickr. It is released under an MIT license.

dFlickr is developed by Dimitris Giannitsaros (συνταγες / στοιχημα / ανεκδοτα / paixnidia). Feedback is welcome at: daremon-AT-gmail-DOT-com


Click here to download version 0.9.3b (2005-11-14 / 394kb)
Includes a simple demo application both in binary and source format.
dFlickr Demo screenshot, click to enlarge


dFlickr requires:

It has been tested on Delphi 2005/Indy10, Delphi 6/Indy 9, Delphi 5.

Applications using dFlickr


Version: 0.9.3b, 2005-11-14 (download)
- Updated ZIP file, to include a missing file

Version: 0.9.3, 2005-10-07 (download)
- Most code for this release was developed by Paul Traynier
- Support for new authentication
- Added TFlickrPhoto.Urls
- Added TFlickrPhoto.Rotation
- Added TFlickrPhoto.LastUpdate
- Added TFlickrPeople.IconServer
- Fixed TFlickrPhoto.IsFriend/IsFamily/IsPublic (removed underscore)
- Support for Delphi5 in demo application
- Calls to flickr.com use POST instead of GET

Version: 0.9.2, 2005-04-12 (download)
- Added support for extras field in PhotosSearch()

Version: 0.9.1, 2005-03-11 (download)
- Object functions that change properties, invalidate the cache
- Minor changes in some function names

Version: 0.9, 2005-03-09 (download)
- Upload support
Version: 0.8, 2005-03-06 (download)
- Initial version


  Flickr: TFlickr; // this is our basic object
  People: TFlickrPeople;
  // you need an API key. You can get one from Flickr
  Flickr := TFlickr.Create(EdtAPIKey.Text);
  // authentication is needed for some calls
  Flickr.Authenticate(EdtEmail.Text, EdtPassword.Text);
    // this will return a TPeople object, with some properties filled (e.g. Id)
    People := Flickr.PeopleFindByEmail('test@test.com'); // connects to Flickr
    // some other properties must make a new connection to Flickr to get filled
    // these details are cached for future calls
    Print(People.Realname); // connects to Flickr
    Print(People.Location); // no need to connect to Flickr
    PrintList(People.PublicPhotos); // connects to Flickr
    Print(People.PublicPhotos.GetPhoto(0).Title); // no need to connect to Flickr
    on E: Exception do Print('Error: ' + E.Message);