quattro_4's diary

また同じ過ちを繰り返すと気付かんのか!?

eBook(PDF, ePub, Kindle)からハイライトをテキストで取得する方法まとめ

想定する環境
iPadで読んだ電子書籍のハイライトをPC(Mac OS X)で取得

各形式のハイライト取得比較

PDF, ePub, Kindleの各形式についていろいろ試したが、ハイライトを取得する観点で最適なアプリがそれぞれ違った

形式 PDF Kindle ePub
アプリ GoodReader Kindle iBooks
ハイライトのつけやすさ
付加情報 色、ページ -
メモ(Note)の取得
出力方式 Email サイト OR gem Email

※出力手順、細かい制約等は後述

ハイライトのつけ方

ハイライトのつけ方はKindleiBookがドラッグ(範囲選択)のみ
GoodReaderはドラッグからハイライトメニューをクリック

メモの追加、ハイライト削除はシングルタップから
GoodReaderでの削除はシングルタップからさらに[Delete]->[Really delete!]

GoodReaderが一手間多い

メモの取得

Kindleのメモはサイト上またはgemから取得可能。
iBooksのメモは、Email出力経由した場合、ハイライトとメモが区別できない

書籍(ドキュメント)を端末に移動する方法

Kindle

Kindleアプリ内でダウンロード
基本はAmazon公式で購入したものが対象

パーソナルドキュメントはハイライトを活用する観点ではあまり使えない(ハイライトがサイト上に保存されない)

PDF, ePub

基本的にはDropbox経由で端末に移動

さらに、「Documents 5」というアプリでDropbox上の特定のフォルダを同期すると、
何十冊の書籍を一気にiPad上に同期できる

万能っぷりが素晴らしいアプリ「Documents 5」でできる10のこと | ライフハッカー[日本版]

自分の場合「Documents 5」で同期しているフォルダは

Kindle(.mobi)形式のハイライト取得

読むときのアプリはKindle

出力方式: gemを使用して、公式サイトから取得
公式サイト: https://read.amazon.co.jp/kp/notebook
https://kindle.amazon.co.jp/your_highlights(2017/07変更)

kindle_manager gem

GitHub - kyamaguchi/kindle_manager: Scrape information of kindle books and highlights from amazon site

2017/07のKindleハイライト用のサイトのリニューアルを元に、新しいgemで対応しました
Kindleの本のリストを取得する機能もあります
詳しくはREADMEを参照

GitHub - kyamaguchi/kindle: [DEPRECATED] This repo is deprecated. Use kindle_manager

※ forkです。amazon.co.jp対応など本家に取り込んでもらったが、その後本家がリファクタリングを試みた結果壊れたので、今後は独自に拡張する方向

設定

.env にメールアドレスなど設定

AMAZON_USERNAME=your_email@example.com
KINDLE_DOMAIN=amazon.co.jp
FETCH_COUNT_LIMIT=5

FETCH_COUNT_LIMIT は最新の何件を取得するか

実行

forkなのでまずgit clone
次に

./bin/kindle

時々、セキュリティ認証がかかりエラーになるので、ブラウザ上でログインに進み、質問に答えて解除する必要がある

出力形式

出力形式はテキスト

出力サンプル

B00TQJV5DW;仕事ができる人は、なぜ「この話し方」をするのか? (中経出版) (Japanese Edition);by 櫻井 弘;コミュニケーションは「相手」がいなければ成り立たないということ
B00TQJV5DW;仕事ができる人は、なぜ「この話し方」をするのか? (中経出版) (Japanese Edition);by 櫻井 弘;あなたにとっての「できるだけ早く」は今日中なのに、上司は「今週中でいいかな」と勝手に思い込んでいる場合もあります
B00TQJV5DW;仕事ができる人は、なぜ「この話し方」をするのか? (中経出版) (Japanese Edition);by 櫻井 弘;会話をする相手は、自分とは確実に「違う存在」だからです。そのことを忘れているがために、話が伝わらないので
B00TQJV5DW;仕事ができる人は、なぜ「この話し方」をするのか? (中経出版) (Japanese Edition);by 櫻井 弘;「伝わるかどうか」は聞き手が決定権をもっています。  あなたが伝えたつもりでも、相手にきちんと伝わっていなければ、何も伝えていないのと同じです

制約

カラーの書籍などハイライトできないものもある
日本語のハイライトは最後の文字が落ちる
→なので、ハイライトをつける時に1文字分多くつけるようにすると良い

公式で購入していないドキュメントはハイライトを出力できないし、ハイライトがうまく保存されないこともあった

その他

デスクトップ用のアプリが使える

PDFのハイライトの取得

読むときのアプリはGoodReader

