Giddy

Giddy is a Ruby gem for interacting with the Images Connect API[https://github.com/gettyimages/connect].

Installation

gem install giddy

Configuration

To set up the authorization configuration for the system (different than your per-user credentials), use:

Giddy.setup do |config|
  config.system_id = "12345"
  config.system_password = "alongpassword"
end

Usage

First, create a client object with a username and password

client = Giddy::Client.new("ausername", "apassword")

Searching:

images = client.search(:query => "puppy")

# or, with pagination
images = client.search(:query => "kitty", :start => 21, :limit => 20)

# or, by image id (returns only one):
image = client.search(:image_id => "110740425")

Get an images details:

image = client.search(:image_id => "110740425")
puts image
puts image.artist

Download request:

puts image.download_largest

To get the available sizes, and then the URL of the download for the smallest:

image = client.search(:image_id => "136094606")
# image.sizes is ordered by file size, smallest to largest
smallest = image.sizes.first
puts image.download(smallest).url_attachment

It's also possible to cache session information so that you don't have to reauthenticate on each client creation. For instance:

client = Giddy::Client.new("username", "password")
# next line happens automatically if a session doesn't exist or if a session goes stale
# let's force it, just to get some tokens
client.create_session

# these can be stored somewhere (memcache, etc)
token = client.token
secure_token = client.secure_token

# create a new client with old tokens so a new session doesn't have to be initialized
# if the tokens have gone stale, a new session will be created
otherclient = Giddy::Client.new("username", "password", token, secure_token)
puts otherclient.search(:image_id => "110740425")