Metadaten der iBooks-Reihe

In iBooks auf 10.10 können Bücher Serien-Metadaten haben, wie im Bild gezeigt.

Welche Metadaten muss ich einem externen epub (dh nicht aus dem ibook Store) hinzufügen, damit es als Serie angezeigt werden kann?

Serien-Metadaten

Früher konnten Sie viele dieser Informationen bearbeiten, als Bücher Teil von iTunes waren. Der Serientitel war ein bearbeitbares Feld, das zur Unterstützung von Fernsehsendungen eingefügt wurde. Sie können es immer noch sehen, wenn Sie die Metadaten von Fernsehsendungen in iTunes auf der Registerkarte „Video“ bearbeiten (die Feldnamen waren für Bücher anders). Angesichts der begrenzten Möglichkeiten von iBooks (insbesondere der fehlenden Bearbeitung von Metadaten) scheinen diese Informationen derzeit an Metadaten aus der iBooks-Storefront gebunden zu sein. Es ist wahrscheinlich immer noch in der SQLite-Datenbank von iBooks, also wenn jemand weiß, wie man dort herumstöbert, würde ich gerne davon hören.

Antworten (4)

Ich habe es geschafft, aber es ist ziemlich schwierig.

Zusammenfassung:

Sie müssen die Datei Books.plist in ~/Library/Containers/com.apple.BKAgentService/Data/Documents/iBooks/Books für die Bücher ändern, die Sie in einer Reihe haben möchten, und Sie müssen auch Zeilen in der BKSeries hinzufügen -*.sqlite - Datenbank auf ~/Library/Containers/com.apple.iBooksX/Data/Documents/BKSeriesDatabase für sie und die Serie.

So habe ich es gemacht:

Die Datenbank hat 4 Tabellen: ZBKSERIESCHECK , ZBKSERIESITEM , Z_PRIMARYKEY und Z_METADATA . Ich habe nur die ersten drei Tabellen geändert. Die „Reihe“ wird in diesen Tabellen wie ein Buch behandelt.

  1. Fügen Sie die Bücher und die Reihe in die Tabelle ZBKSERIESCHECK ein . Die Tabelle hat 5 Spalten.

    Die Tabelle hat 5 Spalten

    • Z_PK ist der Primärschlüssel. Es muss eine fortlaufende Nummer sein.
    • Z_ENT und Z_OPT habe ich gerade mit einer "1" abgeschlossen.
    • ZDATECHECKED ist nur das Datum, an dem die Zeile erstellt wurde. In meinem Fall wurde es automatisch zugewiesen.
    • ZADAMID ist ein eindeutiger Code für das Buch oder die Serie.

    Dies ist die Tabelle mit den Daten, die ich hinzugefügt habe.

    ID der Bücher und Serien

    Die von mir verwendete zAdamId stammt von Calibre, daher gehe ich davon aus, dass Sie eine beliebige Nummer verwenden können. Denken Sie daran, dass sich diese Nummern von den von Ihnen gekauften Serien/Büchern unterscheiden müssen.

    Die Zeile mit der zAdamId „1“ ist meine Serie, die anderen sind die Bücher.

  2. Fügen Sie die Beziehungen innerhalb von Büchern und Reihen in der Tabelle ZBKSERIESITEM hinzu . Diese Tabelle hat 16 Spalten.

    Tabelle ZBKSERIESITEM

    • Z_PK , Z_ENT und Z_OPT sind nicht dieselben, die in der vorherigen Tabelle definiert sind. Z_PK muss sequentiell sein und Z_ENT und Z_OPT habe ich gerade mit "2" bzw. "1" abgeschlossen.
    • ZICONTAINER definiert, ob eine zAdamId eine Serie ist oder nicht. „1“ ist wahr, „0“ ist falsch.
    • ZPOSITION definiert die Nummer eines Buches in einer Serie, beginnend mit "0" für das erste Buch.
    • ZADAMID ist dasselbe wie in der vorherigen Tabelle für dasselbe Element definiert.
    • ZAUTHOR ist der Autor der Serien/Bücher.
    • ZGENRE ist das Genre der Serien/Bücher.
    • ZSEQUENCEDISPLAYNAME definiert, wie ein Buch als Mitglied einer Reihe angezeigt wird. Für das erste Buch können Sie beispielsweise „Buch 1“ oder „Band 1“ oder „Band 1“ definieren. Diese Zeichenfolge wird dem Namen des Buches vorangestellt. Diese Spalte muss für die Serie leer sein.
    • ZSERIESADAMID ist die Serie zAdamId des Buches. Für die Serie ist dies dasselbe wie ZADAMID .
    • ZSERIESTITLE ist der Name der Serie.
    • ZSORTTITLE und ZTITLE ist der Name des Buches oder der Reihe.

    Inhalt der Tabelle ZBKSERIESITEM

  3. Passen Sie die Tabelle Z_PRIMARYKEY an .

    Ich fand, dass diese Tabelle nur zwei Zeilen hat. Eine für jede der vorherigen Tabellen.

    Tabelle Z_PRIMARYKEY

    Hier müssen Sie die Spalte Z_MAX auf den MAX(*)-Wert des Z_PK in jeder der vorherigen Tabellen ändern. Zum Beispiel ist in meiner DB für die Tabelle ZBKSERIESCHECK ( BKSeriesCheck ) der MAX (*) der Spalte Z_PK "22".

  4. Speichern Sie die Änderungen.

  5. Öffnen Sie die Books.plist -Datei. Suchen Sie nach jedem der Bücher der Reihe und fügen Sie diese Schlüssel hinzu:

    • seriesAdamId als Zahl mit dem Wert ZBKSERIESITEM~ZSERIESADAMID .
    • itemId als Zahl mit dem Wert ZBKSERIESITEM~ZADAMID .
    • seriesSequenceNumber als String mit dem Wert von ZBKSERIESITEM~ZPOSITION + 1 . (Denken Sie daran, dass es in der Tabelle mit "0" beginnt.)
    • seriesTitle als String mit dem Wert von ZBKSERIESITEM~ZTITLE .

    Books.plist-Datei

  6. Speicher die Datei. Schließen Sie iBooks (falls Sie es nicht von Anfang an geschlossen haben). Beenden Sie den com.apple.BKAgentService- Prozess. Starten Sie iBooks. Sie sollten Ihre Serie sehen können.

    Ergebnisse