出力方式: アプリ内からEmailで送信

Email送信手順

ハイライト(アノテーション)閲覧は本のアイコン http://www.goodiware.com/HTML/HTMLbtnBookmarks.png
ハイライト(アノテーション)の送信は矢印のアイコン http://www.goodiware.com/HTML/HTMLbtnActions.png
[E-Mail Summary]を選択し、メール送信

https://cynicalbabblings.files.wordpress.com/2012/04/img_0120.png?w=700&h=

参考: GoodReader

ハイライトテキストの取得

ハイライトだけでなく、メモ(Note)も出力される
他の情報はページ番号、ハイライトの色情報、日次など

メールに送信されたハイライトのサンプル

File: refactoring-ja-special-edition_p1_0.pdf

Annotation summary:

--- Page xi ---

Highlight (yellow), 2015/03/05 9:10:
2000 年に発行された『リファクタリング プログラミングの体質改善テクニック』


--- Page xix ---

Highlight (yellow), 2015/03/05 9:10:
リファクタリングの父は 2 人います。Ward Cunningham と Kent Beck です。

Highlight (yellow), 2015/03/05 9:10:
John Brant と Don Roberts は単に論文を書くのに止まらず、ツールの作成まで行いました。それが 「Refactoring Browser」 、すなわちリファクタリングを行うための Smalltalk のブラウザです。


--- Page 12 ---

Highlight (yellow), 2015/03/05 9:10:
変更がほんの少しであれば、それによって生じるエラーを見つけるのは簡単 なことです。


--- Page 66 ---

Highlight (red), 2015/03/06 14:56:
決してリファクタリングをしてはいけない場合もあります。第 1 の例は、変更するよりも最 初からの書き直した方が早いという場合です。

Highlight (yellow), 2015/03/06 14:56:
リファクタリングを避けるべき第 2 の例として、 期間が迫っている場合があります。 こうした状況では、リファクタリングをしても生産性の向上が見られるのは締め切り後であり、 時すでに遅しということになってしまいます。

Highlight (blue), 2015/03/06 14:56:
時間が足りなくなるというのは、たいて いの場合、リファクタリングが必要であることを示唆しているのです。

Note (yellow), 2015/03/06 14:56:
あいうえお

ハイライトテキストの整形

ハイライト(アノテーション)を扱いやすくするために、簡単なparseするスクリプトを作った
以下のGistをRubyファイルとして保存して実行
出力部分は各自アレンジして自分の欲しい形に整形すると良い

Extract highlights and notes which are exported from Good Reader app · GitHub

実行例

ruby good_reader_annotations.rb input.txt

実行結果

$ ruby good_reader_annotations.rb input.txt
[Highlight]
--- yellow ---
2000年に発行された『リファクタリングプログラミングの体質改善テクニック』 (pxi)
リファクタリングの父は2人います。WardCunninghamとKentBeckです。 (pxix)
JohnBrantとDonRobertsは単に論文を書くのに止まらず、ツールの作成まで行いました。それが「RefactoringBrowser」、すなわちリファクタリングを行うためのSmalltalkのブラウザです。 (pxix)
変更がほんの少しであれば、それによって生じるエラーを見つけるのは簡単なことです。 (p12)
リファクタリングを避けるべき第2の例として、期間が迫っている場合があります。こうした状況では、リファクタリングをしても生産性の向上が見られるのは締め切り後であり、時すでに遅しということになってしまいます。 (p66)

--- red ---
決してリファクタリングをしてはいけない場合もあります。第1の例は、変更するよりも最初からの書き直した方が早いという場合です。 (p66)

--- blue ---
時間が足りなくなるというのは、たいていの場合、リファクタリングが必要であることを示唆しているのです。 (p66)


[Note]
--- yellow ---
あいうえお (p66)

制約

改行のところで余計な空白が入る
Gist内で一部コメント化してあるgsubの部分を有効化すれば空白を削除できる(日本語書籍のみ)

ページをまたいでハイライトできない
ハイライトが重なった場合、別のものとして扱われる

備考

iBooksでPDFはハイライトできない

ePubのハイライトの取得

読むときのアプリはiBooks

出力方式: アプリ内からEmailで送信

ハイライトテキストの取得

ハイライトとメモが取得できる、メモと区別できない

メールに送信されたハイライト+メモのサンプル

f:id:quattro_4:20150324155242p:plain

他のPDFリーダーとの比較

PDFリーダーでPDF ExpertとiAnnotateという有料アプリ(¥1000くらい)も試したがあまり良くなかった
どちらもハイライトのつけ方がGoodReaderよりだいぶ面倒で断念した(出力機能は評価していない)

Annotate Vs PDF Expert vs Goodreader review 2012 | Random Musings