El problema con los servicios para publicar en Twitter tu fotos de Flickr es que requieren intervención del usuario, es decir: despues de subir la foto te vas a XXX y le dás a enviar y la reenvias también a Twitter.
Pues menuda juerga, se trata de quitar trabajo no de generar más tareas.
Lo que yo quería es un servicio que de forma automática publique en mi perfil de Twitter un enlace a las fotos que publico en Flickr, y eso es lo que hace este script.

Funcionamiento

Se crea una tarea en cron que ejecute el script a intervalos. Como este ordenador está permanentemente encendido lo tengo puesto a cada hora, si el tuyo lo apagas puedes poner un intervalo menor de tal manera que pase menos tiempo entre que se suben las fotos a flickr y se anuncian en Twitter.

El script lee las fechas de tus ultimas publicaciones en Flickr consultando tu RSS de Flickr. Compara la fecha de publicación de la última foto con la fecha guardada de la anterior consulta y si ha cambiado procede a generar un mensaje que se envia a Twitter. El mensaje es diferente si se trata de una sola fotografía, de dos fotografías, de 20 fotografías o de entre 2 y 20 fotografías. Menos en el primer caso en el resto los mensajes son prácticamente iguales.
Si solo se ha publicado una nueva fotografía se obtiene una url abreviada a su página en Flickr y en incorporada junto con su título en el mensaje de Twitter.

Configuración

El script necesita modificar los datos de nuestra cuenta en Twitter (of course) e incorporar el ID de usuario en Flickr. Este ID (el mio es 70417829@N00 ) lo podeis obtener en vuestra “galeria de Flickr”, en el RSS ubicado en la base de la página.

El resto del script no necesita ser alterado, aunque probablemente querais/deberiais modificar los mensajes, personalizarlo un poco y optimizarlo (ver dentro del script para más detalle)

El script es este, pero tambien lo podeis descargar de aqui: publicar/flickr2twitter.
Simplemente copiad esto en un archivo, guardadlo por ejemplo como flickr2twitter en una carpeta de ~/.flickr2twitter y cread en crontab una tarea periodica que lo ejecute.
#!/bin/bash

# Estos tres valores deberías personalizarlos

# Tu nombre de usuario en Twitter, tal y como aparece en tu propia página del servicio
nombreTwitter="tu_usuario_en_twitter"

# Contraseña de twitter
contrasenaTwitter="12345678"

# Nombre de tu usuario en Flickr
# Obten tu propio ID de Flickr consultando el RSS de tu galería en Flickr
idUsuarioFlickr="70417829@N00"

# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Hasta aqui toda la información básica personalizable
# a partir de aqui cambia lo que quieras para personalizarlo a tu gusto
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

# url de tu rss en flickr
urlRssFlickr="http://api.flickr.com/services/feeds/photos_public.gne?id=$idUsuarioFlickr&lang=es-us&format=xml"

#por defecto utilizamos la carpeta en la que se encuentra el script para guardar
carpetaTrabajo=`dirname $0`
fileAnteriorPublicacion="$carpetaTrabajo/anteriorPublicacion"

# Cogemos RSS
rssOrigen=`lynx --dump $urlRssFlickr`

# Nos quedamos con las horas de rssFechaPublicacionFoto
rssFechaPublicaciones=$(echo "$rssOrigen" | grep published | sed -e 's/<\/*published>//g')

# Cogemos la última publicación
ultimaPublicacion=`echo "${rssFechaPublicaciones//[TZ]/ }" | line`
ultimaPublicacionUnix=`date +%s -d "$ultimaPublicacion"`

# Por defecto, la anteriorPublicacion es la última realizada
# excepto que un archivo indique lo contrario

if [ -f $fileAnteriorPublicacion ]; then
anteriorPublicacionUnix=`cat "$carpetaTrabajo/anteriorPublicacion"`
else
anteriorPublicacionUnix=$ultimaPublicacionUnix
echo "$ultimaPublicacionUnix" > "$carpetaTrabajo/anteriorPublicacion"
fi

if [ $ultimaPublicacionUnix -gt $anteriorPublicacionUnix ]; then
# La ultima publicación en el RSS es posterior a la rssFechaPublicacionFoto anteriorPublicacion
# Contamos el número de nuevas fotografías publicadas
contadorTemporal=0
for rssFechaPublicacionFoto in $rssFechaPublicaciones; do
temporalPublicacion=`echo ${rssFechaPublicacionFoto//[TZ]/ }`
temporalPublicacionUnix=`date +%s -d "$temporalPublicacion"`
if [ $temporalPublicacionUnix -gt $anteriorPublicacionUnix ]; then let contadorTemporal++; fi
done

