Metadatos de la serie iBooks

En iBooks en 10.10, los libros pueden tener metadatos de serie como se muestra en la imagen.

¿Qué metadatos necesito agregar a un epub externo (es decir, no de la tienda ibook) para que pueda mostrarse como una serie?

metadatos de la serie

Solías poder editar mucha de esta información cuando los libros eran parte de iTunes. El título de la serie era un campo editable que se colocó para respaldar los programas de televisión. Todavía puede verlo cuando edita metadatos de programas de TV en iTunes en la pestaña Video (los nombres de los campos eran diferentes para los libros). En este momento, con las capacidades limitadas de iBooks (particularmente la falta de edición de metadatos), parece que esta información está vinculada a los metadatos del escaparate de iBooks. Sin embargo, probablemente todavía esté en iBooks SQLite DB, por lo que si alguien sabe cómo hurgar allí, me encantaría saberlo.

Respuestas (4)

Lo hice, pero es un poco complicado.

Resumen:

Debe cambiar el archivo Books.plist en ~/Library/Containers/com.apple.BKAgentService/Data/Documents/iBooks/Books para los libros que desea tener en una serie, y también debe agregar filas en BKSeries -Base de datos *.sqlite en ~/Library/Containers/com.apple.iBooksX/Data/Documents/BKSeriesDatabase para ellos y la serie.

Así es como lo hice:

La base de datos tiene 4 tablas: ZBKSERIESCHECK , ZBKSERIESITEM , Z_PRIMARYKEY y Z_METADATA . Solo cambié las tres primeras tablas. La "serie" se trata como un libro en estas tablas.

  1. Agregue los libros y la serie en la tabla ZBKSERIESCHECK . La tabla tiene 5 columnas.

    La tabla tiene 5 columnas.

    • Z_PK es la clave principal. Tiene que ser un número secuencial.
    • Z_ENT y Z_OPT Acabo de completar con un "1".
    • ZDATECHECKED es solo la fecha en que se crea la fila. En mi caso fue auto-asignado.
    • ZADAMID es un código único para el libro o serie.

    Esta es la tabla con los datos que agregué.

    ID de los libros y series

    Los zAdamId que usé son de Calibre, así que supongo que puedes usar cualquier número. Ten en cuenta que esos números tienen que ser diferentes a la serie/libros que compraste.

    La fila con el zAdamId "1" es mi serie, las otras son los libros.

  2. Agregue las relaciones dentro de libros y series en la tabla ZBKSERIESITEM . Esta tabla tiene 16 columnas.

    Tabla ZBKSERIESITEM

    • Z_PK , Z_ENT y Z_OPT no son los mismos definidos en la tabla anterior. Z_PK tiene que ser secuencial y, Z_ENT y Z_OPT acabo de completar con "2" y "1" respectivamente.
    • ZISCONTAINER define si un zAdamId es una serie o no. "1" es verdadero, "0" es falso.
    • ZPOSITION define el número de un libro en una serie, comenzando con "0" para el primer libro.
    • ZADAMID es el mismo definido en la tabla anterior para el mismo artículo.
    • ZAUTHOR es el autor de la serie/libros.
    • ZGENRE es el género de la serie/libros.
    • ZSEQUENCEDISPLAYNAME define cómo se muestra un libro como miembro de una serie. Por ejemplo, para el primer libro, puede definir "Libro 1" o "Volumen 1" o "Vol.1". Esta cadena se antepondrá al nombre del libro. Esta columna tiene que estar vacía para la serie.
    • ZSERIESADAMID es la serie zAdamId del libro. Para la serie, esto es lo mismo que ZADAMID .
    • ZSERIESTITLE es el nombre de la serie.
    • ZSORTTITLE y ZTITLE es el nombre del libro o serie.

    Contenido de la tabla ZBKSERIESITEM

  3. Ajustar tabla Z_PRIMARYKEY .

    Encontré que esta tabla tiene solo dos filas. Uno para cada una de las tablas anteriores.

    Tabla Z_PRIMARYKEY

    Aquí tienes que cambiar la columna Z_MAX al valor MAX(*) del Z_PK en cada una de las tablas anteriores. Por ejemplo, en mi base de datos, para la tabla ZBKSERIESCHECK ( BKSeriesCheck ), el MAX(*) de la columna Z_PK es "22".

  4. Guarde los cambios.

  5. Abra el archivo Books.plist . Busca cada uno de los libros de la serie y añade estas claves:

    • seriesAdamId como Número con el valor de ZBKSERIESITEM~ZSERIESADAMID .
    • itemId como Número con el valor de ZBKSERIESITEM~ZADAMID .
    • seriesSequenceNumber como String con el valor de ZBKSERIESITEM~ZPOSITION + 1 . (Recuerde que en la tabla comienza con "0".)
    • seriesTitle como String con el valor de ZBKSERIESITEM~ZTITLE .

    Archivo Books.plist

  6. Guarda el archivo. Cierre iBooks (si no lo cerró desde el principio). Elimine el proceso com.apple.BKAgentService . Inicie iBooks. Deberías poder ver tu serie.

    Resultados