Anmerkungen

Diese Spalten habe ich nicht benannt, ich habe sie einfach leer gelassen und es hat sich nicht auf das Endergebnis ausgewirkt.

Ich denke, es ist viel zu schwierig, alle Ihre Bücher und Serien richtig zu platzieren, wenn Sie viele davon haben. Ich hoffe, eines Tages etwas zu sehen, das all dies automatisch macht.

Dies ist mein erster Beitrag. Ich hoffe, jeder findet es nützlich.

Ich habe eine Lösung:

  1. Gehen Sie zum iBooks Store und laden Sie die Beispiele für die Bücher herunter, mit denen Sie arbeiten möchten.

  2. Ändern Sie die Erweiterung von .epub in .zip.

  3. Extrahieren Sie die ZIP-Datei und löschen Sie den Ordner mit dem Namen „OPS“ (OEBPS für Comics).

  4. Suchen Sie das eBook, das Sie haben, und wechseln Sie von .epub zu .zip.

  5. Extrahieren Sie es und suchen Sie OPS.

  6. Verschieben Sie OPS in den Muster-E-Book-Ordner.

  7. Wählen Sie alle Dateien im Beispiel aus und erstellen Sie eine ZIP-Datei.

  8. Ändern Sie die Erweiterung in epub.

  9. Machen Sie dasselbe für jedes Buch in der Reihe.

  10. Drag-and-Drop in itunes.

  11. Synchronisieren und los geht's!

Seien Sie jedoch vorsichtig, wenn Sie in den iBook Store gehen. Wenn Sie das von Ihnen bearbeitete E-Book sehen, wird es eine Schaltfläche mit der Aufschrift „Aktualisieren“ haben. Klicken Sie NICHT auf „Aktualisieren“, sonst müssen Sie es noch einmal tun.

Viel einfacher als SQLite bearbeiten zu müssen, und es funktioniert sowohl auf Mac als auch auf Windows.

Funktioniert dies für SRMed-E-Books?
Wenn es als Beispiel im iBooks Store ist, dann ja.

Mir ist aufgefallen, dass ich in iBooks ein Buch ( Inheritance ) habe, das iBooks als Mitglied einer Reihe hervorhebt (in meinem Fall heißt es „Eragon“ anstelle von „The Farseer Trilogy“). Um dies zu untersuchen, habe ich Inheritance heruntergeladen und das DRM mit Requiem (auf einer alten virtuellen Maschine) entfernt, damit ich im Quellcode des Buches herumstöbern konnte.

Leider habe ich schlechte Nachrichten. Ich habe Sigil verwendet, um nach dem Wort „Eragon“ zu suchen. Das Wort „Eragon“ erscheint nirgendwo in den Metadaten innerhalb des EPUB, was darauf hinweist, dass dies nicht möglich ist; iBook verwaltet offensichtlich Serieninformationen getrennt von den eigentlichen epub-Dateien.

Das ist interessant, beachten Sie, dass ich immer noch denke, dass es irgendwo lokal gespeichert ist, vielleicht in der SQLite-Datenbank von ibooks, da, als ich 2 Bücher in einer anderen Serie hinzufügte, sie gruppiert wurden, wenn sie nicht mit dem Internet verbunden waren
Du meinst, du hast zwei Bücher aus einer externen Quelle hinzugefügt oder zwei Bücher über iBooks gekauft?
Ich brachte sie auf einen anderen Computer und übertrug sie dann auf einen Computer mit iBooks, aber ohne Internet.

Ich habe es selbst ausprobiert und festgestellt, dass die Wiedergabeliste im selben Ordner, in dem die Epubs gespeichert sind, Informationen über die Buchreihe enthält. Es werden die Metadaten seriesTitle und seriesSequenceNumber gesetzt. Aber leider führt eine Änderung dort nicht dazu, dass Ibooks Bücher als Serien auflisten. Auch das Festlegen von Metadaten im E-Book selbst mit dem Titel der Serie und der Serienfolgenummer funktioniert nicht. Dann fand ich einen Ordner in usr. Bibliothekscontainer com.apple.IBooksX Data Documents BKSeriesDatabase, aber es enthält eine SQL-Datenbank. Vielleicht sind die Informationen dort gespeichert.