IFS=$'\n'
rssTitulos=(`echo "$rssOrigen" | grep \\([^<].*\)<.*>/\1/'`)<br /> rssUltimoTitulo=${rssTitulos[1]}</p> <p> rssIds=(`echo "$rssOrigen" | grep \<id | sed 's/<.*>\([^<].*\)<.*>/\1/'`)<br /> rssUltimoId=`echo ${rssIds[1]} | sed 's/.*photo\/\([0-9]*\).*/\1/'`</p> <p> urlBase=(`echo "$rssOrigen" | grep "link rel=\"alternate\"" | sed 's/<.* href="\([^"]*\)".*\/>/\1/' | tr -d " "`)</p> <p># "urlBase" es la url de tu página en flickr. La obtenemos consultando el RSS<br /> # y a continuación obtenemos su url corta que llamamos "urlDefault" utilizando el servicio gratuito de http://2tu.us<br /> # Como esta dirección no va a cambiar para acelerar este script y evitar consultas reiteradas y repetidas al servidor<br /> # sería interesante que reemplazaras el valor de urlDefault por la url abreviada a tu galería en flickr.<br /> # La siguiente linea deberia queda con algo como:<br /> # urlDefault="http://utu.us/TU_URL"<br /> urlDefault=`lynx --dump "http://2tu.us/?save=y&url=$urlBase" | grep "Your tight" | cut -d "]" -f2 | cut -d " " -f1`</p> <p> case $contadorTemporal in<br /> 1)<br /> urlLarga="$urlBase$rssUltimoId"<br /> urlCorta=`lynx --dump "http://2tu.us/?save=y&url=$urlLarga" | grep "Your tight" | cut -d "]" -f2 | cut -d " " -f1`<br /> fraseTwitter="Nueva fotografía \"$rssUltimoTitulo\" en mi cuenta de Flickr ( $urlCorta )."<br /> ;;</p> <p> 2)<br /> fraseTwitter="Dos nuevas fotografías en mi cuenta de Flickr, \"$rssUltimoTitulo\" y otra ( $urlDefault )"<br /> ;;</p> <p> 20)<br /> fraseTwitter="Más de 20 nuevas fotografias publicadas en mi cuenta de Flickr ( $urlDefault )." ;;</p> <p> *)<br /> fraseTwitter="Publicadas $contadorTemporal nuevas fotografias en mi cuenta de Flickr. \"$rssUltimoTitulo\" y otras. ( $urlDefault )"<br /> ;;</p> <p> esac<br /> # Enviamos a Twitter<br /> curl --basic --user $nombreTwitter:$contrasenaTwitter --url http://twitter.com/statuses/update.xml --data source="curl" --data status="$fraseTwitter" &>/dev/null<br /> # Registramos hora actual<br /> echo $ultimaPublicacionUnix > $fileAnteriorPublicacion<br /> else<br /> # No hay publaciones nuevas<br /> exit<br /> fi<br /> exit<br /> </code></p> </div> <div class="postMetadata postMetadataTrebol-A"> <p> <a href="http://www.trebol-a.com/2010/07/15/flickr2twitter-script-bash/#respond" title="Comentarios en Flickr2Twitter script bash"> Sin comentarios </a><br/> Escrito por <strong><a href="http://www.trebol-a.com/author/admin/" title="Entradas de Trebol-A">Trebol-A</a></strong> <a class="postMetadataContactar" title="Contacta con el autor por email" href="/contacto/?d=Trebol-A"> </a><br/> archivado en las categorias <a href="http://www.trebol-a.com/categoria/gnu-linux/" title="Ver todas las entradas en GNU/Linux" rel="category tag">GNU/Linux</a>, <a href="http://www.trebol-a.com/categoria/hacks/" title="Ver todas las entradas en Hacks" rel="category tag">Hacks</a><br/> <strong>Compartir</strong>: <a href="http://twitter.com/home?status=Flickr2Twitter script bashhttp://wp.me/p11i89-Pg" title="Compartir via Twitter" >Twitter</a>, <a href="http://www.meneame.net/submit.php?url=http://wp.me/p11i89-Pg" title="Compartir en Meneame">Meneame</a>, <a href="http://www.facebook.com/share.php?u=http://wp.me/p11i89-Pg&t=Flickr2Twitter script bash" title="Compartir en FaceBook">FaceBook</a>, <a href="http://identi.ca/?action=newnotice&status_textarea=Flickr2Twitter script bash%20 http://wp.me/p11i89-Pg" title="Compartir en Identi.ca">Identica</a> </p> </div> </div><!--post--> <div id="apuntesRelacionados"> <h5>Apuntes relacionados</h5> <ul id="apuntes_relacionados" title="Apuntes relacionados" > <li><div class='apunteRelacionado sinFoto'><div class='textoRelacionado'><a class='tituloRelacionada' href='http://www.trebol-a.com/2010/07/31/amarok2twitter/'>Amarok2twitter</a><p>Para enviar lo que está sonando en Amarok (KDE 3.5) a Twitter. Pega este código esto en un archivo y lo</p><a class='sigueRelacionada' href='http://www.trebol-a.com/2010/07/31/amarok2twitter/'>Sigue...</a></div></div><!---apunteRelacionado--></li> <li><div class='apunteRelacionado sinFoto'><div class='textoRelacionado'><a class='tituloRelacionada' href='http://www.trebol-a.com/2010/07/01/cliente-para-twitter-en-una-sola-linea/'>Cliente para twitter en </a><p>Jugando ayer en Twitter me hice este mini cliente para Twittear de forma rápida y sin tener que iniciar nada, simplemente</p><a class='sigueRelacionada' href='http://www.trebol-a.com/2010/07/01/cliente-para-twitter-en-una-sola-linea/'>Sigue...</a></div></div><!---apunteRelacionado--></li> <li><div id='apunteRelacionado_3' class='apunteRelacionado conFoto' onmouseover=javascript:$('#textoRelacionado_3').fadeIn(); ><div class='imagenRelacionada'><a href='http://www.trebol-a.com/2007/12/03/sms-gratis-desde-la-consola/'><img src='http://lh4.ggpht.com/_j0yUu1KBjps/TFwMsajaXKI/AAAAAAAABBQ/JqDZ-M7Fa4g/2081480647_1d842cc6a0_o.jpg'/></a></div><div id='textoRelacionado_3' class='textoRelacionado' style='display:none;'><a class='tituloRelacionada' href='http://www.trebol-a.com/2007/12/03/sms-gratis-desde-la-consola/'>Sms gratis desde la cons</a><p >Twitter es un servicio relativamente nuevo y, al menos para un servidor, realmente incomprensible. Seguro que muchos ya lo conocen ya</p><a class='sigueRelacionada' href='http://www.trebol-a.com/2007/12/03/sms-gratis-desde-la-consola/'>Sigue...</a></div></div><!---apunteRelacionado--></li> <li><div class='apunteRelacionado sinFoto'><div class='textoRelacionado'><a class='tituloRelacionada' href='http://www.trebol-a.com/2010/07/18/mousewheel/'>Mousewheel</a><p>Acabo de incorporar al javascript del Cuaderno de campo la extensión para jQuery que añade funcionalidades para manejo de eventos de</p><a class='sigueRelacionada' href='http://www.trebol-a.com/2010/07/18/mousewheel/'>Sigue...</a></div></div><!---apunteRelacionado--></li> </ul> </div> <div id="comments"> <h5>Comentarios</h5> <ol class="commentsList"> <li id="commentPreview" class="par"> <img class="avatar" src="http://www.trebol-a.com/wp-content/themes/trebol9/images/previocomentario.png" title="Esta es una previsualización aproximada del aspecto que tendrá tu comentario." /> <span class="autor"></span> <span class="fecha"><a href="">10 de septiembre, 2010</a></span> <span class="otrosComentarios"></span> <span class="content"></span> </li> </ol> <!-- formulario--> <h5>Deja tu comentario</h5> <form action="http://www.trebol-a.com/wp-comments-post.php" method="post" id="commentForm" name="commentForm"> <p><input type="text" name="author" id="author" value="" size="22" tabindex="1" onblur="previocomentarios()" /> <label for="author">Nombre <small>(si quieres)</small></label></p> <p><input type="text" name="email" id="email" value="" size="22" tabindex="2" /> <label for="email">E-mail <small>(no es obligatorio)</small></label></p> <p><input type="text" name="url" id="url" value="" size="22" tabindex="3" onkeyup="previocomentarios()"/> <label for="url">Tu página personal <small>(si tienes y quieres)</small></label></p> <p><textarea name="comment" id="comment" tabindex="4" onkeyup="previocomentarios()" onkeydown=pulsaciones.value=eval(pulsaciones.value)+1;></textarea></p> <p id="botonEnviar"> <input name="submit" type="submit" id="submit" tabindex="5" value="Enviar comentario" /> <input type="hidden" name="pulsaciones" value=0 /> <input type="hidden" name="comment_post_ID" value="3178" /> </p> <p id="conditions"> <b>Nota</b>:<br/> Ninguno de los campos es obligatorio, pero lógicamente, sino pones un nombre te lo ponemos nosotros para poder referirnos a tí. Los comentarios son moderados y se elimanará el spam, la provocación, el insulto, etc... Si eres capaz de soportar esto puedes escribir lo que quieras, expresar tu opinión como mejor te parezca o hacer sugerencias.<br/> Las direcciones web (http://...) son formateadas automáticamente. Simplemente pega la dirección donde quieras que aparezca.<br/> Solo se admiten 2 enlaces web por comentario, más enlaces provocan la moderación del comentario<br/> Se toleran algunas etiquetas HTML como:<b> <s> <i> <a> </p> </form> </div> </div><!-- content--> <div id="sidebar" class="sidebar"> <div class="expositor slider" id="galeria"> <div class="sFijo"> <div class="sDeslizante" id="galeria_0"></div> <div class="sDeslizante" id="galeria_1"></div> </div> </div> <div id="busqueda" class="expositor" title="Busca palabras en todos los apuntes publicados"> <h5>Buscar</h5> <fieldset title="Términos de búsqueda"> <form method="get" id="formulariobusqueda" action="http://www.trebol-a.com/" name="formulariobusqueda"> <input title="Entre un término a buscar y pulse ENTER ó ACEPTAR" type="text" alt="Formulario de busqueda" value="" name="s" id="s" onfocus="this.className='dentro'" onblur="this.className='fuera'" tabindex="0" accesskey="B" /> <input type="submit" value=">" /> </form> </fieldset> </div> <div id="menu" class="expositor"> <h5>Este apunte</h5> <ul> <li>Autor: <a href="http://www.trebol-a.com/author/admin/" title="Entradas de Trebol-A">Trebol-A</a></li> <li><a href="#commentForm" title="Deja tu comentario">Deja tu comentario</a></li> <li>Enlace corto: <a href="http://wp.me/p11i89-Pg">http://wp.me/p11i89-Pg</a></li><!-- <li><a href="?article2pdf=1">Descargar PDF</a></li> --> </ul> </div> <div id="paginadorApuntes" class="expositor"> <h5>Apuntes cercanos</h5> <ul id="apuntes_siguientes"> <li class='anterior'>Despues<br/><a href="http://www.trebol-a.com/2010/07/16/el-perroflauta/" rel="next">El perroflauta</a></li><li class='posterior'>Antes<br/><a href="http://www.trebol-a.com/2010/07/14/panda-de-descerebrados/" rel="prev">Panda de descerebrados</a></li> </ul> </div> <div id="calendar" class="expositor"> <table id="wp-calendar" summary="Calendario"> <caption>julio 2010</caption> <thead> <tr> <th scope="col" title="Lunes">L</th> <th scope="col" title="Martes">M</th> <th scope="col" title="Miércoles">X</th> <th scope="col" title="Jueves">J</th> <th scope="col" title="Viernes">V</th> <th scope="col" title="Sábado">S</th> <th scope="col" title="Domingo">D</th> </tr> </thead> <tfoot> <tr> <td colspan="3" id="prev"><a href="http://www.trebol-a.com/2010/06/" title="Ver todas las entradas para junio 2010">« jun</a></td> <td class="pad"> </td> <td colspan="3" id="next"><a href="http://www.trebol-a.com/2010/08/" title="Ver todas las entradas para agosto 2010">ago »</a></td> </tr> </tfoot> <tbody> <tr> <td colspan="3" class="pad"> </td><td><a href="http://www.trebol-a.com/2010/07/01/" title="Cliente para twitter en una sola línea, El momento adecuado del hito, Ampliando a 640 pixels">1</a></td><td><a href="http://www.trebol-a.com/2010/07/02/" title="Salvar cabo de Gata, ">2</a></td><td><a href="http://www.trebol-a.com/2010/07/03/" title="Encuesta rapidilla">3</a></td><td><a href="http://www.trebol-a.com/2010/07/04/" title="Acuerdo por el Sahara">4</a></td> </tr> <tr> <td><a href="http://www.trebol-a.com/2010/07/05/" title="Herrerillo capuchino">5</a></td><td>6</td><td><a href="http://www.trebol-a.com/2010/07/07/" title="Grandes concursos fotográficos, ">7</a></td><td><a href="http://www.trebol-a.com/2010/07/08/" title="Salsa de Beethoven">8</a></td><td><a href="http://www.trebol-a.com/2010/07/09/" title="8 meses en 38 segundos">9</a></td><td><a href="http://www.trebol-a.com/2010/07/10/" title="De las pensiones, Oropéndola">10</a></td><td><a href="http://www.trebol-a.com/2010/07/11/" title="Nada nuevo">11</a></td> </tr> <tr> <td><a href="http://www.trebol-a.com/2010/07/12/" title="Mientras dormias">12</a></td><td><a href="http://www.trebol-a.com/2010/07/13/" title="Cosas del verano, SpainFantasma">13</a></td><td><a href="http://www.trebol-a.com/2010/07/14/" title="El nenufar y la rana, Panda de descerebrados">14</a></td><td><a href="http://www.trebol-a.com/2010/07/15/" title="Flickr2Twitter script bash">15</a></td><td><a href="http://www.trebol-a.com/2010/07/16/" title="El perroflauta, Jauria humana">16</a></td><td><a href="http://www.trebol-a.com/2010/07/17/" title="Patti Smith and band, Mito">17</a></td><td><a href="http://www.trebol-a.com/2010/07/18/" title="Mousewheel">18</a></td> </tr> <tr> <td><a href="http://www.trebol-a.com/2010/07/19/" title="Mi línea política, Tiran más dos tetas que dos carreras">19</a></td><td><a href="http://www.trebol-a.com/2010/07/20/" title="Cogujada montesina, Juegos infantiles tradicionales: Carioca y paracaidas">20</a></td><td>21</td><td><a href="http://www.trebol-a.com/2010/07/22/" title="Flora vascular de Andalucia Occidental vol.1, Microrelatos en Libro de notas">22</a></td><td><a href="http://www.trebol-a.com/2010/07/23/" title="">23</a></td><td><a href="http://www.trebol-a.com/2010/07/24/" title="Punto de restauración">24</a></td><td><a href="http://www.trebol-a.com/2010/07/25/" title="Estás pa mojar pan, Flora vascular de andalucia occidental vol. 2 y 3">25</a></td> </tr> <tr> <td><a href="http://www.trebol-a.com/2010/07/26/" title="Alzacola">26</a></td><td>27</td><td><a href="http://www.trebol-a.com/2010/07/28/" title="y Ole!, Crítica cinematográfica sin contemplaciones X">28</a></td><td><a href="http://www.trebol-a.com/2010/07/29/" title="Entrevista a López Uralde">29</a></td><td>30</td><td><a href="http://www.trebol-a.com/2010/07/31/" title="Amarok2twitter">31</a></td> <td class="pad" colspan="1"> </td> </tr> </tbody> </table></div> </div><!-- barralateral --> <div id="footer" class="footer" title="Información acerca de este sitio"> <p id="credits" title="Sobre los autores"><strong>Cuaderno de campo</strong> es un blog mantenido por Trebol-a y en el que escriben Trebol-a, Miguel y Mónica<br/>Si quieres saber algo más sobre los autores acude a la página <a href="/acerca-de/">acerca-de</a>, si quieres contactar con alguno de nosotros hazlo a través de <a href="/contacto/">contactar</a></p> <p id="license" title="Sobre la licencia CC de uso"><strong>Creative Commons</strong>: Todo el contenido de la web (imágenes, textos, vídeos, a excepción de aquellas obras de otros autores enlazados por <strong>Cuaderno de Campo</strong>) se acoge a los términos expresados en la licencia <a href="http://creativecommons.org/licenses/by-nc/2.5/es/">Creative Commons</a></p> </div> <!--stats_footer_test--><script src="http://stats.wordpress.com/e-201036.js" type="text/javascript"></script> <script type="text/javascript"> st_go({blog:'15084361',v:'ext',post:'3178'}); var load_cmc = function(){linktracker_init(15084361,3178,2);}; if ( typeof addLoadEvent != 'undefined' ) addLoadEvent(load_cmc); else load_cmc(); </script> </div><!-- pagina --> </body> </html>