metadata seri iBooks


13

Di iBooks pada 10.10, buku dapat memiliki metadata seri seperti yang ditunjukkan pada gambar.

Metadata apa yang harus saya tambahkan ke epub eksternal (mis. Bukan dari ibook store) sehingga dapat ditampilkan sebagai seri?

metadata seri


Anda dulu dapat mengedit banyak informasi ini ketika buku adalah bagian dari iTunes. Judul Seri adalah bidang yang dapat diedit yang dimasukkan untuk mendukung acara TV. Anda masih dapat melihatnya saat mengedit metadata acara TV di iTunes di bawah tab Video (nama bidang berbeda untuk buku). Saat ini dengan kemampuan terbatas iBooks (terutama kurangnya pengeditan metadata), tampaknya info ini terkait dengan metadata dari etalase iBooks. Mungkin masih dalam DB iBooks SQLite, jadi jika seseorang tahu bagaimana menyodok di sana saya ingin mendengarnya.
Nick

Jawaban:


16

Saya membuatnya, tapi agak sulit.

Ringkasan:

Anda harus mengubah file Books.plist di ~ / Library / Containers / com.apple.BKAgentService / Data / Documents / iBooks / Books untuk buku yang ingin Anda miliki secara seri, dan Anda juga harus menambahkan baris di BKSeries - *. sqlite database pada ~ / Library / Containers / com.apple.iBooksX / Data / Documents / BKSeriesDatabase untuk mereka dan seri.

Begini cara saya melakukannya:

Basis data memiliki 4 tabel: ZBKSERIESCHECK , ZBKSERIESITEM , Z_PRIMARYKEY dan Z_METADATA . Saya hanya mengubah tiga tabel pertama. "Seri" diperlakukan sama seperti buku di tabel ini.

  1. Tambahkan buku dan seri di tabel ZBKSERIESCHECK . Tabel ini memiliki 5 kolom.

    Tabel ini memiliki 5 kolom

    • Z_PK adalah kunci utama. Itu harus menjadi nomor urut.
    • Z_ENT dan Z_OPT Saya baru saja selesai dengan "1".
    • ZDATECHECKED hanyalah tanggal baris dibuat. Dalam kasus saya itu ditugaskan secara otomatis.
    • ZADAMID adalah kode unik untuk buku atau seri.

    Ini adalah tabel dengan data yang saya tambahkan.

    ID buku dan seri

    ZAdamId yang saya gunakan berasal dari Calibre, jadi saya berasumsi bahwa Anda dapat menggunakan nomor apa pun. Ingatlah bahwa angka-angka itu harus berbeda dari seri / buku yang Anda beli.

    Baris dengan zAdamId "1" adalah seri saya, yang lain adalah buku.

  2. Tambahkan hubungan dalam buku dan seri di tabel ZBKSERIESITEM . Tabel ini memiliki 16 kolom.

    Tabel ZBKSERIESITEM

    • Z_PK , Z_ENT dan Z_OPT tidak sama dengan yang didefinisikan pada tabel sebelumnya. Z_PK harus berurutan dan, Z_ENT dan Z_OPT saya baru saja selesai dengan "2" dan "1" masing-masing.
    • ZISCONTAINER mendefinisikan apakah zAdamId adalah seri atau tidak. "1" benar, "0" salah.
    • ZPOSITION mendefinisikan jumlah buku dalam satu seri, dimulai dengan "0" untuk buku pertama.
    • ZADAMID adalah definisi yang sama pada tabel sebelumnya untuk item yang sama.
    • ZAUTHOR adalah penulis seri / buku.
    • ZGENRE adalah genre seri / buku.
    • ZSEQUENCEDISPLAYNAME menentukan bagaimana buku ditampilkan sebagai anggota seri. Misalnya, untuk buku pertama, Anda dapat mendefinisikan "Buku 1" atau "Volume 1" atau "Vol.1". String ini akan ditambahkan ke nama buku. Kolom ini harus kosong untuk seri.
    • ZSERIESADAMID adalah seri zAdamId buku ini. Untuk seri, ini sama dengan ZADAMID .
    • ZSERIESTITLE adalah nama seri.
    • ZSORTTITLE dan ZTITLE adalah nama buku atau seri.

    Tabel konten ZBKSERIESITEM

  3. Sesuaikan tabel Z_PRIMARYKEY .

    Saya menemukan bahwa tabel ini hanya memiliki dua baris. Satu untuk masing-masing tabel sebelumnya.

    Tabel Z_PRIMARYKEY

    Di sini Anda harus mengubah kolom Z_MAX ke nilai MAX (*) dari Z_PK di masing-masing tabel sebelumnya. Misalnya, dalam DB saya, untuk tabel ZBKSERIESCHECK ( BKSeriesCheck ), MAX (*) kolom Z_PK adalah "22".

  4. Simpan perubahannya.

  5. Buka file Books.plist . Cari masing-masing buku seri dan tambahkan kunci-kunci ini:

    • seriesAdamId sebagai Nomor dengan nilai ZBKSERIESITEM ~ ZSERIESADAMID .
    • itemId sebagai Nomor dengan nilai ZBKSERIESITEM ~ ZADAMID .
    • seriesSequenceNumber as String dengan nilai ZBKSERIESITEM ~ ZPOSITION + 1 . (Ingat bahwa dalam tabel dimulai dengan "0".)
    • seriesTitle sebagai String dengan nilai ZBKSERIESITEM ~ ZTITLE .

    File Books.plist

  6. Simpan file. Tutup iBooks (jika Anda tidak menutupnya dari awal). Bunuh proses com.apple.BKAgentService . Mulai iBooks. Anda harus dapat melihat seri Anda.

    Hasil