notas

Esas columnas que no nombré, simplemente las dejé vacías y no afectó el resultado final.

Creo que es muuuy difícil poner todos tus libros y series correctamente cuando tienes muchos. Espero ver algún día algo que haga todo esto automáticamente.

Esta es mi primera publicación. Espero que todos lo encuentren útil.

Tengo una solución:

  1. Vaya a la tienda de iBooks y descargue las muestras de los libros con los que está tratando de trabajar.

  2. Cambia la extensión de .epub a .zip.

  3. Extraiga el zip y elimine la carpeta llamada "OPS" (OEBPS para cómics).

  4. Ubique el libro electrónico que tiene y cambie de .epub a .zip.

  5. Extráigalo y localice OPS.

  6. Mueva OPS a la carpeta del libro electrónico de muestra.

  7. Seleccione todos los archivos de la muestra y cree un .zip.

  8. Cambia la extensión a epub.

  9. Haz lo mismo para cada libro de la serie.

  10. Arrastrar y soltar en itunes.

  11. ¡Sincroniza y listo!

Sin embargo, tenga cuidado al ingresar a la tienda iBook, si ve el libro electrónico que editó, tendrá un botón que dice "actualizar". NO haga clic en actualizar, o tendrá que hacerlo de nuevo.

Mucho más fácil que tener que editar sqlite, y funciona tanto en Mac como en Windows.

¿Funcionará esto para libros electrónicos SRMed?
Si está en la tienda iBooks como muestra, entonces sí.

Me di cuenta de que, en iBooks, tengo un libro ( Herencia ) que iBooks destaca como miembro de una serie (en mi caso se llama 'Eragon' en lugar de 'The Fseer Trilogy'). Para investigar esto, descargué Inheritance y eliminé el DRM usando Requiem (en una máquina virtual antigua) para poder hurgar en el código fuente del libro.

Desafortunadamente, tengo malas noticias. Usé Sigil para buscar la palabra 'Eragon'. La palabra 'Eragon' no aparece en ninguna parte de los metadatos del epub, lo que indica que esto no es posible; Evidentemente, iBook mantiene la información de la serie separada de los archivos epub reales.

Eso interesante, tenga en cuenta que todavía creo que se almacenó localmente en algún lugar, tal vez en la base de datos sqlite de ibooks, ya que cuando agregué 2 libros en otra serie, se agruparon cuando no estaban conectados a Internet.
¿Quiere decir que agregó dos libros de una fuente externa o que compró dos libros a través de iBooks?
Los traje a una computadora diferente y luego los transfiero a una computadora con ibooks pero sin internet.

Lo probé yo mismo y descubrí que la lista de reproducción en la misma carpeta que almacena los epubs tiene información sobre la serie de libros. Están los metadatos seriesTitle y seriesSequenceNumber establecidos. Pero desafortunadamente cambiarlo allí no hace que Ibooks liste libros como series. Además, la configuración de metadatos en el libro electrónico dice que el título de la serie y el número de secuencia de la serie no funcionan. Luego encontré una carpeta en usr. La biblioteca contiene com.apple.IBooksX Data Documents BKSeriesDatabase, pero contiene una base de datos SQL. Tal vez la información esté almacenada allí.