MOBI ファイルは、Mobipocket 形式の電子書籍ファイルです。Mobipocket はフランスの企業で、Palm や Windows Mobile 携帯端末向けのリーダーソフトを提供していました。Amazon は 2005 年に同社を買収し、この形式を初代 Kindle の基盤にしました。そのため、MOBI ファイルと Kindle ファイルの内部構造はとてもよく似ています。その後 Amazon は自社のツールを Kindle Format 8 と EPUB に移行したため、MOBI は現在では新しく出版時に使われることはほとんどなく、古い電子書籍コレクションの中で見かけるレガシー形式になっています。
MOBI ファイルの構成
MOBI は Palm OS 時代のコンテナ形式である Palm Database 形式の上に構築されており、バイナリ形式です。テキストエディタで開いても意味のある内容は表示されません。ファイルはまずヘッダーから始まり、そこにデータベース名が記録されます。通常は書名をつぶしたような文字列で、型コード BOOKMOBI が付けられます。その後ろには連番付きのレコード一覧が並びます。
本の本文は最大 4 キロバイトごとのレコードに分割され、PalmDOC 圧縮方式か、より高圧縮な HuffCDIC 方式のいずれかで圧縮されます。圧縮しないファイルもあります。どちらの方式も可逆圧縮なので、圧縮しても内容は失われません。内部のマークアップは機能を削った HTML で、90 年代後半のウェブに近い構造です。スタイル指定は最小限で、埋め込みフォントはありません。画像はそれぞれ独立したレコードとして保存され、番号で参照されます。Amazon の旧 kindlegen ツールで生成されたファイルは、1 つの中に 2 冊分を含むことがよくあります。古い端末向けの MOBI セクションと、新しい端末向けの Kindle Format 8 セクションが境界レコードで区切られて連続している構造です。
MOBI ファイルに含まれるメタデータ
MOBI は説明用の情報を、拡張ヘッダーを意味する EXTH ヘッダーに保存します。これはメインの MOBI ヘッダーの直後に置かれます。EXTH は項目の一覧で、各項目には名前ではなく番号のタグが付いているため、多くのレポートでは番号と名前の両方が表示されます。実際によく目にするのは、著者 (レコード 100)、出版社 (101)、説明または紹介文 (103)、ISBN (104)、件名タグ (105)、出版日 (106)、貢献者 (108)、権利表記 (109)、そして Amazon が自社カタログ内でタイトルに付与する識別子である ASIN (113) です。このほかに言語情報と、Palm ヘッダー内の名前を上書きする更新済みタイトルもあります。
このうち 2 つの項目は詳しく見る価値があります。貢献者フィールドは、人名が入っていることはほとんどありません。変換アプリが自分自身の名前を書き込むため、Calibre や kindlegen といった名前とバージョン番号が入っていることが多く、どのソフトがいつ頃このファイルを処理したかの目安になります。Palm ヘッダー側には作成日時と更新日時も記録されます。つまり MOBI には、設計として著者名と出版社名が入り、それに加えてどのソフトウェアがいつファイルを生成したかが記録され、ASIN や ISBN によってそのファイルが特定の刊行版と結び付けられます。MOBI の Amazon 向け派生形式である .azw ファイルは、DRM によって保護されており、購入したアカウントに紐付けてロックされます。ファイル内の表紙画像には、写真に含まれるカメラ情報ブロックである EXIF データも保持されています。
MOBI を使用するタイミング
本を MOBI のまま保持する妥当な理由は、より新しい形式を読めない端末がある場合だけです。初期の Kindle や Mobipocket 時代の携帯端末などがそれにあたります。それ以外の場合、トレードオフははっきりしています。MOBI には埋め込みフォントがなく、レイアウト制御はほとんどできず、固定レイアウトもなく、読み順は 1 本の線形構造だけなので、出版社のタイポグラフィや複雑なページ構成は再現されません。汎用的に使うなら EPUB、Kindle 固有の形式として使うなら AZW3 が適しており、どちらも現代的なスタイリングを扱えます。MOBI をこれらの形式に変換すること自体は容易ですが、そもそも MOBI に保存されていなかったデザインを変換で復元することはできません。