Метадані серії iBooks


13

В iBooks 10.10 книги можуть мати метадані серії, як показано на зображенні.

Які метадані мені потрібно додати до зовнішньої epub (тобто не в магазині ibook), щоб вони могли відображатися у вигляді серії?

метадані серії


Ви раніше могли редагувати багато цієї інформації, коли книги були частиною iTunes. Назва серії - це редаговане поле, яке було розміщено для підтримки телепередач. Ви все ще можете побачити це під час редагування метаданих телешоу в iTunes на вкладці Відео (назви полів були різними для книг). Зараз з обмеженими можливостями iBooks (зокрема, відсутністю редагування метаданих), здається, ця інформація пов'язана з метаданими з магазину iBooks. Це, мабуть, все ще є в БД iBooks SQLite, тому, якщо хтось знає, як туди кинутись, я хотів би почути про це.
Нік

Відповіді:


16

Я це зробив, але це досить хитро.

Підсумок:

Ви повинні змінити файл Books.plist у ~ / Бібліотека / Контейнери / com.apple.BKAgentService / Дані / Документи / iBooks / Книги для книг, які ви хочете мати у серії, а також вам потрібно додати рядки в BKSeries - *. sqlite база даних на ~ / Бібліотека / Контейнери / com.apple.iBooksX / Дані / Документи / BKSeriesDatabase для них та серії.

Ось як я це зробив:

