Tengo muchos elementos destacados y notas en iBooks que he leído, y me gustaría poder recopilarlos en uno fácil de usar. y manipular el formato (por ejemplo, para escribir artículos y citar citas).

Por ejemplo, me gustaría un resaltado como este

para producir algo (p. ej., en CSV) como

Quod me nutrit me destruit – lo que me sostiene también me destruye, 14, Tamburlane Partes uno y dos, Christopher Marlowe, Anthony B . Dawson ed., Bloomsbury, https://itun.es/us/qSrZ0.l

Puedo ver cómo hacer esto (un poco) laboriosamente, una nota a la vez, usando la función «compartir» de iBook (o copiar y pegar, por supuesto) pero no veo ninguna forma de hacerlo a granel, para todas mis notas de un libro, o incluso para todos mis libros.

¿Hay alguna forma de lograr esto, con un Apple Script o usando Automator, por ejemplo? O quizás hay un texto o archivo XML que contenga mis notas y destaque que podría escribir un script (en Python, preferiblemente) para analizar.

Comentarios

  • La solución, es resulta, (como en muchos casos), dejar atrás a Apple y cambie a Kindle, que tiene un gran soporte para exportar notas y resaltados.

Respuesta

iBooks no «t tienen soporte para AppleScript. Las anotaciones se almacenan en un archivo SQLite : ~/Library/Containers/com.apple.iBooksX/Data/Documents/AEAnnotation/.

Puede intentar analizar ese. Esta respuesta proporciona un vínculo a Digested , que lee esa base de datos y luego le permite exportar tus anotaciones en Evernote, pero no sé qué formato tendrán o si quieres jugar con Evernote.

Una solución (posiblemente) simple sería abrir el libro en iBooks para iOS. A continuación, puede enviarse las anotaciones por correo electrónico de forma masiva.

  1. Abra el libro
  2. Presione el «botón de lista» para que aparezca la Tabla de contenido
  3. Cambie a la pestaña Notas
  4. Presione el botón Compartir
  5. Seleccione Editar notas
  6. Seleccionar todo
  7. Compartir por correo electrónico.

Editar:

En realidad, después de leer a comenta en reddit , parece que hay una forma de exportarlos todos desde iBooks en OS X también:

Puedes exportar tus notas en un correo electrónico desde Notas -> Seleccionar todo -> Compartir (debe mantener presionada la tecla Ctrl mientras hace clic con el botón derecho para retener su selección). Las partes resaltadas se copiarán en el correo electrónico con sus notas y se formatearán de forma agradable. Curiosamente, en Mac, a la aplicación no le importa si el libro está protegido contra copia; siempre copiará la parte resaltada. Sin embargo, la aplicación iOS discrimina. Si su libro está protegido contra copia, solo se compartirá el nombre del capítulo. Desafortunadamente, esa parece ser la única forma de hacerlo.: /

Usando el trackpad de mi computadora portátil, tuve que mantener presionado ctrl + shift mientras toca el trackpad para que aparezca el menú contextual mientras se conserva la selección.

Comentarios

  • Esto es muy útil. Sin embargo, ‘ todavía estoy muy lejos de obtener las anotaciones en un CSV u otra forma conveniente. No puedo ‘ hacer nada con la base de datos SQL, y el correo, aunque tiene un aspecto agradable, no es ‘ t accesible mediante programación.
  • ¿Soy solo yo o ya no es posible en la nueva versión de iBooks? Ya no ‘ veo el botón Editar notas. En cuyo caso, ¿cómo exporto todas mis notas?
  • @incandescentman Está ‘ ahí para mí en iOS 8.4.
  • @ incandescentman Los pasos numerados en mi respuesta anterior fueron para iOS. La última parte de la respuesta, la sección después de » Edit «, es para OS X. Eso todavía me funciona en Yosemite.
  • Entonces, ‘ estoy en el capitan ahora, pero las instrucciones de ese comentario de reddit todavía funcionan para mí. Supongo que el proceso difiere ligeramente dependiendo de si ‘ está usando un mouse o un trackpad. Usando la computadora portátil sin un teclado / mouse externo, después de haber seleccionado los comentarios usando seleccionar todo, presiono control + shift + toque en el trackpad. Eso trae esto: captura de pantalla . Se seleccionan los comentarios de los capítulos.

