Metadati della serie iBooks


13

In iBooks su 10.10, i libri possono avere metadati di serie come mostrato nell'immagine.

Quali metadati devo aggiungere a un epub esterno (cioè non dal negozio ibook) in modo che possa essere visualizzato come una serie?

metadati di serie


Un tempo eri in grado di modificare molte di queste informazioni quando i libri facevano parte di iTunes. Il titolo della serie era un campo modificabile inserito per supportare gli spettacoli televisivi. Puoi ancora vederlo durante la modifica dei metadati dei programmi TV in iTunes nella scheda Video (i nomi dei campi erano diversi per i libri). In questo momento con le funzionalità limitate di iBooks (in particolare la mancanza di modifica dei metadati), sembra che queste informazioni siano legate ai metadati dal negozio di iBooks. Probabilmente è comunque ancora nel DB SQL iBooks, quindi se qualcuno sa come rovistare lì mi piacerebbe saperlo.
Nick,

Risposte:


16

L'ho fatto, ma è un po 'complicato.

Sommario:

Devi cambiare il file Books.plist in ~ / Library / Containers / com.apple.BKAgentService / Data / Documents / iBooks / Books per i libri che vuoi avere in una serie, e devi anche aggiungere righe in BKSeries - *. sqlite database su ~ / Library / Containers / com.apple.iBooksX / Data / Documents / BKSeries Database per loro e le serie.

Ecco come l'ho fatto:

Il database ha 4 tabelle: ZBKSERIESCHECK , ZBKSERIESITEM , Z_PRIMARYKEY e Z_METADATA . Ho cambiato solo i primi tre tavoli. La "serie" è trattata proprio come un libro in queste tabelle.

  1. Aggiungi i libri e le serie nella tabella ZBKSERIESCHECK . La tabella ha 5 colonne.

    La tabella ha 5 colonne

    • Z_PK è la chiave primaria. Deve essere un numero sequenziale.
    • Z_ENT e Z_OPT Ho appena completato con un "1".
    • ZDATECHECKED è solo la data di creazione della riga. Nel mio caso è stato assegnato automaticamente.
    • ZADAMID è un codice univoco per il libro o la serie.

    Questa è la tabella con i dati che ho aggiunto.

    ID dei libri e delle serie

    ZAdamId che ho usato proviene da Calibre, quindi suppongo che tu possa usare qualsiasi numero. Tieni presente che quei numeri devono essere diversi dalle serie / dai libri che hai acquistato.

    La riga con zAdamId "1" è la mia serie, gli altri sono i libri.

  2. Aggiungi le relazioni all'interno di libri e serie nella tabella ZBKSERIESITEM . Questa tabella ha 16 colonne.

    Tabella ZBKSERIESITEM

    • Z_PK , Z_ENT e Z_OPT non sono gli stessi definiti nella tabella precedente. Z_PK deve essere sequenziale e, Z_ENT e Z_OPT ho appena completato rispettivamente con "2" e "1".
    • ZISCONTAINER definisce se zAdamId è una serie o no. "1" è vero, "0" è falso.
    • ZPOSITION definisce il numero di un libro in una serie, iniziando con "0" per il primo libro.
    • ZADAMID è lo stesso definito nella tabella precedente per lo stesso elemento.
    • ZAUTHOR è l'autore della serie / libri.
    • ZGENRE è il genere della serie / libri.
    • ZSEQUENCEDISPLAYNAME definisce la modalità di visualizzazione di un libro come membro di una serie. Ad esempio, per il primo libro, è possibile definire "Libro 1" o "Volume 1" o "Vol.1". Questa stringa verrà anteposta al nome del libro. Questa colonna deve essere vuota per la serie.
    • ZSERIESADAMID è la serie zAdamId del libro. Per la serie, questo è lo stesso di ZADAMID .
    • ZSERIESTITLE è il nome della serie.
    • ZSORTTITLE e ZTITLE è il nome del libro o della serie.

    Tabella dei contenuti di ZBKSERIESITEM

  3. Modifica la tabella Z_PRIMARYKEY .

    Ho scoperto che questa tabella ha solo due righe. Uno per ciascuna delle tabelle precedenti.

    Tabella Z_PRIMARYKEY

    Qui devi cambiare la colonna Z_MAX sul valore MAX (*) di Z_PK in ciascuna delle tabelle precedenti. Ad esempio, nel mio DB, per la tabella ZBKSERIESCHECK ( BKSeriesCheck ) il MAX (*) della colonna Z_PK è "22".

  4. Salva le modifiche.

  5. Apri il file Books.plist . Cerca ciascuno dei libri della serie e aggiungi questi tasti:

    • seriesAdamId as Number con il valore di ZBKSERIESITEM ~ ZSERIESADAMID .
    • itemId as Numero con il valore di ZBKSERIESITEM ~ ZADAMID .
    • seriesSequenceNumber come String con il valore di ZBKSERIESITEM ~ ZPOSITION + 1 . (Ricorda che nella tabella inizia con "0".)
    • seriesTitle as String con il valore di ZBKSERIESITEM ~ ZTITLE .

    File Books.plist

  6. Salva il file. Chiudi iBooks (se non l'hai chiuso dall'inizio). Uccidi il processo com.apple.BKAgentService . Avvia iBooks. Dovresti essere in grado di vedere le tue serie.

    risultati