Catatan

Kolom-kolom yang tidak saya sebutkan, saya biarkan kosong dan tidak mempengaruhi hasil akhirnya.

Saya pikir ini sulit untuk meletakkan semua buku dan seri Anda dengan benar ketika Anda memiliki banyak buku. Berharap untuk melihat suatu hari nanti sesuatu yang melakukan semua ini secara ajaib.

Ini posting pertama saya. Saya harap semua orang merasakan manfaatnya.


2

Saya punya solusi:

  1. Buka toko iBooks dan unduh sampel untuk buku-buku yang ingin Anda kerjakan.

  2. Ubah ekstensi dari .epub ke .zip.

  3. Ekstrak zip dan hapus folder bernama "OPS" (OEBPS untuk komik).

  4. Temukan eBuku yang Anda miliki dan ubah dari .epub menjadi .zip.

  5. Ekstrak dan temukan OPS.

  6. Pindahkan OPS ke folder contoh ebook.

  7. Pilih semua file dalam sampel, dan buat .zip.

  8. Ubah ekstensi menjadi epub.

  9. Lakukan hal yang sama untuk setiap buku dalam seri.

  10. Seret-dan-jatuhkan ke iTunes.

  11. Sinkronkan dan mulai lagi!

Hati-hati saat masuk ke toko iBook, jika Anda melihat ebook yang Anda edit, itu akan memiliki tombol bertuliskan "pembaruan." JANGAN klik pembaruan, atau Anda harus melakukannya lagi.

Jauh lebih mudah daripada harus mengedit sqlite, dan itu berfungsi pada Mac dan Windows.


Apakah ini akan berfungsi untuk ebook SRMed?
user151019

Jika ada di toko iBooks sebagai sampel, maka ya.
Dadiocoleman

1

Saya perhatikan bahwa, di iBooks, saya memiliki buku ( Inheritance ) yang iBooks soroti sebagai anggota seri (dalam kasus saya disebut 'Eragon' bukan 'The Farseer Trilogy'). Untuk menyelidiki ini, saya mengunduh Inheritance dan menghapus DRM menggunakan Requiem (pada mesin virtual lama) sehingga saya bisa melihat-lihat kode sumber buku tersebut.

Sayangnya, saya punya kabar buruk. Saya menggunakan Sigil untuk mencari kata 'Eragon'. Kata 'Eragon' tidak muncul di mana pun dalam metadata di dalam epub, yang menunjukkan bahwa ini tidak mungkin; iBook ternyata menyimpan informasi seri yang terpisah dengan file epub yang sebenarnya.


Yang menarik, perhatikan bahwa saya masih berpikir itu disimpan secara lokal di suatu tempat mungkin dalam database ibooks sqlite, karena ketika saya menambahkan 2 buku dalam seri lain, mereka dikelompokkan bersama ketika tidak terhubung ke internet
Bilal Syed Hussain

Maksud Anda, Anda menambahkan dua buku dari sumber eksternal, atau Anda membeli dua buku melalui iBooks?
John Coxon

Saya membawa mereka di komputer yang berbeda kemudian mentransfernya ke komputer dengan ibooks tetapi tidak ada internet.
Bilal Syed Hussain

0

Saya mencobanya sendiri, dan menemukan, bahwa daftar putar dalam folder yang sama yang menyimpan epub memiliki informasi tentang seri buku. Ada set metadata seriesTitle dan seriesSequenceNumber. Namun sayangnya mengubahnya tidak membuat Ibooks mendaftar buku sebagai seri. Juga pengaturan Metadata di e-book itu sendiri mengatakan seri Judul dan seriesSequenceNumber tidak berfungsi Kemudian saya menemukan folder di usr. Wadah perpustakaan com.apple.IBooksX Dokumen Data BKSeriesDatabase, tetapi berisi SQL Database. Mungkin informasinya disimpan di sana.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.