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 Programao de Aplicativo) do Flickr! bem documetada e rapidamente voc pode fazer bastante coisa. Se voc desejar usar a linguagem Python como mtodo de acesso, em linhas gerais voc precisa.
Nas distribuies Linux, um dos jeitos de instalar usar o easy_install
easy_install flickrapi
Um modo eficaz para fazer o upload das fotos no servio seria um script que varre e submete todas as imagens, por exemplo, de uma pasta definida. O exemplo abaixo recebe como parmetro um diretrio e busca por todos os arquivos com extenso .jpg. A funo status apenas para mostrar o andamento do upload e executada como uma chamada callback no mtodo flickr.upload(). Nos meus testes, precisei pegar o nmero definido na varivel 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 padro 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 idia e criar aplicativos que ensinem e facilite sua vida. :-)