Responder

He escrito un guión para este propósito que extrae las notas desde tu Mac y genera archivos de exportación de Evernote, listos para hacer doble clic. Quizás podrías modificar mi script si no se ajusta a tus propósitos con precisión.

En resumen, lee las bases de datos SQLite en:./Library/Containers/com.apple.iBooksX/Data/Documents/BKLibrary ./Library/Containers/com.apple.iBooksX/Data/Documents/AEAnnotations

… y en este caso, los exporta al formato .enex de Evernote.

https://github.com/jorisw/ibooks2evernote/

 <?php /* * iBooks notes to Evernote converter * by Joris Witteman <[email protected]> * * Reads the iBooks Annotations library on your Mac and exports * them, tagged with their respective book title and imported in * separate notebooks. * * Usage: * * Move this script to the top of your personal home directory on your Mac. * This is the folder that has your name, which the Finder opens if you * click on the Finder icon in the Dock. * * To export your notes to Evernote: * * 1. Run the following command in the Terminal: * * php ./ibooks2evernote.php * * 2. Open the newly created "iBooks exports for Evernote" folder from your * home folder, open each file in there, Evernote will open and start * importing your notes. * */ // Default file locations for required iBooks data define("RESULT_DIRECTORY_NAME","iBooks exports for Evernote"); define("BOOKS_DATABASE_DIRECTORY","./Library/Containers/com.apple.iBooksX/Data/Documents/BKLibrary"); define("NOTES_DATABASE_DIRECTORY","./Library/Containers/com.apple.iBooksX/Data/Documents/AEAnnotation"); if(file_exists(RESULT_DIRECTORY_NAME)){ die("The destination folder for the exports already exists on your Mac.\nPlease move that one out of the way before proceeding.\n"); } // Verify presence of iBooks database if(!file_exists(BOOKS_DATABASE_DIRECTORY)){ die("Sorry, couldn"t find an iBooks Library on your Mac. Have you put any books in there?\n"); }else{ if(!$path = exec("ls ".BOOKS_DATABASE_DIRECTORY."/*.sqlite")){ die("Could not find the iBooks library database. Have you put any books in there?\n"); }else{ define("BOOKS_DATABASE_FILE",$path); } } // Verify presence of iBooks notes database if(!file_exists(NOTES_DATABASE_DIRECTORY)){ die("Sorry, couldn"t find any iBooks notes on your Mac. Have you actually taken any notes in iBooks?\n"); }else{ if(!$path = exec("ls ".NOTES_DATABASE_DIRECTORY."/*.sqlite")){ die("Could not find the iBooks notes database. Have you actually taken any notes in iBooks?\n"); }else{ define("NOTES_DATABASE_FILE",$path); } } // Fire up a SQLite parser class MyDB extends SQLite3 { function __construct($FileName) { $this->open($FileName); } } // Retrieve any books. $books = array(); $booksdb = new MyDB(BOOKS_DATABASE_FILE); if(!$booksdb){ echo $booksdb->lastErrorMsg(); } $res = $booksdb->query(" SELECT ZASSETID, ZTITLE AS Title, ZAUTHOR AS Author FROM ZBKLIBRARYASSET WHERE ZTITLE IS NOT NULL"); while($row = $res->fetchArray(SQLITE3_ASSOC) ){ $books[$row["ZASSETID"]] = $row; } $booksdb->close(); if(count($books)==0) die("No books found in your library. Have you added any to iBooks?\n"); // Retrieve the notes. $notesdb = new MyDB(NOTES_DATABASE_FILE); if(!$notesdb){ echo $notesdb->lastErrorMsg(); } $notes = array(); $res = $notesdb->query(" SELECT ZANNOTATIONREPRESENTATIVETEXT as BroaderText, ZANNOTATIONSELECTEDTEXT as SelectedText, ZANNOTATIONNOTE as Note, ZFUTUREPROOFING5 as Chapter, ZANNOTATIONCREATIONDATE as Created, ZANNOTATIONMODIFICATIONDATE as Modified, ZANNOTATIONASSETID FROM ZAEANNOTATION WHERE ZANNOTATIONSELECTEDTEXT IS NOT NULL ORDER BY ZANNOTATIONASSETID ASC,Created ASC"); while($row = $res->fetchArray(SQLITE3_ASSOC) ){ $notes[$row["ZANNOTATIONASSETID"]][] = $row; } $notesdb->close(); if(count($notes)==0) die("No notes found in your library. Have you added any to iBooks?\n\nIf you did on other devices than this Mac, make sure to enable iBooks notes/bookmarks syncing on all devices."); // Create a new directory and cd into it mkdir(RESULT_DIRECTORY_NAME); chdir(RESULT_DIRECTORY_NAME); $i=0; $j=0; $b=0; foreach($notes as $AssetID => $booknotes){ $Body = "<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export3.dtd"> <en-export export-date="".@strftime("%Y%m%dT%H%M%S",time())."" application="iBooks2Evernote" version="iBooks2Evernote Mac 0.0.1">"; $BookTitle = $books[$AssetID]["Title"]; $j = 0; foreach($booknotes as $note){ $CappedText = null; $TextWithContext = null; // Skip empty notes if(strlen($note["BroaderText"]?$note["BroaderText"]:$note["SelectedText"])==0) continue; $HighlightedText = $note["SelectedText"]; // Cap the titles to 255 characters or Evernote will blank them. if(strlen($HighlightedText)>255) $CappedText = substr($note["SelectedText"],0,254)."…"; // If iBooks stored the surrounding paragraph of a highlighted text, show it and make the highlighted text show as highlighted. if(!empty($note["BroaderText"]) && $note["BroaderText"] != $note["SelectedText"]){ $TextWithContext = str_replace($note["SelectedText"],"<span style=\"background: yellow;\">".$note["SelectedText"]."</span>",$note["BroaderText"]); } // Keep some counters for commandline feedback if($j==0)$b++; $i++; $j++; // Put it in Evernote"s ENEX format. $Body .=" <note><title>".($CappedText?$CappedText:$HighlightedText)."</title><content><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"> <en-note> <div> <p>".($TextWithContext?$TextWithContext:$HighlightedText)."</p> <p><span style="color: rgb(169, 169, 169);font-size: 12px;">From chapter: ".$note["Chapter"]."</span></p> </div> <div>".$note["Note"]."</div> </en-note> ]]></content><created>".@strftime("%Y%m%dT%H%M%S",@strtotime("2001-01-01 +". ((int)$note["Created"])." seconds"))."</created><updated>".@strftime("%Y%m%dT%H%M%S",@strtotime("2001-01-01 +". ((int)$note["Modified"])." seconds"))."</updated><tag>".$BookTitle.".</tag><note-attributes><author>[email protected]</author><source>desktop.mac</source><reminder-order>0</reminder-order></note-attributes></note>"; } $Body .=" </en-export> "; file_put_contents($BookTitle.".enex", $Body); } echo "Done! Exported $i notes into $b separate export files in the "".RESULT_DIRECTORY_NAME."" folder.\n\n"; 

Responder

  1. Instale el gratuito DB Browser for SQLite .
  2. Vaya a la carpeta de anotaciones de iBooks: ~/Library/Containers/com.apple.iBooksX/Data/Documents/AEAnnotation/
  3. Copie el .sqlite archivo en algún lugar (como el escritorio) para mantener el original seguro.
  4. Abra el archivo con DB Browser.
  5. Busque algunas notas en su libro de destino examinando los datos .
  6. Filtre por ZANNOTATIONASSETID para mostrar solo notas en el libro de destino.
  7. Copie y pegue las anotaciones que desee en Numbers o en la aplicación que prefiera.

Comentarios

  • ‘ de Apple, la famosa facilidad de uso.
  • @raxacoricofallapatorius: En serio. Ese ‘ es un galimatías solo para obtener una lista de las palabras de vocabulario que resalté.

Deja una respuesta

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