Uploads de fotos no Flickr! usando API e Python
[Warning: This post is a backup recovery from my previous Wordpress blog. All content was automatically converted accessing a MySQL database using a Python script (details). Mostly are in Portuguese but if you are interest I can translate to English. If you found any problem dont’t hesitate to contact me in comments.]
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.
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 = ""
>>> secret = ""
>>> username = ""
>>> flickr = flickrapi.FlickrAPI(api_key,secret,username)
>>> (token, frob) = flickr.get_token_part_one(perms="write")
>>> print token
>>> print frob
</pre>
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 = ""
secret = ""
username = ""
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)
</pre>
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. :-)