iBooksシリーズのメタデータ


13

10.10のiBookでは、図に示すように、ブックにシリーズメタデータを含めることができます。

シリーズとして表示できるように、外部のepubに(ibookストアからではなく)どのメタデータを追加する必要がありますか?

シリーズのメタデータ


以前は、書籍がiTunesの一部であったときに、この情報の多くを編集できました。シリーズタイトルは、テレビ番組をサポートするために配置された編集可能なフィールドでした。iTunesの[ビデオ]タブでテレビ番組のメタデータを編集するときにも表示できます(書籍ではフィールド名が異なります)。現在、iBooksの限られた機能(特にメタデータ編集の欠如)により、この情報はiBooksストアフロントからのメタデータに関連付けられているようです。おそらくiBooks SQLite DBにまだ残っているので、誰かがそこを突く方法を知っているなら、私はそれについて聞きたいです。
ニック14

回答:


16

私はそれを作ったが、それはかなりトリッキーです。

概要:

〜/ Library / Containers / com.apple.BKAgentService / Data / Documents / iBooks / BooksにあるBooks.plistファイルを、シリーズに含める本に変更する必要があります。また、BKSeriesに行を追加する必要があります- * sqliteの。 データベース上の〜/ライブラリ/コンテナ/ com.apple.iBooksX /データ/ドキュメント/ BKSeriesDatabaseそれらとシリーズのため。

以下がその方法です。

:データベースには、4つのテーブルがあるZBKSERIESCHECKZBKSERIESITEMZ_PRIMARYKEYZ_METADATAを。最初の3つのテーブルのみを変更しました。「シリーズ」は、これらの表の本のように扱われます。

  1. テーブルZBKSERIESCHECKに書籍とシリーズを追加します。テーブルには5つの列があります。

    テーブルには5つの列があります

    • Z_PKは主キーです。連番である必要があります。
    • Z_ENTZ_OPT「1」で完了しました。
    • ZDATECHECKEDは、行が作成された日付です。私の場合、それは自動的に割り当てられました。
    • ZADAMIDは、本またはシリーズの一意のコードです。

    これは、追加したデータを含むテーブルです。

    本とシリーズのID

    使用したzAdamIdはCalibreのものであるため、任意の数を使用できると想定しています。これらの番号は、購入したシリーズ/ブックとは異なる必要があることに注意してください。

    zAdamIdが「1」の行は私のシリーズで、他は本です。

  2. テーブルZBKSERIESITEMのブックとシリーズ内の関係を追加します。このテーブルには16列があります。

    テーブルZBKSERIESITEM

    • Z_PKZ_ENT、およびZ_OPTは、前の表で定義されたものとは異なります。Z_PKはシーケンシャルでなければならず、Z_ENTZ_OPTはそれぞれ「2」と「1」で完了しました。
    • ZISCONTAINERは、zAdamIdがシリーズかどうかを定義します。「1」は真、「0」は偽です。
    • ZPOSITIONは、最初の本の「0」から始まるシリーズの本の番号を定義します。
    • ZADAMIDは、同じアイテムの前の表で定義されているものと同じです。
    • ZAUTHORは、シリーズ/書籍の著者です。
    • ZGENREは、シリーズ/ブックのジャンルです。
    • ZSEQUENCEDISPLAYNAMEは、シリーズのメンバーとしてブックを表示する方法を定義します。たとえば、最初の本の場合、「Book 1」または「Volume 1」または「Vol.1」を定義できます。この文字列は、本の名前の前に追加されます。シリーズのこの列は空である必要があります。
    • ZSERIESADAMIDは、本のシリーズzAdamIdです。シリーズの場合、これはZADAMIDと同じです
    • ZSERIESTITLEはシリーズの名前です。
    • ZSORTTITLEZTITLEは、本またはシリーズの名前です。

    表ZBKSERIESITEMの内容

  3. テーブルZ_PRIMARYKEYを調整します。

    このテーブルには2行しかないことがわかりました。前の各テーブルに1つ。

    テーブルZ_PRIMARYKEY

    ここでは、変更する必要がZ_MAXののMAX(*)の値に列をZ_PK前のテーブルの各インチ たとえば、私のDBでは、テーブルZBKSERIESCHECKBKSeriesCheck)の場合、列Z_PKの MAX(*)は「22」です。

  4. 変更を保存します。

  5. Books.plistファイルを開きます。シリーズの各本を探し、これらのキーを追加します。

    • seriesAdamIdとしての値を持つZBKSERIESITEM〜ZSERIESADAMID
    • ZBKSERIESITEM〜ZADAMIDの値を持つNumberとしてのitemId
    • seriesSequenceNumberとして文字列の値を持つZBKSERIESITEM〜ZPOSITION + 1。(テーブルでは「0」で始まることに注意してください。)
    • ZBKSERIESITEM〜ZTITLEの値を持つStringとしてのseriesTitle

    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)があることに気付きました(私の場合、「The Farseer Trilogy」ではなく「Eragon」と呼ばれます)。これを調査するために、Inheritanceをダウンロードし、Requiem(古い仮想マシン上)を使用してDRMを削除したため、本のソースコードを調べることができました。

残念ながら、悪い知らせがあります。Sigilを使用して「Eragon」という単語を検索しました。「Eragon」という単語は、epub内のメタデータのどこにも現れず、これが不可能であることを示しています。iBookは、実際のepubファイルとは別にシリーズ情報を保持しているようです。


それは興味深い、私はまだ私は別のシリーズで2冊の本を追加したときに、インターネットに接続していないとき、彼らは一緒にグループ化されたので、それは、iBooksのsqliteのデータベースのどこかに多分ローカルに保存されていると考えることに注意してください
ビラルサイード・フセイン

外部ソースから2冊の本を追加した、またはiBooksで2冊の本を購入したということですか?
ジョンコクソン14年

私はそれらを別のコンピューターに持ち込んでから、インターネットを持たないibookを備えたコンピューターに転送しました。
ビラルサイードフセイン14年

0

自分で試してみたところ、epubを保存している同じフォルダー内のプレイリストには、本シリーズに関する情報があることがわかりました。メタデータseriesTitleおよびseriesSequenceNumberが設定されています。しかし、残念ながらそこを変更しても、ibooksで本をシリーズとしてリストすることはできません。また、電子書籍自体にメタデータを設定して、シリーズのタイトルとシリーズのシーケンス番号が機能しないと言っています。次に、usrにフォルダーを見つけました。ライブラリコンテナcom.apple.IBooksX Data Documents BKSeriesDatabaseですが、SQLデータベースが含まれています。たぶん、情報はそこに保存されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.