オープンソースの電子書籍管理ソフト「Calibre」を使いこなそう!

第4回サーバー上のCalibreから、Kindleへニュースを自動プッシュする

みなさんはこの夏休みどちらかへでかけましたか? 僕はちょっと温泉へ行ってきました。⁠ちょっと行ってきました」と言ってもこの温泉、北アルプスのど真ん中で周りに車の入る道がなく、どの方向から歩いて行っても山小屋泊やキャンプ泊で2日間以上かかる(つまり往復に最低4日間必要。僕は5日間かけて行きました⁠⁠、と言う大変な苦労をしてゆかなければならないと言う所。日ごろそれほど歩かない僕としては、足がもげてしまうかもしれない!と言うほどの苦労をして温泉につかって来ました。

この温泉行はテントを持ってキャンプしながら行ったのですが、荷物を減らすために結構苦労をしました。その荷物減らしに役に立ったのがKindle。1日歩いた後は暇な時間も多いので、本などを持ってゆくのが良いのですが、本って数冊になると結構重いのですよね。Kindleだと文庫本1冊程度の重さで大量の本を内蔵できるため、非常に軽く済ませられます。こんな山の中だと3Gの電波も入らないため、ワイアレスを切りっぱなしです。そうすると電池の持ちも数週間は大丈夫なので、問題ありません。電子書籍って、こんな使い方もいいですよね。

サーバーにCalibreをインストールする

さて、今回はサーバーにCalibreをインストールして、そこからKindle等へニュースをプッシュ配信してみましょう。前にも言及しましたが、AmazonのKindleストアでは新聞や雑誌などの定期刊行物の定期購読ができて、それを使うとKindleのワイアレス(3G / Wifi)を介して自動的に定期配信されてきます。今回はCalibreで同じようなことをしてみます。つまり、サーバーにインストールしたCalibreのニュース取得機能を使って、毎日・設定した時刻にCalibreがニュースを取得し、そこからKindleユーザー向けにAmazonがサービスで設定しているメールアドレスへ自動配信してみます。

今回インストール先のサーバーにはGUI無しのLinuxサーバーを使ってみます。僕が個人的に使っているサーバーは、現在Cent OS 5とUbuntu 11.04のサーバーがあるのですが、試してみたところCalibreには少し新し目のglibcが必要のようで、CentOS 5ではインストールできませんでした。そのため、ここではUbuntu 11.04にインストールしてみます。

実はUbuntuにはすでにCalibreのパッケージがあり、apt等から簡単にインストールすることができます。しかし、Calibreの毎週アップデートには当然ではありますが追いついておらず、古いヴァージョンになってしまいます。その古いヴァージョンにお目当てのニュースがサポートされているならば、それを使っても良いのですが、ここではCalibreのLinux用バイナリをインストールして使います。

CalibreのLinux用バイナリをインストールは簡単です。公式サイトのLinux版のダウンロードページに記載されているとおり、以下のコマンドを実行してください。

sudo python -c "import urllib2; exec urllib2.urlopen('http://status.calibre-ebook.com/linux_installer').read(); main()"

このコマンドを実行すると、/optにCalibreがインストールされます。

日経電子版をKindleに定期配信する

さて、インストールができたら、今度はニュースを取得してみましょう。ここではCalibreのコマンドラインツールのebook-convertを使います。これは以前にニュース・レシピのデバッグ用として紹介しましたが、基本的には電子書籍のフォーマット変換ツールです。しかし入力にニュースのレシピを指定すると、ニュースのダウンロードをして指定したフォーマットへの変換までをやってくれます。今回はニュースの取得とKindleで読める.mobiファイルへのコンバート用として使用します。ebook-convertの基本的な使い方は以下の通りです。

/opt/calibre/ebook-convert input_file output_file [options]

レシピのデバッグ時にはinput_fileの所にレシピファイルを指定してそのレシピが実行しましたが、今回はCalibre内蔵のニュース・レシピを実行します。そのため、input_fileの部分には内蔵のニュース・レシピの名前が入ります。

/opt/calibre/ebook-convert '日本経済新聞(朝刊・夕刊).recipe' /tmp/nikkei.mobi --username=USERNAME --password=PASSWORD

Calibre内蔵のニュース・レシピの名前に「.recipe」を付けてinput_fileに指定してください。内蔵のレシピは、⁠ebook-convert --list-recipes」とすると一覧が表示されます。日経電子版は要購読なので、ユーザー名とパスワードが必要です。それらはオプションの「--username」「--password」を使って指定します。

これで、Kindleで読める.mobiファイルが/tmp/nikkei.mobiにできたので、これをメールでKindleに送ります。sendmail等の標準ツールで送ってもかまいませんが、Calibre付属のメール送信ツール「calibre-smtp」があるので、今回はそれを使って見ます。

/opt/calibre/calibre-smtp -a /tmp/nikkei.mobi  'ado@sig.or.jp' 'ado_81@free.Kindle.com' 'nikkei'

-a は添付するファイル、続くオプションは順に、自分のFromアドレス、送信先アドレス、メールの本文、です。これはKindleの仕様なのですが、送信先のfree.kindle.comはWifi接続時のみに使える無料アカウント。3Gに配信して欲しい場合には有料のkindle.comアカウントを使います。それとKindleの管理ページからFromアドレスからのメールを受信する許可があることを確認してください。

後はこれらをまとめてスクリプトにしてcronから呼べば、定期的にニュースのダウンロードがされて自動的にKindleへ日経電子版が配信されることになります。

Kindleにダウンロードしたニュース
Kindleにダウンロードしたニュース

余談ではありますが、今回設定した内容はCalibreのGUIを使えば、すべてGUIで設定できる機能ばかりではあります。そのため、Windowsサーバー等GUIで使えるサーバーを用意できる方はその方が簡単です。あるいは上手く運用できれば、サーバーを使わなくても空いているラップトップ等を使う事も可能ですね。

TIPS: Calibreのコンテンツ・サーバーを使ってみる

ここまでで、Kindleストアでの定期購読と同様のことができたわけですが、ニュースの中には毎日読まない、時々気が向いた時にしか読まない物もあります。そういうものはサーバー上のCalibreにダウンロードだけしておいて、Calibreのコンテンツ・サーバーを立ち上げておき、読みたくなった時にKindleのブラウザからアクセスすると、簡単にダウンロードできます。

上のebook-convertでニュースのダウンロードをした部分の後、次のコマンドでCalibreのライブラリDBに追加してみましょう。

/opt/calibre/calibredb add --duplicates /tmp/nikkei.mobi

そして、Calibreのコンテンツ・サーバーを立ち上げます。

/opt/calibre/bin/calibre-server --port=80 --username=USERNAME --password=PASSWORD --daemonize

こうすることで、このサーバーにブラウザからアクセスするとCalibreのコンテンツ・サーバーが見え、CalibreのライブラリDBの中の書籍が表示されます。

KindleのブラウザからみたCalibreのコンテンツ・サーバー
KindleのブラウザからみたCalibreのコンテンツ・サーバー

ちなみに、このコンテンツ・サーバーはOPDS(Open Publication Distribution System)カタログに対応しているので、iOS上のiBooksやStanza等から直接ブラウズすることもできます。iPadなどでこれらのニュースを読みたいときにはこの方法も簡単でよいでしょう。

おすすめ記事

記事・ニュース一覧