Métadonnées de la série iBooks

13

Dans iBooks sur 10.10, les livres peuvent avoir des métadonnées de série comme indiqué dans l'image.

Quelles métadonnées dois-je ajouter à un epub externe (c'est-à-dire pas dans ibook store) pour qu'il puisse être affiché sous forme de série?

métadonnées de la série

Bilal Syed Hussain
la source
Auparavant, vous pouviez modifier de nombreuses informations lorsque les livres faisaient partie d'iTunes. Le titre de la série était un champ modifiable qui a été ajouté pour soutenir les émissions de télévision. Vous pouvez toujours le voir lors de la modification des métadonnées d'une émission télévisée dans iTunes sous l'onglet Vidéo (les noms de champ étaient différents pour les livres). À l'heure actuelle, avec les capacités limitées d'iBooks (en particulier l'absence de modification des métadonnées), il semble que ces informations soient liées aux métadonnées de la vitrine iBooks. Il est probablement toujours dans la base de données iBooks SQLite DB, donc si quelqu'un sait comment fouiller là-bas, j'aimerais en entendre parler.
Nick

Réponses:

16

Je l'ai fait, mais c'est un peu délicat.

Sommaire:

Vous devez modifier le fichier Books.plist dans ~ / Library / Containers / com.apple.BKAgentService / Data / Documents / iBooks / Books pour les livres que vous souhaitez avoir dans une série, et vous devez également ajouter des lignes dans les BKSeries - *. sqlite base de données sur ~ / Library / Containers / com.apple.iBooksX / Data / Documents / BKSeriesDatabase pour eux et la série.

Voici comment je l'ai fait:

La base de données comprend 4 tables: ZBKSERIESCHECK , ZBKSERIESITEM , Z_PRIMARYKEY et Z_METADATA . Je n'ai changé que les trois premières tables. La "série" est traitée comme un livre dans ces tableaux.

  1. Ajoutez les livres et la série dans le tableau ZBKSERIESCHECK . Le tableau comporte 5 colonnes.

    Le tableau a 5 colonnes

    • Z_PK est la clé primaire. Ce doit être un nombre séquentiel.
    • Z_ENT et Z_OPT Je viens de terminer avec un "1".
    • ZDATECHECKED est juste la date de création de la ligne. Dans mon cas, il a été attribué automatiquement.
    • ZADAMID est un code unique pour le livre ou la série.

    Voici le tableau avec les données que j'ai ajoutées.

    ID des livres et séries

    Les zAdamId que j'ai utilisés sont de Calibre, donc je suppose que vous pouvez utiliser n'importe quel nombre. Gardez à l'esprit que ces numéros doivent être différents des séries / livres que vous avez achetés.

    La rangée avec le zAdamId "1" est ma série, les autres sont les livres.

  2. Ajoutez les relations dans les livres et les séries dans le tableau ZBKSERIESITEM . Ce tableau comporte 16 colonnes.

    Table ZBKSERIESITEM

    • Z_PK , Z_ENT et Z_OPT ne sont pas les mêmes définis dans le tableau précédent. Z_PK doit être séquentiel et, Z_ENT et Z_OPT je viens de terminer avec "2" et "1" respectivement.
    • ZISCONTAINER définit si un zAdamId est une série ou non. "1" est vrai, "0" est faux.
    • ZPOSITION définit le numéro d'un livre dans une série, en commençant par "0" pour le premier livre.
    • ZADAMID est identique à celui défini dans le tableau précédent pour le même élément.
    • ZAUTHOR est l'auteur de la série / livres.
    • ZGENRE est le genre de la série / des livres.
    • ZSEQUENCEDISPLAYNAME définit la façon dont un livre est affiché en tant que membre d'une série. Par exemple, pour le premier livre, vous pouvez définir "Livre 1" ou "Volume 1" ou "Vol.1". Cette chaîne va être ajoutée au nom du livre. Cette colonne doit être vide pour la série.
    • ZSERIESADAMID est la série zAdamId du livre. Pour la série, c'est la même chose que ZADAMID .
    • ZSERIESTITLE est le nom de la série.
    • ZSORTTITLE et ZTITLE est le nom du livre ou de la série.

    Table des matières ZBKSERIESITEM

  3. Ajustez la table Z_PRIMARYKEY .

    J'ai trouvé que ce tableau n'a que deux lignes. Un pour chacun des tableaux précédents.

    Table Z_PRIMARYKEY

    Ici, vous devez remplacer la colonne Z_MAX par la valeur MAX (*) du Z_PK dans chacun des tableaux précédents. Par exemple, dans ma base de données, pour la table ZBKSERIESCHECK ( BKSeriesCheck ), le MAX (*) de la colonne Z_PK est "22".

  4. Enregistrez les modifications.

  5. Ouvrez le fichier Books.plist . Recherchez chacun des livres de la série et ajoutez ces clés:

    • seriesAdamId as Number avec la valeur de ZBKSERIESITEM ~ ZSERIESADAMID .
    • itemId as Number avec la valeur de ZBKSERIESITEM ~ ZADAMID .
    • seriesSequenceNumber as String avec la valeur de ZBKSERIESITEM ~ ZPOSITION + 1 . (N'oubliez pas que dans le tableau, il commence par "0".)
    • seriesTitle as String avec la valeur de ZBKSERIESITEM ~ ZTITLE .

    Fichier Books.plist

  6. Enregistrez le fichier. Fermez iBooks (si vous ne l'avez pas fermé depuis le début). Tuer le com.apple.BKAgentService processus. Démarrez iBooks. Vous devriez pouvoir voir votre série.

    Résultats

Remarques

Ces colonnes que je n'ai pas nommées, je les ai simplement laissées vides et cela n'a pas affecté le résultat final.

Je pense qu'il est trop difficile de mettre tous vos livres et séries correctement quand vous en avez beaucoup. J'espère voir un jour quelque chose qui fera tout cela par magie.

Ceci est mon premier message posté. J'espère que tout le monde le trouvera utile.

foliva
la source
2

J'ai une solution:

  1. Accédez à la boutique iBooks et téléchargez les exemples des livres avec lesquels vous essayez de travailler.

  2. Modifiez l'extension de .epub en .zip.

  3. Extrayez le zip et supprimez le dossier nommé "OPS" (OEBPS pour les bandes dessinées).

  4. Localisez le livre électronique que vous avez et passez de .epub à .zip.

  5. Extrayez-le et localisez OPS.

  6. Déplacez OPS vers l'exemple de dossier ebook.

  7. Sélectionnez tous les fichiers de l'exemple et créez un .zip.

  8. Modifiez l'extension en epub.

  9. Faites de même pour chaque livre de la série.

  10. Glissez-déposez dans iTunes.

  11. Synchronisez et c'est parti!

Soyez prudent lorsque vous accédez à la boutique iBook, cependant, si vous voyez l'ebook que vous avez modifié, il aura un bouton disant «mise à jour». NE cliquez PAS sur mise à jour, sinon vous devrez recommencer.

Beaucoup plus facile que d'avoir à éditer sqlite, et cela fonctionne à la fois sur Mac et Windows.

Dadiocoleman
la source
Est-ce que cela fonctionnera pour les ebooks SRMed?
user151019
Si c'est dans la boutique iBooks comme échantillon, alors oui.
Dadiocoleman
1

J'ai remarqué que, dans iBooks, j'ai un livre ( héritage ) que iBooks met en évidence en tant que membre d'une série (dans mon cas, appelé «Eragon» au lieu de «The Farseer Trilogy»). Afin d'enquêter, j'ai téléchargé l' héritage et supprimé le DRM en utilisant Requiem (sur une ancienne machine virtuelle) afin que je puisse fouiller dans le code source du livre.

Malheureusement, j'ai de mauvaises nouvelles. J'ai utilisé Sigil pour rechercher le mot «Eragon». Le mot «Eragon» n'apparaît nulle part dans les métadonnées de l'ePub, indiquant que ce n'est pas possible; iBook conserve évidemment les informations de série distinctes des fichiers epub réels.

John Coxon
la source
C'est intéressant, notez que je pense toujours qu'il est stocké localement quelque part peut-être dans la base de données sqlite ibooks, car lorsque j'ai ajouté 2 livres dans une autre série, ils ont été regroupés lorsqu'ils n'étaient pas connectés à Internet
Bilal Syed Hussain
Vous voulez dire que vous avez ajouté deux livres à partir d'une source externe ou que vous avez acheté deux livres via iBooks?
John Coxon
Je les ai amenés sur un autre ordinateur puis les ai transférés sur un ordinateur avec ibooks mais pas Internet.
Bilal Syed Hussain
0

Je l'ai essayé moi-même et j'ai découvert que la liste de lecture dans le même dossier qui stocke les epubs contient des informations sur la série de livres. Il existe l'ensemble de métadonnées seriesTitle et seriesSequenceNumber. Mais malheureusement, en le modifiant, les livres ne sont pas listés comme des séries. Définir également les métadonnées dans le livre électronique lui-même en disant que les titres de série et les numéros de série ne fonctionnent pas. Ensuite, j'ai trouvé un dossier dans usr. Conteneurs de bibliothèque com.apple.IBooksX Documents de données BKSeriesDatabase, mais il contient une base de données SQL. Peut-être que les informations y sont stockées.

Adam Kay
la source