Trasladarse de aNobii a Goodreads
Llevaba una temporada planteándome la posibilidad de pasar de aNobii a Goodreads, dos aplicaciones para apuntar nuestros libros y llevar un registro de lo que hemos leído, queremos leer, etc. El principal problema a la hora de tomar este tipo de decisiones, aparte de si la aplicación es convincente o no (Goodreads todavía no tiene aplicación oficial para Android, pero sí para iPhone, así que espero que sea cuestión de tiempo), suele ser la posibilidad de transferir la información de un sitio a otro de una manera relativamente sencilla.
En este caso, a la pregunta de si existe una manera relativamente sencilla de transferir la información que tenemos en aNobii a Goodreads, la respuesta es sí, pero. Es decir, sí se puede hacer de una manera relativamente sencilla (gracias al script de Giacomo Lacava), pero requiere algunos retoques que comparto a continuación.
- Exportar librería desde aNobii. Seleccionar “My shelf” y formato CSV. El archivo de exportación llegará por email.
- En el archivo original exportado desde aNobii (se puede abrir con OpenOffice Spreadsheet o MS Office Excel), vaciar todo el contenido de la columna “Publication date” (GoodReads lo rellenará automáticamente de sus propias bases de datos). Guardarlo como
anobii.csv - Descargar el script
anobii-to-goodreads.pyy modificar las filas 2 y 3 de ese archivo, con las rutas absolutas al archivo de exportación modificado y al archivo de destino, respectivamente (anobii.csveimport_to_goodreads.csv, por ejemplo). - Ejecutar el script con el comando
python anobii-to-goodreads.py(o el equivalente en otro sistema operativo que no sea Linux). Si todo va bien, este script generará un segundo archivo CSV, llamadoimport_to_goodreads.csv - Si utilizamos este archivo para importarlo a GoodReads, añadirá todos los libros y la valoración que le hayamos dado en aNobii, en la librería “read”. Si te vale con esto, puedes dejar de leer aquí e importar el archivo sin más. Sin embargo, es posible añadir alguna información más con unos cambios relativamente sencillos en este segundo archivo.
- Al abrir el archivo vemos que ha hecho una cosa rara con los títulos de los libros; no importa demasiado, porque GoodReads cogerá la información de sus bases de datos según el ISBN. Lo que sí podemos hacer es traer las etiquetas para importarlas a GoodReads: copiar la columna Tags del archivo
anobii.csvy pegarla en la columna Bookshelves del archivoimport_to_goodreads.csv(sin olvidar mantener el nombre de la columna como Bookshelves). Sobra el separador de las etiquetas, así que seleccionamos toda la columna,Editar > Buscar y reemplazar...y buscamos ” / ” (sin comillas:espacio+/+espacio) y lo reemplazamos con ” ” (sin comillas:espacio),Sólo en la selección actual(enMás opciones). - También podemos recuperar la fecha en la que hemos leído los libros, aunque esto nos llevará algo más de trabajo. Esta información tiene que ir en la columna Date Read del archivo
import_to_anobii.csvcon formatoMM/DD/AA. Para esto, copiar la columna Status del archivoanobii.csvdespués de la última columna del archivoimport_to_goodreads.csv(columna T).- Etiquetar los libros que no hemos leído. En la siguiente columna (U), utilizar la siguiente formula en la primera fila
=SI(ENCONTRAR("Finished";T2);x;T2)y extenderla al resto de filas. Esto devolverá un error si la columna U no contiene el texto «Finished», y copiará su contenido si lo contiene. En la siguiente columna (V), utilizar la siguiente fórmula en la primera fila=SI(ESTEXTO(U2);U2;"")y extenderla al resto de filas. Esto deja en blanco las celdas con el error#VALOR!. Copiar esta columna (V) y pegarla en la columna T, utilizandoEditar > Pegado especialpara pegar sólo los resultados y no las fórmulas. - Buscar y reemplazar «Finished on » y «Finished in » por nada (campo
Reemplazarvacío); es importante añadir un espacio después de «on » e «in », para que se formateen las fechas automáticamente. Funcionará para la mayoría de los casos, pero si tenemos la aplicación en español habrá que traducir algunas abreviaturas de meses:JanaEne,AugaAgo,DecaDic… Esto nos deja todas las fechas con el formatoDD/MM/AA. Para terminar, modificar el formato de las celdas para que las fechas estén en el formato correcto: seleccionar toda la columna,clic con el botón derecho,Formatear celdas,Categoría: Fechay enCódigo del formato: MM/DD/AA. - Ahora ya podemos copiar el contenido de esta columna (T) y pegarlo en la columna Date Read (L). También conviene borrar el contenido de las columnas extra que hemos ido creando (desde la T en adelante).
- Para terminar, también podemos indicar qué libros no hemos leído. En Goodreads esto se hace mediante Bookshelves, el equivalente de las etiquetas en aNobii. Existen algunas bookshelves “exclusivas”, en el sentido de que son autoexcluyentes, que se utilizan para indicar el estado de lectura. Por defecto Goodreads aplica la etiqueta read a todos los libros a no ser que lleven alguna otra etiqueta exclusiva, así que lo primero es crear una etiqueta exclusiva en Goodreads llamada unread. Después añadiremos la etiqueta a los libros sin una fecha de lectura: otra vez en la columna T, utilizamos la siguiente fórmula en la primera fila
=SI(ESBLANCO(N2);SI(ESBLANCO(L2);"unread";" ");SI(ESBLANCO(L2);CONCATENAR(N2;" unread");N2))y la copiamos al resto de celdas. Copiar el contenido de la columna T y pegarlo (Pegado especial, sin fórmulas) en la columna N, la correspondiente a Bookshelves.
- Etiquetar los libros que no hemos leído. En la siguiente columna (U), utilizar la siguiente formula en la primera fila
- Ahora sí, podemos importar el archivo
import_to_goodreads.csv. Goordreads empezará a importar nuestros libros. El mensaje «note: We weren’t able to parse your file correctly, and have scanned it for ISBN numbers. While this will work, no meta-data will be imported (reviews/ratings/shelves). Making sure to save your file as a CSV often helps correct this.» significa que ha habido algún error con el archivo; seguramente se importarán correctamente los libros, pero no entrarán las fechas de lectura ni las etiquetas. Lo más probable es que esto ocurra por algún problema con el formato de la fecha (el correcto es MM/DD/AA). Si no vemos este mensaje, todo ha ido OK. ¡Felicidades!
En esa misma pantalla, en Status of your imports, iremos viendo cómo va la importación. Es posible que haya algunos libros que no se puedan importar, pero generalmente serán pocos; habrá que pasarlos manualmente. Tampoco estará de más revisar las cantidades totales de libros leídos, sin leer etc., para compararlos con aNobii. En mi caso han sido pequeñas cosas, así que me he ahorrado un tiempo considerable tuneando el archivo para importarlo automáticamente. Espero que te sirva.
Trasladarse de @aNobii a @Goodreads #how-to http://bit.ly/dwbCjm Exportar/importar, fácil, sencillo y para toda la familia… o casi.
Trasladarse de @aNobii a @Goodreads #howto http://bit.ly/dwbCjm Exportar/importar, fácil, sencillo y para toda la familia… o casi.
Ahora, otro post para explicar a los windows-eros como pueden llevar a cabo el paso 3 XDDD
Bah, los Windowseros son perfectamente capaces de averiguarlo por sí solos…
Mira qué how-to más majo me ha pasado Jordi para importar la biblioteca de #aNobii en #GoodReads: http://bit.ly/9098Cx
Lista de problemas (y soluciones, donde corresponda):
1. Si abro el CSV en Excel para borrar la columna, me guarda el CSV en ANSI y se me corrompe el archivo. OpenOffice y Google Spreadsheets no corrompen el archivo.
2 La ruta absoluta de las líneas 2 y 3 del script hay que ponerla con las barras invertidas escapadas en Python. Es decir, dos barras en lugar de una. Al menos es así en Python 2.7 bajo Windows 7.
3. El script se quejaba de “list index out of range”. Me imaginaba que el archivo era demasiado grande, así que lo he partido en archivos de 99 registros. Nada, se sigue quejando. ¿Alguna sugerencia?
Vale, mea culpa. Donde ponía “vaciar todo el contenido de la columna Publication date” he leído “eliminar la columna Publication date”. ¡Si es que hay que leer!
¡Gracias por el tuto!
Me alegro de que hayas conseguido solucionar tus problemas, y gracias por compartirlos