Appunti

Quelle colonne che non ho nominato, le ho lasciate vuote e non ha influito sul risultato finale.

Penso che sia difficile mettere tutti i tuoi libri e le serie in modo corretto quando ne hai molti. Spero di vedere un giorno qualcosa che faccia tutto questo in modo auto-magico.

Questo è il mio primo post. Spero che tutti lo trovino utile.


2

Ho una soluzione:

  1. Vai allo store di iBooks e scarica gli esempi per i libri con cui stai provando a lavorare.

  2. Cambia l'estensione da .epub a .zip.

  3. Estrarre lo zip ed eliminare la cartella denominata "OPS" (OEBPS per i fumetti).

  4. Individua l'eBook che hai e cambia da .epub a .zip.

  5. Estrarre e individuare OPS.

  6. Sposta OPS nella cartella ebook di esempio.

  7. Seleziona tutti i file nell'esempio e crea un .zip.

  8. Cambia l'estensione in epub.

  9. Fai lo stesso per ogni libro della serie.

  10. Trascina e rilascia su iTunes.

  11. Sincronizza e il gioco è fatto!

Fai attenzione mentre vai nell'iBook Store, se vedi l'ebook che hai modificato, avrà un pulsante che dice "aggiorna". NON fare clic su Aggiorna, altrimenti dovrai ripetere l'operazione.

Molto più facile che dover modificare sqlite e funziona sia su Mac che su Windows.


Funzionerà con gli ebook SRMed?
user151019

Se è nel negozio di iBooks come esempio, allora sì.
Dadiocoleman,

1

Ho notato che, in iBooks, ho un libro ( Ereditarietà ) che iBooks evidenzia come membro di una serie (nel mio caso chiamato "Eragon" anziché "The Farseer Trilogy"). Per indagare su questo, ho scaricato Inheritance e ho rimosso il DRM usando Requiem (su una vecchia macchina virtuale) in modo da poter dare un'occhiata al codice sorgente del libro.

Sfortunatamente, ho cattive notizie. Ho usato Sigil per cercare la parola "Eragon". La parola "Eragon" non appare da nessuna parte nei metadati all'interno dell'epub, indicando che ciò non è possibile; evidentemente iBook mantiene le informazioni sulle serie separate dai file epub effettivi.


È interessante notare che penso ancora che sia archiviato localmente da qualche parte nel database sqlite di ibooks, poiché quando ho aggiunto 2 libri in un'altra serie, sono stati raggruppati quando non sono connessi a Internet
Bilal Syed Hussain,

Vuoi dire che hai aggiunto due libri da una fonte esterna o hai comprato due libri tramite iBooks?
John Coxon,

Li ho portati su un altro computer e poi li ho trasferiti su un computer con ibook ma senza internet.
Bilal Syed Hussain,

0

L'ho provato io stesso e ho scoperto che la playlist nella stessa cartella in cui sono archiviati gli epub contiene informazioni sulla serie di libri. Esistono le serie di metadatiTitle e seriesSequenceNumber impostati. Ma sfortunatamente cambiandolo non rende Ibooks in grado di elencare i libri come serie. Anche l'impostazione dei metadati nell'e-book stesso dice che la serie Title e seriesSequenceNumber non funziona. Poi ho trovato una cartella in usr. Contenitori libreria com.apple.IBooksX Documenti dati BKSeriesDatabase, ma contiene un database SQL. Forse le informazioni sono memorizzate lì.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.