Analiza tu archivo de Twitter con TweetArchive

A finales de septiembre me alegró saber que Twitter estaba preparando una opción para descargarnos todos nuestros tweets, una opción que desde hace mucho tiempo estaba pidiendo a gritos. En múltiples ocasiones, por ejemplo, he querido buscar un tweet que escribí hace unos días pero la búsqueda web sólo ofrece resultados recientes. Por otra parte, la API de Twitter sólo permite acceder a los últimos 3.200 tweets, con lo que si tienes más, no es posible tener acceso a ellos mediante servicios web o similares. Por supuesto, los tweets siguen ahí, pero no había modo de verlos a no ser que conservases su enlace directo.

La solución a todos esos problemas es la opción que ahora nos ofrece Twitter: descargarnos todos nuestros tweets localmente. Y esa opción por fin ha llegado. Bueno, o más bien lo está haciendo poco a poco. La primera noticia que tuve de que por fin se estaba activando esta opción en algunas cuentas me llegó de The Next Web, el domingo 16 de diciembre. Por supuesto, The Vergue cubrió también la noticia y, gracias a uno de sus lectores que colgó su archivo en Internet, pude ver su interfaz. Y también lo más importante: el formato de los archivos que realmente guardaban la información de los tweets.

Un poco de historia

Junto a otra muestra del archivo proporcionado por Twitter que también pude obtener a través de los mismos comentarios, en la madrugada del martes siguiente me animé a iniciar un nuevo proyecto. El resultado es el que puedes observar: TweetArchive. Si antes habías utilizado TweetStats, la aplicación te resultará bastante familiar. No es casualidad, puesto que inicialmente mi propósito era hacer algo parecido a las funciones de esa página, dado que me gustaba bastante pero lamentablemente ahora está abandonada y no funciona correctamente. De hecho, inicialmente TweetArchive se iba a llamar TweetStats, pero me pareció que eso ya era pasarse con la “inspiración”.

Twitter nos había prometido que antes de fin de año podríamos descargar nuestros tweets, así que nada, me puse manos a la obra y en menos de dos semanas, justo el día 31, tuve lista mi primera versión. Pero claro, las prisas nunca son buenas y me encontré con un problema.

En el archivo que te proporciona Twitter vienen dos formatos para consumir información de los tweets, uno en archivos CSV y otro en archivos JSON. El formato CSV ya lo conocía; simplemente se trata de un archivo de texto con campos separados por comas. El otro, JSON, me sonaba pero nada más. El formato JSON es el “nativo” de Twitter, donde realmente está toda la información de los tweets, pero a la hora de leerlos por mi aplicación me decanté por lo fácil, por lo que ya conocía: los CSV. En principio no había problema porque, aunque los CSV no contenían más que la información básica, era lo suficiente para lo que tenía en mente. He de decir que antes de tomar esa decisión me planteé usar JSON, porque es lo lógico, pero al buscar un poco vi que no me enteraba de mucho y como quería empezar ya a programar pues… Evidentemente esto fue un gran error.

Como antes comentaba, durante todo el tiempo de desarrollo estuve testeando la aplicación con tan solo dos muestras del archivo de Twitter. Una de ellas, la de mi ya ‘conocido amigo’ @rivanov (por el tiempo que he pasado jugando con su archivo), que tenía más de 8.000 tweets, y la otra, @Shoppers_Talk, que no llegaba a los 15 tweets. Bien, el problema vino cuando, una vez terminada la primera versión, se me ocurrió hacer una búsqueda en Google para a ver si encontraba más muestras del archivo de otras personas, para confirmar que el programa funcionaba correctamente con cualquier archivo.

Encontré seis más, y ¡cuál fue mi sorpresa al ver que el formato de los CSV de todos ellos era completamente diferente! Por supuesto, mi programa falló a la primera de cambio puesto que no entendía el nuevo formato de los CSV. Resulta que estos nuevos archivos contenían una versión de los CSV más completa, con más datos. Intuí que con los que había estado trabajando hasta ese momento eran una versión “beta” proporcionada a los primeros en tener la opción de descargarse todos los tweets.

