metadatos de la serie iBooks


13

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

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

metadatos de la serie


Solía ​​poder editar mucha de esta información cuando los libros formaban parte de iTunes. El título de la serie era un campo editable que se incluyó para admitir 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 campo 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 de la tienda de iBooks. Sin embargo, es probable que todavía esté en el iBooks SQLite DB, por lo que si alguien sabe cómo hurgar allí, me encantaría saberlo.
Nick

Respuestas:


16

Lo logré, pero es bastante 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 la BKSeries - *. sqlite base de datos 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 las series en la tabla ZBKSERIESCHECK . La tabla tiene 5 columnas.

    La mesa 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 autoasignado.
    • ZADAMID es un código único para el libro o la serie.

    Esta es la tabla con los datos que agregué.

    Identificación de los libros y series.

    Los zAdamId que utilicé son de Calibre, así que supongo que puedes usar cualquier número. Tenga en cuenta que esos números tienen que ser diferentes de las series / libros que compró.

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

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

    Mesa 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 elemento.
    • 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.

    Tabla ZBKSERIESITEM contenido

  3. Ajuste la tabla Z_PRIMARYKEY .

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

    Tabla Z_PRIMARYKEY

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

  4. Guarda los cambios.

  5. Abra el archivo Books.plist . Busque cada uno de los libros de la serie y agregue 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 as String con el valor de ZBKSERIESITEM ~ ZTITLE .

    Archivo Books.plist

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

    Resultados

Notas

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

Creo que es muy difícil poner todos tus libros y series correctamente cuando tienes muchos de ellos. 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.


2

Tengo una solución:

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

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

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

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

  5. Extraerlo y localizar OPS.

  6. Mueva OPS a la carpeta de muestra de libros electrónicos.

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

  8. Cambia la extensión a epub.

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

  10. Arrastra y suelta en iTunes.

  11. Sincronice y ¡ya está!

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

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


¿Funcionará para los libros electrónicos SRMed?
user151019

Si está en la tienda iBooks como muestra, entonces sí.
Dadiocoleman

1

Noté que, en iBooks, tengo un libro ( Herencia ) que iBooks destaca como miembro de una serie (en mi caso llamada 'Eragon' en lugar de 'The Farseer Trilogy'). Para investigar esto, descargué Herencia y eliminé el DRM usando Requiem (en una vieja máquina virtual) para poder hurgar en el código fuente del libro.

Lamentablemente, tengo malas noticias. Usé Sigil para buscar la palabra 'Eragon'. La palabra 'Eragon' no aparece en ninguna parte de los metadatos dentro 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.


Es interesante, tenga en cuenta que todavía creo que se almacenó localmente en algún lugar, tal vez en la base de datos ibooks sqlite, ya que cuando agregué 2 libros en otra serie, se agruparon cuando no estaban conectados a Internet
Bilal Syed Hussain

¿Quiere decir que agregó dos libros de una fuente externa, o compró dos libros a través de iBooks?
John Coxon

Los traje en una computadora diferente y luego los transfiero a una computadora con ibooks pero sin internet.
Bilal Syed Hussain

0

Lo intenté yo mismo y descubrí que la lista de reproducción en la misma carpeta que almacena las epubs tiene información sobre la serie de libros. Existen los conjuntos de metadatos seriesTitle y seriesSequenceNumber. Pero desafortunadamente cambiarlo no hace que Ibooks enumere libros como series. También establece Metadatos en el propio libro electrónico diciendo que la serie Título y serieSecuenciaNúmero no funciona. Luego encontré una carpeta en usr. Contenedores de biblioteca com.apple.IBooksX Data Documents BKSeriesDatabase, pero contiene una base de datos SQL. Tal vez la información se almacena allí.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.