fev
23
2010

Uploads de fotos no Flickr! usando API e Python

A API (Interface de Programação de Aplicativo) do Flickr! é bem documetada e rapidamente você pode fazer bastante coisa. Se você desejar usar a linguagem Python como método de acesso, em linhas gerais você precisa.

  1. Criar uma chave na API do Flickr!
  2. Download do binding para acesso a API (flickrapi)

Nas distribuições Linux, um dos jeitos de instalar é usar o easy_install

easy_install flickrapi

Um modo eficaz para fazer o upload das fotos no serviço seria um script que varre e submete todas as imagens, por exemplo, de uma pasta definida. O exemplo abaixo recebe como parâmetro um diretório e busca por todos os arquivos com extensão .jpg. A função status é apenas para mostrar o andamento do upload e é executada como uma chamada callback no método flickr.upload(). Nos meus testes, precisei pegar o número definido na variável token, antes, executando na interface de linha de comando do Python os seguintes passos:

>>> api_key = "<API>"
>>> secret = "<CHAVE SECRETA>"
>>> username = "<USER>"
>>> flickr = flickrapi.FlickrAPI(api_key,secret,username)
>>> (token, frob) = flickr.get_token_part_one(perms="write")
>>> print token
>>> print frob

Na hora o browser padrão irá abrir e pedir para você confirmar o uso do aplicativo.

# -*- coding: utf-8 -*-
#/bin/python 
 
import sys
import glob 
import flickrapi
 
api_key = "<API>"
secret = "<CHAVE SECRETA>"
username = "<USER>"
 
token="<TOKEN>"
frob=None
 
def status(progress, done):
	if done:
		print "Finished ;-)"
	else:
		print "At %s%%" % progress
 
def upload(photo):
	flickr.upload(photo, callback=status)
 
if __name__ == "__main__":
 
        flickr = flickrapi.FlickrAPI(api_key,secret,username)
        flickr.get_token_part_two((token,frob))
 
        photos = sys.argv[1]+"*.jpg"
 
	for photo in glob.glob(photos):
		print "Uploading: ",photo
		upload(photo)

Um exemplo de uso:

python upload.py /Fotos

Utilize sua criatividade para extender essa idéia e criar aplicativos que ensinem e facilite sua vida. :-)

tags: ,
posted in programação by Tiago Maluta

Follow comments via the RSS Feed | Deixe um comentário | Trackback URL

Leave Your Comment