У базі даних 4 таблиці: ZBKSERIESCHECK , ZBKSERIESITEM , Z_PRIMARYKEY та Z_METADATA . Я змінив лише перші три таблиці. "Серія" трактується так само, як книга в цих таблицях.

  1. Додайте книги та серії в таблицю ZBKSERIESCHECK . У таблиці є 5 стовпців.

    У таблиці є 5 стовпців

    • Z_PK - це первинний ключ. Це повинно бути послідовним номером.
    • Z_ENT і Z_OPT я щойно завершив "1".
    • ZDATECHECKED - це лише дата створення рядка. У моєму випадку це було призначено автоматично.
    • ZADAMID - це унікальний код книги чи серії.

    Це таблиця з даними, які я додав.

    Ідентифікатор книг та серій

    Я використовував zAdamId від Caliber, тому я вважаю, що ви можете використовувати будь-яке число. Майте на увазі, що ці цифри повинні відрізнятися від придбаних серій / книг.

    Рядок із zAdamId "1" - це моя серія, інші - книги.

  2. Додайте відносини в межах книг і серій у таблицю ZBKSERIESITEM . Ця таблиця містить 16 стовпців.

    Таблиця ZBKSERIESITEM

    • Z_PK , Z_ENT і Z_OPT - це не ті самі, які визначені в попередній таблиці. Z_PK має бути послідовним, а Z_ENT та Z_OPT я щойно доповнив "2" та "1" відповідно.
    • ZISCONTAINER визначає, чи є zAdamId серія чи ні. "1" є істинним, "0" - хибним.
    • ZPOSITION визначає номер книги в серії, починаючи з "0" для першої книги.
    • ZADAMID - це те саме, що визначено в попередній таблиці для того ж елемента.
    • ZAUTHOR - автор серії / книг.
    • ZGENRE - жанр серіалу / книг.
    • ZSEQUENCEDISPLAYNAME визначає, як книга відображається як учасник серії. Наприклад, для першої книги можна визначити "Книга 1" або "Том 1" або "Т.1". Цей рядок буде попередньо назва книги. Цей стовпець повинен бути порожнім для серії.
    • ZSERIESADAMID - це серія zADamId книги. Для серії це те саме, що і ZADAMID .
    • ZSERIESTITLE - назва серії.
    • ZSORTTITLE та ZTITLE - це назва книги чи серії.

    Зміст таблиці ZBKSERIESITEM

  3. Налаштуйте таблицю Z_PRIMARYKEY .

    Я виявив, що ця таблиця має лише два ряди. По одному для кожної з попередніх таблиць.

    Таблиця Z_PRIMARYKEY

    Тут ви повинні змінити стовпчик Z_MAX на значення MAX (*) Z_PK у кожній з попередніх таблиць. Наприклад, у моїй БД для таблиці ZBKSERIESCHECK ( BKSeriesCheck ) MAX (*) стовпця Z_PK дорівнює "22".

  4. Збережіть зміни.

  5. Відкрийте файл Books.plist . Знайдіть кожну з книг серії та додайте ці ключі:

    • seriesAdamId як Число зі значенням ZBKSERIESITEM ~ ZSERIESADAMID .
    • itemId як Число зі значенням ZBKSERIESITEM ~ ZADAMID .
    • seriesSequenceNumber як String зі значенням ZBKSERIESITEM ~ ZPOSITION + 1 . (Пам'ятайте, що в таблиці він починається з "0".)
    • seriesTitle як String зі значенням ZBKSERIESITEM ~ ZTITLE .

    Файл Books.plist

  6. Збережіть файл. Закрийте iBooks (якщо ви не закривали його з самого початку). Убийте процес com.apple.BKAgentService . Запустіть iBooks. Ви повинні мати змогу переглянути свої серії.

    Результати

Примітки

Ці колонки я не назвав, я просто залишив їх порожніми, і це не вплинуло на кінцевий результат.

Я думаю, що важко скласти всі свої книги та серії належним чином, коли їх у вас багато. Сподіваюся, що колись побачити щось, що робить все це автоматично-магічно.

Це моє перше повідомлення. Я сподіваюся, що всі вважають це корисним.


2

У мене є рішення:

  1. Зайдіть в магазин iBooks і завантажте зразки книг, з якими ви намагаєтеся працювати.

  2. Змініть розширення з .epub на .zip.

  3. Витягніть блискавку і видаліть папку під назвою "OPS" (OEBPS для коміксів).

  4. Знайдіть у вас електронну книгу та перейдіть від .epub до .zip.

  5. Витягніть його та знайдіть OPS.

  6. Перемістіть OPS у папку зразка електронних книг.

  7. Виберіть усі файли у зразку та створіть .zip.

  8. Змініть розширення на epub.

  9. Зробіть те саме для кожної книги з серії.

  10. Перетягування в ітани.

  11. Синхронізуйте і там ви йдете!

Будьте обережні, заходячи в магазин iBook, хоча, якщо ви побачите електронну книгу, яку ви редагували, на ній з'явиться кнопка "оновити". НЕ клацніть оновлення, інакше доведеться це робити заново.

Набагато простіше, ніж редагувати sqlite, і він працює як на Mac, так і на Windows.


Чи буде це працювати для електронних книг SRMed?
користувач151019

Якщо він знаходиться в магазині iBooks як зразок, то так.
Dadiocoleman

1

Я помітив, що в iBooks у мене є книга ( Inheritance ), яку iBooks виділяє як учасницю серії (у моєму випадку називається "Ерагон" замість "Трилогії Farseer"). Для того, щоб дослідити це, я завантажив Спадкування і позбавив DRM за допомогою реквієму (на старій віртуальній машині), щоб я міг зазирнути у вихідний код книги.

На жаль, у мене погані новини. Я використовував Сигіл для пошуку слова "Ерагон". Слово "Ерагон" ніде не міститься в метаданих всередині epub, що вказує на те, що це неможливо; iBook очевидно підтримує інформацію про серії окремо від фактичних файлів epub.


Що цікаво, зауважте, що я все ще думаю, що він зберігається локально десь, можливо, в базі даних ibooks sqlite, оскільки коли я додав 2 книги в іншій серії, вони були згруповані разом, коли вони не були підключені до Інтернету
Bilal Syed Hussain

Ви маєте на увазі, що ви додали дві книги із зовнішнього джерела або купили дві книги через iBooks?
Джон Коксон

Я приніс їх на інший комп'ютер, потім переніс їх на комп'ютер із ibooks, але не в Інтернеті.
Білал Сієд Хуссей

0

Я сам спробував це і з’ясував, що список відтворення в тій самій папці, де зберігаються епуби, містить інформацію про книжкові серії. Є набір метаданих серіїTitle та seriesSequenceNumber. Але, на жаль, її зміна не примушує Ibooks складати список книг як серії. Крім того, встановлення метаданих у самій електронній книзі, у якій говориться, що серія Title and seriesSequenceNumber не працює. Потім я знайшов папку в usr. Контейнери бібліотеки com.apple.IBooksX Документи даних BKSeriesDatabase, але вона містить базу даних SQL. Можливо, інформація там зберігається.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.