Fue bastante frustrante ver que, teniendo ya la aplicación lista para ser publicada, no poder hacerlo porque no funcionaría con ningún archivo. Pero esta vez hice las cosas como tocan y no se me ocurrió la terrible idea de adaptar mi código al nuevo formato de los CSV, sino adaptarlo al formato JSON, que ese no cambia así como así. Volví a buscar información acerca de cómo hacerlo, esta vez con más calma y paciencia, y después de unos intentos fallidos resultó ser lo más sencillo del mundo. De hecho, muchísimo más fácil que leer la información de los dichosos CSV, que, para agravar más las cosas, no eran muy consistentes que digamos. Y menos mal que fue así, porque el error de usar los CSV podría haberlo pagado muy caro, hasta el punto de no lanzar la aplicación. Lástima no haber empezado directamente a trabajar con JSON, me hubiera evitado unos cuantos problemas. Lección aprendida.

Una vez solucionado el problema, he mejorado algunas cosillas y arreglado algunos errores menores. Así he llegado a la versión 1.1, que es la que está ahora disponible para su descarga. De momento a mí no me han activado la opción para bajarme todos mis tweets (mal, Twitter, mal), así que no he podido probar mi aplicación con mis propios tweets, ¡espero hacerlo pronto!

Debido a que ahora tengo bastante más información de los tweets, el programa tiene bastante margen de mejora. ¡Así que si te gusta TweetArchive permanece atento a las actualizaciones! Puedes hacerlo desde el menú Ayuda > Buscar actualizaciones.

Vale, pero ¿qué es y para qué sirve TweetArchive?

En pocas palabras, TweetArchive te permite obtener gráficas y estadísticas a partir de tu archivo de Twitter. Arrástralo a la pantalla de inicio y en pocos segundos te aparecerán todo tipo de interesantes gráficas: número de tweets totales, por años, por meses, por días, por día de la semana, por hora del día…

Pestaña General (todos por meses)

En la pestaña “Menciones y Retweets” podrás ver con quién te relacionas más en forma de menciones o respuestas, al igual que a quiénes retwitteas más a menudo. También te ofrece una gráfica indicándote qué tipo de tweet sueles hacer más:

Pestaña Menciones y Retweets

También puedes ver una nube de tus palabras y hashtags más utilizados si pinchas en la pestaña “Palabras y Hashtags”:

Pestaña Palabras y Hashtags

Y por último, en la pestaña “Timeline” podrás leer cronológicamente todos tus tweets del intervalo de tiempo que prefieras. También puedes filtrarlos por palabras o por hashtags.

Pestaña Timeline

Como decía antes, tengo intención de ampliar pronto sus funcionalidades, aunque de momento me vaya a tomar unas semanas de “descanso”. Y por supuesto, si tienes alguna idea para implementarla en TweetArchive, comunícamelo sin compromiso alguno y la estudiaré.

Algunas curiosidades técnicas

.NET 2

TweetArchive es mi primera aplicación que desarrollo en C# fuera de proyectos de la universidad. Hasta ahora usaba Visual Basic, que fue el primer lenguaje que aprendí y me resultaba cómodo de programar. Pero el descubrimiento de C# en un proyecto en la universidad me ha hecho cambiar completamente de opinión y ha pasado a ser mi lenguaje de programación favorito, de lejos.

Con TweetArchive, aparte de “estrenar” lenguaje, también estreno framework. Con mis anteriores aplicaciones empleaba el 2.0, suficiente para las funciones que necesitaba. Pero con TweetArchive me he tenido que pasar al .NET Framework 3.5 porque ciertos componentes los requerían. Precisamente uno de ellos, el más esencial en esta aplicación, lo necesitaba. Hablo de MSChart, un componente de Microsoft para la generación de gráficos. Es increíblemente potente, tiene millones de posibilidades y configuraciones. Tal vez por ello me costó un poco controlarlo, nunca mejor dicho.

