2010年07月16日 01:15 [Edit]
perl - O'ReillyのiPhoneアプリ本からepubをぶっこぬく
W00t!
たった600円でオライリー本をiPadやKindleで読む。すてき。 - このブログは証明できない。ところが、紙の本と比べてそれほど安くないんですね。iPhone版の600円はやはり魅力です。大丈夫。実はこのアプリからiPadで読めるepubを取り出すことができるんです。特殊なハックというわけではなく、オライリーのサイトでもやり方が書かれています。はてなブックマーク - samurai20000のbookmark
これすごすぎる。ただ、やり方が面倒なので自動化したいとこ。
やりましょう。
できました。
#!/usr/bin/env perl use strict; use warnings; use File::Basename; use File::Path; sub clean{ File::Path::rmtree('Payload'); } my $src = shift; die "usage:$0 src.ipa [dst.epub]" unless -f $src; my $dst = shift; if (!$dst){ $dst = basename($src); $dst =~ s/\w+$/epub/; } system qw/unzip -q/, $src, qw/-x iTunes*/; die $! if $!; my $app = <Payload/*.app/book>; clean and die "No book found in the archive" unless $app; chdir $app; my $updir = '../../..'; system qw/zip -q0X/, "$updir/$dst", 'mimetype'; system qw/zip -qXr9D/, "$updir/$dst", qw/ META-INF OEBPS/; chdir $updir; clean; system qw{open -a /Applications/iTunes.app}, $dst;
これにipa2epub
とでも名前をつけて保存して、chmod +x ipa2epub
としけば、あとは
ipa2epub path/to/thebook.ipa
とすればカレントディレクトリにepubファイルを作成した上で、iTuneに登録までしてくれます。
うーん、いいながめ。
Enjoy!
Dan the EPUB-reading Perl Monger
追記2011.11.16
O'ReillyのiPhoneアプリ版書籍からePubを生成する @dankogai 氏のスクリプト(http://t.co/wcpvGU7Q )、そのままだと iBooks で英英辞書になるので、英和辞書を有効にするためのパッチ書いた。 http://t.co/Tw1dWgBD
Posted by dankogai at 01:15│Comments(0)│TrackBack(3)
この記事へのトラックバックURL
この記事へのトラックバック
404 Blog Not Found:perl - O’ReillyのiPhoneアプリ本からepubをぶっこぬくを参考に、Ruby版を作ってみるテストのWindows版です。 Windowsにはzip/unzipコマンドがないので、ziprubyライブラリを使ってみました。 require "fileutils" require "zipruby" d
[Ruby][EPUB][Windows]O’ReillyのiPhone AppからEPUBファイルを抽出するRubyスクリプト【Windows版】【いたさんの日記】at 2010年08月18日 11:04
404 Blog Not Found:perl - O’ReillyのiPhoneアプリ本からepubをぶっこぬくを参考に、Ruby版を作ってみるテスト。 #/usr/bin/env ruby def deleteall(delthem) if FileTest.directory?(delthem) then # ディレクトリかどうかを判別 Dir.foreach( delthem ) do |file| # 中
[Ruby][EPUB][Mac]O’ReillyのiPhone AppからEPUBファイルを抽出するRubyスクリプト【いたさんの日記】at 2010年08月13日 18:28
「たった600円でオライリー本をiPadやKindleで読む。すてき。」という記...
たった600円でオライリー本をKindleで読む。自動化。【Inquisitor】at 2010年07月18日 14:27