なろう小説をPaperwhiteで読みたい、と思ってググってみた所、以前は変換するサービスがあったっぽいが今は無いらしい。 rubyを入れたりいろいろ設定すると同じような事をする事は出来るらしが、さすがにかったるい。 という事で、colabでepubまで作る物を作った。

あまりサポートとかする気は無いので分かる人だけ使ってください。

URL

colab: narou_epub.ipynb

使い方

colabを自分の所で実行し、最初のセルにNCODEとか必要な物を入れます。 URLは連番でwgetするだけで、CHAPTER_NUMはwgetする事になるページ群の最後の数字を入れて下さい。 また、TITLEはepubのファイル名にもなるので変な文字は使わないのが無難。

epubまで出来たらダウンロードしてローカルのkindlegenでmobiにします。

コンセプトとか

サイトが変わったりした時の為にも、あまり全自動にはしたくない。 UNIX的にローテクを組み合わせて、途中途中で手作業で復旧出来る余地を作りたい。

NCODEや連番の範囲などは自動でスクレイピングせずに手動で入れたい。 そちらの方が動かなくなったあとに直すのが楽だから。

またローカルにrubyやpythonは入れたくない。

kindleのフォーマット回りは面倒が多いので公式のkindlegenに任せたい。

という事でこんな構成になりました。

メモ

mobiのタイトルが最後のページのタイトルになってしまう。 metadata.txtにタイトルを入れると二重タイトルになってしまってmobiがエラーを吐くのでそのままにしてある。 たぶんpandocのオプションとか調べれば直せるが、まぁいいか、と。

あとwgetする所が遅い。やはり複数リクエストを並列に飛ばしたいが、現状でも他の事やりつつ流しておけば終わるのでまぁいいか、と放置している。

また、試しに本好きの下剋上を全部落としてmobiにしたら、Paperwhietでは目次を開くのがつらい。読み進める事は出来るけれど、きになった所だけを読み直すべく飛ぶ、という用途には辛い。 という事でwgetが遅すぎるようなタイトルは結局mobiを分割したりした方が良さそうなので、wgetの所だけ頑張っても仕方ないかな、という気もする。

mobiにする所はどうせ画像無しなのだからpythonで書けば良い気もするけれど、 あんまり便利にしすぎると迷惑をかけるかもしれないのでこの位でいいか、と思っている。

段落の境界の空白は大きすぎる気がしている。 styleを書けば良いのかもしれないけれど、面倒なのでそのままで。

サイトが変わったりして動かなくなってもすぐ直せる事、ローカルにpythonやrubyやpandocを入れなくて済ませたい事などを重視して作った。まぁまぁ良い仕上がりと思っている。