El cambiar a la versión 3.5 significa que TweetArchive no funciona en sistemas operativos anteriores a Windows XP (ohhh…!), y a este último hay que instalarle el paquete correspondiente si no lo tiene ya. En Windows Vista y 7 creo que funciona sin necesidad de instalar nada adicional y en Windows 8 hay que activar una casilla en “Activar características de Windows”, aunque esto último también había que hacerlo con la versión 2.0.

Por último, me gustaría destacar que, aparte del error cometido eligiendo inicialmente CSV frente a JSON, he aprendido / adquirido experiencia en varias cosas. Aquí las más importantes:

  • LINQ: Es una de las ventajas del framework 3.5 frente al 2.0. Lo he utilizado en ciertas ocasiones y me ha venido muy bien. Es increíblemente potente, así que desde luego no puedo decir que “he aprendido LINQ”, pero al menos ya sé un poco cómo va la cosa.
  • MSChart: El componente de Microsoft del que hablaba antes. Me ha dado varios dolores de cabeza pero es muy bueno. Infinitas posibilidades para cualquier tipo de gráfica que se te ocurra.
  • Expresiones regulares: Nunca las había usado antes fuera de cierta asignatura de la universidad, pero me han resultado útiles en ciertas operaciones con strings.
  • Parsear JSON: Mucho más sencillo de lo que creía en un principio, y muy potente también. ¡Di no a los CSV!
  • Creación de controles personalizados: Para mostrar los tweets en la pestaña Timeline, un simple ListView en vista detalle era demasiado cutre y poco vistoso, así que decidí informarme para ver si era viable crearme un control personalizado y así fue. Muy sencillo pero interesantísimo.

Así que dejando de lado el (poco) éxito que esta aplicación pueda tener, me siento satisfecho en cuanto los conocimientos adquiridos.

Y nada más, os dejo con la página de descarga de TweetArchive (donde encontrarás más información e imágenes) y su enlace directo de descarga. Si tenéis la opción activa ya, decidme qué os parece. Y si estáis todavía esperándola como yo, recordad que cuando os la activen, aquí tenéis una aplicación que os puede interesar.

6 comentarios / Añade el tuyo debajo

  1. Muy bueno! Más allá de la experiencia que adquieras a la hora de programar, esto será muy útil para controlar de lo que has hablado en twitter, en que han variado tus gustos, etc.
    Voy a probarlo de inmediato! Un Saludo!

    1. Hola Pascual!

      Muchas gracias! De eso se trata al publicarla, de que le sea útil al mayor número de gente posible :D

      Me alegro de verte de nuevo por aquí! :)
      Un saludo!

  2. Grande herramienta!!! Muchas gracias! A veces se me olvidan las cosas que publico y con esta herramienta podré recuperarlas! Un saludo desde Barcelona!

    1. Muchas gracias a ti por descargarla y tomarte la molestia de escribirme un comentario, lo valoro mucho :D

      Un saludo!

  3. Hola Carlos:

    Por que no se puede maximizar o cambiar de tamaño tu aplicacion para poder verla completamente en un mini lap top, pues sino no puedo utilizar el scroll para ver los tweets en la “time-line” ni seleccionarlos por fechas al no ver completamente todo el recuadro para ello

    y por otro lado sabrias decirme porque no me funciona el archivo html para ver el archivo de mis tweets. Quizas es alguna incompatibilidad con mi antivirus, no lo se.
    gracias

    1. Hola Ivan,

      Primero de todo, muchas gracias por descargarte TweetArchive :)

      Lo que me comentas del tamaño de la ventana de la aplicación lo intentaré solucionar en la versión 2.0, que espero tener lista en unos pocos meses. Tal y como está ahora sé que es un problema para pantallas pequeñas. El scroll en la pestaña del timeline, aunque no te quepa la barra de desplazamiento en la pantalla, puedes usar la rueda del ratón (imagino que trackpad en tu caso) para desplazarte sobre ellos.

      Para ver el archivo html, mejor descomprime primero el archivo zip y luego ábrelo, así te debería funcionar. Si crees que es cosa de tu antivirus, puedes desactivarlo temporalmente y probarlo.

      Saludos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados con *