метаданные серии iBooks


13

В iBooks 10.10 книги могут иметь метаданные серии, как показано на рисунке.

Какие метаданные мне нужно добавить во внешний epub (т.е. не из магазина ibook), чтобы они могли отображаться в виде серии?

метаданные серии


Раньше вы могли редактировать много этой информации, когда книги были частью iTunes. Название серии было редактируемым полем, которое было добавлено для поддержки телешоу. Вы по-прежнему можете увидеть его при редактировании метаданных телешоу в iTunes на вкладке «Видео» (названия полей для книг были разными). В настоящее время, учитывая ограниченные возможности iBooks (особенно отсутствие редактирования метаданных), кажется, что эта информация связана с метаданными из витрины магазина iBooks. Вероятно, он все еще находится в базе данных iBooks SQLite, поэтому, если кто-то знает, как там ковыряться, я бы хотел услышать об этом.
Ник

Ответы:


16

Я сделал это, но это довольно сложно.

Резюме:

Вы должны изменить файл Books.plist в ~ / Library / Containers / com.apple.BKAgentService / Data / Documents / iBooks / Книги для книг, которые вы хотите иметь в серии, а также вы должны добавить строки в BKSeries - *. sqlite база данных в ~ / Library / Containers / com.apple.iBooksX / Data / Documents / BKSeriesDatabase для них и серии.

Вот как я это сделал:

База данных имеет 4 таблицы: ZBKSERIESCHECK , ZBKSERIESITEM , Z_PRIMARYKEY и Z_METADATA . Я изменил только первые три таблицы. «Серия» трактуется как книга в этих таблицах.

  1. Добавьте книги и серию в таблицу ZBKSERIESCHECK . Таблица имеет 5 столбцов.

    Таблица имеет 5 столбцов

    • Z_PK является первичным ключом. Это должен быть порядковый номер.
    • Z_ENT и Z_OPT я только что закончил с "1".
    • ZDATECHECKED - это просто дата создания строки. В моем случае это было назначено автоматически.
    • ZADAMID - это уникальный код для книги или серии.

    Это таблица с данными, которые я добавил.

    ID книг и серий

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

    Строка с zAdamId "1" - это моя серия, остальные - книги.

  2. Добавьте отношения в книгах и сериях в таблицу ZBKSERIESITEM . Эта таблица имеет 16 столбцов.

    Стол ЗБКСЕРИЗИТЕМ

    • Z_PK , Z_ENT и Z_OPT не совпадают с определенными в предыдущей таблице. Z_PK должен быть последовательным, а Z_ENT и Z_OPT я только что завершил с "2" и "1" соответственно.
    • ZISCONTAINER определяет, является ли zAdamId серией или нет. «1» - это правда, «0» - это ложь.
    • ZPOSITION определяет номер книги в серии, начиная с «0» для первой книги.
    • ZADAMID является таким же, как определено в предыдущей таблице для того же элемента.
    • ЗАТОР - автор серии / книг.
    • 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 as String со значением ZBKSERIESITEM ~ ZPOSITION + 1 . (Помните, что в таблице это начинается с "0".)
    • seriesTitle as String со значением ZBKSERIESITEM ~ ZTITLE .

    Файл Books.plist

  6. Сохраните файл. Закройте iBooks (если вы не закрывали его с самого начала). Убейте процесс com.apple.BKAgentService . Запустите iBooks. Вы должны увидеть свою серию.

    Результаты

Примечания

Те столбцы, которые я не назвал, я просто оставил их пустыми, и это не повлияло на конечный результат.

Я думаю, что сложно поставить все свои книги и сериалы должным образом, когда их много. Надеюсь когда-нибудь увидеть что-то, что сделает все это автоматически.

Это мой первый пост. Я надеюсь, что все находят это полезным.


2

У меня есть решение:

  1. Перейдите в магазин iBooks и загрузите образцы книг, с которыми вы пытаетесь работать.

  2. Измените расширение с .epub на .zip.

  3. Распакуйте zip и удалите папку с именем «OPS» (OEBPS для комиксов).

  4. Найдите книгу, которая у вас есть, и перейдите с .epub на .zip.

  5. Извлеките его и найдите OPS.

  6. Переместите OPS в папку с образцами электронных книг.

  7. Выберите все файлы в образце и создайте .zip.

  8. Измените расширение на epub.

  9. Сделайте то же самое для каждой книги в серии.

  10. Перетащите в itunes.

  11. Синхронизируйте и все!

Будьте осторожны, заходя в магазин iBook, однако, если вы увидите отредактированную книгу, на ней будет кнопка «обновить». НЕ нажимайте кнопку «Обновить», иначе вам придется сделать это снова.

Намного проще, чем редактировать sqlite, и он работает как на Mac, так и на Windows.


Будет ли это работать для SRMed книг?
user151019

Если это в магазине iBooks в качестве образца, то да.
Дадиоколеман,

1

Я заметил, что в iBooks у меня есть книга ( Наследование ), которую iBooks выделяет как член серии (в моем случае это «Эрагон», а не «Трилогия дальновидности»). Чтобы исследовать это, я скачал Inheritance и удалил DRM, используя Requiem (на старой виртуальной машине), чтобы я мог покопаться в исходном коде книги.

К сожалению, у меня плохие новости. Я использовал Сигил, чтобы найти слово «Эрагон». Слово «Эрагон» нигде не встречается в метаданных в epub, указывая на то, что это невозможно; Очевидно, что iBook хранит информацию о сериях отдельно от файлов epub.


Интересно отметить, что я все еще думаю, что он хранится где-то локально, может быть, в базе данных sqlite ibooks, поскольку, когда я добавил две книги в другой серии, они были сгруппированы вместе, когда они не подключены к Интернету
Билал Сайед Хуссейн,

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

Я перенес их на другой компьютер, а затем перенес их на компьютер с ibooks, но без интернета.
Билал Сайед Хуссейн

0

Я попробовал это сам и обнаружил, что список воспроизведения в той же папке, где хранятся epubs, содержит информацию о серии книг. Есть набор метаданных seriesTitle и seriesSequenceNumber. Но, к сожалению, его изменение не делает Ibooks списком книг в серии. Также настройка метаданных в самой электронной книге, говорящая, что серия Title и seriesSequenceNumber не работает. Потом я нашел папку в usr. Контейнеры библиотеки com.apple.IBooksX Документы данных BKSeriesDatabase, но они содержат базу данных SQL. Возможно информация хранится там.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.