エクスポートファイル形式

Bookil Library.json の構造 (スキーマ v1)。

このページでは、Bookil がエクスポート時に書き出す JSON ファイルの仕様を説明します。ファイルを直接確認したり変換したいユーザー向けです。通常のバックアップと復元はアプリ内の操作で行います。詳しくは ライブラリをバックアップする をご覧ください。

ファイル

  • 名前: 常に Bookil Library.json
  • 形式: キーをソートした、読みやすい整形済み JSON。
  • 日付: ISO 8601 文字列。

ルート構造

{
  "schemaVersion": 1,
  "books": [ /* ExportBook */ ],
  "collections": [ /* ExportCollection */ ]
}

schemaVersion は現在 1 です。旧バージョンの Bookil が生成した形式とは互換性がありません。

ExportBook

{
  "fingerprint": "string",
  "fingerprintSourceRawValue": "pdfID" | "fileNameFallback",
  "name": "string",
  "totalPages": 123,
  "readingDirectionOverride": "leftToRight" | "rightToLeft" | null,
  "currentPage": 0,
  "openedAt": "2026-06-24T12:00:00Z" | null,
  "completedAt": "2026-06-24T12:00:00Z" | null,
  "createdAt": "2026-06-24T12:00:00Z",
  "updatedAt": "2026-06-24T12:00:00Z",
  "bookmarks": [ /* ExportBookmark */ ],
  "inkPages": [ /* ExportInkPage */ ]
}
  • fingerprint — Bookil が PDF を識別する安定したキー。PDF 内部の /ID から生成されます。/ID が無い PDF ではファイル名にフォールバックします。
  • fingerprintSourceRawValue — フィンガープリントが PDF 由来なら pdfID、ファイル名フォールバックなら fileNameFallback
  • name — Bookil のライブラリでの PDF のファイル名。

ExportCollection

{
  "name": "string",
  "sortOrder": 1024,
  "isLocked": false,
  "createdAt": "2026-06-24T12:00:00Z",
  "updatedAt": "2026-06-24T12:00:00Z",
  "items": [ /* ExportCollectionItem */ ]
}
  • isLocked — プライバシー保護コレクションなら true、通常コレクションなら false。ロック状態はエクスポートに含まれますが、ファイルの内容は平文のまま書き出されます

ExportCollectionItem

{
  "fingerprint": "string",
  "fingerprintSourceRawValue": "pdfID" | "fileNameFallback",
  "fileName": "string",
  "sortOrder": 1024,
  "createdAt": "2026-06-24T12:00:00Z",
  "updatedAt": "2026-06-24T12:00:00Z"
}

取り込み時、Bookil は fingerprint 優先、次に fileName の順で本に紐付けます。

ExportBookmark

{
  "pageIndex": 41,
  "label": "string" | null,
  "createdAt": "2026-06-24T12:00:00Z",
  "updatedAt": "2026-06-24T12:00:00Z"
}

pageIndex は 0 から始まります。

ExportInkPage

{
  "pageIndex": 0,
  "drawingData": "base64-encoded-bytes",
  "drawingMimeType": "application/x-pkdrawing",
  "boundsX": 0.0,
  "boundsY": 0.0,
  "boundsWidth": 595.0,
  "boundsHeight": 842.0,
  "createdAt": "2026-06-24T12:00:00Z",
  "updatedAt": "2026-06-24T12:00:00Z"
}

drawingData には PencilKit の描画データがネイティブ形式で格納されます。

並び順

エクスポート間の差分を安定させるため、ファイル内のリストは決定的にソートされます。

  • books — ファイル名 → fingerprint。
  • collectionssortOrder → 名前。
  • コレクションの itemssortOrder → ファイル名。
  • bookmarksinkPagespageIndex

互換性

  • 日付は ISO 8601 と数値 (UNIX エポック秒) の両方を受け付けます。
  • Bookil 2025.08.1 以前のエクスポート形式 (本のフラットなリスト) は、このバージョンでは取り込めません
  • 将来のバージョンでフィールドが追加される可能性があります。Bookil は知らないフィールドは取り込み時に無視します。