本好きの下剋上の原作版をKindleで読みたすぎたのでコンバータを自作した

だいたいラノベ(なろう小説)は原作版と小説版でレイアウトから何から何まで何もかも違う.特に,原作版はPCで読まなくてはならないので苦痛だし自由ではない.

なので,iPhoneのKindleでも原作版を読めるように電子書籍を作ってみた.

無題

なろう小説をクロールして整形し,EPUB形式のHTMLを吐き出したり,Table of Contentsを作成した.完全に自家用で作ったのでソースコードは公開するつもりはまったくない.というより,本好きの下剋上がかなり整えられた状態で置いてあったので,ほぼ加工する必要がなかった.

過去に,GATEの原作をEPUBに変換してKindleへ持ち込んだりしたので,そのあたりのノウハウは意外とまだ覚えていた.文字化けもだいたい検討がついていて,DOCTYPE宣言とXML宣言の両方を入れるとUTF-8として認識した.解せぬ.

一番苦労したところは,文字の間隔だと思う.表示端末がKindleなのでiPhoneでどのように表示されるのか調整できない.正直なところ,編集者がついていて文字間隔だとかフォントサイズとか練りに練られて洗練されたものが自家製本が叶うわけない.実際にiPhoneへ転送したとしても,そのあたりがかなりのストレスになる.文章の美しさは行間や文字間隔にも依存してしまうのでしょうがない.

開発言語はPythonで,クロールはSeleniumを使い,HTMLの作成はただの文字列でやった.BeautifulSoupなどのライブラリはクロールしたHTMLのパースに使ったぐらいで,ファイル容量を抑えるためにすべてテキストでベタ書きにしている.EPUBの実態はただのZIPなので手間はそこまでかからない.

ちなみに,ファイル容量は1部あたり8MBぐらいになった.EPUB形式だと2MBぐらいなので,Kindleほ本当に圧縮処理をちゃんとやっているのか大変気になる.

これを作るのに,だいたい1日2時間ぐらいかけて,5~6日ぐらいで完成した.賞味のところ15時間ぐらいで完成したと思う.1部から5部まで揃えたので,原作と小説で編集や校正の入れ方などを比較できる.自分はこれがやりたい.

プロ編集者になると,ガラッと文章が変わる.また,原作と小説でIF展開するのもあるので,両方読まないと面白くない.特に,GATEがアニメと小説でぜんぜん違うエンディングを迎えるので,全部読まないと気になって仕方がない.

既に,Kindleで1~4部まで購入して,5部が出版待ちなので,先回りして5部が読める形になる.これはちょっとうれしい.

関東大雪のとき,まおゆうをiPad miniに突っ込んで,横書きで読んだのが懐かしい.関東大雪がなければ,今でも一生懸命Webで読んでいたと思う.Webで読むと目線の移動が横に慣れていないので疲れる.特に,横書きはクセでななめ読みをしてしまいやすい.縦書きはブロック読みをしようと思っても縦の視野が狭いので読み飛ばしに対して慎重になり,より物語に没入できるのがいい.

過去の話は置いといて,これを.azkファイルに変換すれば,iPhone用のKindleファイルが完成する.Amazon Kindleにアップロードするのではなく,iPhoneにインストールされたKindleに直接入れれば,自家製本したKindleを読めるようになる.

一応,電子書籍協会がEPUB 3.0などの仕様を公開しているが,xhtmlがバグってて仕様を閲覧できない.許すまじ.基本的には電子書籍のレンダラが読める形であれば何でも読める.推奨されているのがHTMLなので,やろうと思えばそれほど苦労せず電子書籍を作れる.

電子書籍を構成するファイルなどは,仕様の把握にとても時間がかかるので,電子出版が1部あたり5万円ぐらいで請け負っているので,出版社かどこかはそういう会社に投げているのだろう.エンジニアじゃないとマークアップ言語(特にXMLの仕様)はすぐに仕様書から把握できるものではないので,電子書籍の出版が微妙に紙より遅いのはそのせいだと思う.

最近はGitが電子書籍事業に進出したので,技術書などはGitBooksを中心に出版されると思う.Web版は有料だった記憶があるのでOSS版でコマンドを叩いてEPUBを出力すると無料で作れる.ただし,Node.jsみたいにコンフィグをひたすら書かなければならないので微妙に敷居が高い.

個人的には,もう少し電子書籍が流行ってもいいかなとは思う.Kindle UnlimitedもUnlimitedじゃないし,小説のほとんどが実は読めない.紙媒体で一度出版してしまうと,かならずしもデジタルデータで残っているとは限らないのがつらい.

そんなわけで,エンジニア諸氏はよりEPUBの仕様を広めてもらいたい.現在のトラブルシュートのほとんどが英語頼みなので…….

普段は研究していて生活が厳しいのでサポートしてくれる方がいるととても嬉しいです.生活的な余裕が出ると神が僕の脳に落書きを残してくれるようになります.