最終更新日:2012/03/03

SafariEverLogger - Safariで一定時間以上開いていたページを全自動でEvernoteに記録するAppleScriptとUserScript

SafariEverLoggerとは

Safariで表示したページをEvernoteに記録する仕組みで、AppleScriptとUserScriptで実現しています。

自分はネットを見ていて良かったと思ったページがあっても、「もう一回見たくなったら検索すればいいじゃん」、ということでほとんどブックマークを取らないのですが、Safariの履歴から無くなった数ヶ月後に、もう一回見ようとして検索に苦労することがあります。

そこで全自動で、履歴を別の何かに残しておいて検索できたらどうかなということで今まで使ったことがないEvernoteを使ってやってみました。

(ブックマークとかWebクリップすればいいじゃん、というのは無しで…)

できること

一定時間以上開いていたページを記録
すぐに閉じたページは記録しません。あとから見たいページは大抵長く見たページなので、履歴のノイズを減らす為に、それなりに表示したページのみを記録した方がいいのでは、ということです。元ネタは「画像を見た回数を記録」です。
「見た回数」を記録します
「見た回数」が多いほど自分に取って有用なページだと思うので、見ているだけで自然とそのようなページがわかるようになるといいなあ。
ノートは1日ごと/1時間ごと/ページ毎に作成可能
個別とか1時間の方が検索時に絞り込めそうですが、ノート数が多くなります。
0.6では個別ノートのみでやってます。
記録するのはタイトル、URL、本文の要約
検索用に本文の要約を記録します。全部記録してもいいような気がしますが。
0.6では個別ページなので要約せず本文全部を記録しています。
本文の摘出にはWebページの本文抽出 (nakatani @ cybozu labs)を使用しています。要約はOSの機能を使っています。要約する段落数を指定できます。SafariEverLoggerの中に入っています。
YouTube、ニコニコ動画対応
YouTubeとニコニコ動画動画はapiを使って取得した、動画情報とサムネイルを記録します。
Safari5.0.5を使ってる人はSafariWebView2Pdfをインストールすると表示中のページをPDFで保存可能
ほとんどの人は5.1以降を使ってると思いますが…。
無くても動きます

必要なソフト

Mac OS X
10.6.8で動作確認をしています
Safari
バージョン 5.0.5 (6533.21.1)で動作確認しています
Evernote.app
バージョン 3.0.6 (221382)で動作確認しています。
Growl
エラー等一部情報をGrowlで通知します。
Safariの拡張のNinjaKit
UserScriptを実行するのに必要
SafariEverLoggerHelper.user.js
SafariからSafariEverLoggerに情報を送るUserScript
SafariEverLogger
Evernoteに履歴を追加するAppleScript
ServiceAppleScriptでできています。
SafariWebView2Pdf - SafariのアクティブなタブをPDFで保存するSIMBLプラグイン
今ではあまり居ないと思いますが、Safari5.0.5を使ってる人はこのSIMBLプラグインをインストールしてあるとWebページのサムネイルを履歴に追加できます。また、PDFで保存もできます。
無くてもSafariEverLoggerは動きます。
ImageOptim
ImageOptimがアプリケーションフォルダにあれば、ImageOptimの内部にあるoptipngを使って作成されるthumbnail.pngなどを最適化してファイルサイズを小さくします。
Version 1.3.4のファイル構成で動作確認しています。

使い方

  1. Safariの拡張のNinjaKitをインストールします。
  2. SafariEverLoggerHelper.user.jsを開くとNinjaKitがインストールするか確認してくるのでインストールします。
  3. ツールバーの手裏剣のアイコンをクリックしてNinjaKitの設定を表示してSafariEverLoggerHelperの設定を変更します。
  4. 必要なパスワードを設定します。デフォルトでは次のAppleScriptで取得できる文字列です。Long User Name + Short User Name
    tell application "System Events" to set p to (full name of current user) & (name of current user)
    パスワードはWebページから勝手に履歴を追加されないようにする為の念のための仕組みです。
  5. ユーザー名から作成するデフォルトパスワードで使用する場合SafariEverLoggerは特に設定を変更する必要はありません。
  6. SafariEverLoggerにその他設定があるのでAppleScriptエディタで開いて、必要に応じて変更して下さい。
  7. 除外URLはUserScriptかAppleScriptで指定できます。
  8. 何秒表示したらどのノートブックに保存するかはUserScriptを直接いじって変更して下さい。初期値も含めて、スクリプトを見たら何となく分かると思います。
  9. Safariでページを開きます。しばらくするとEvernoteに履歴が追加されれば成功です!
  10. 一回目のSafariEverLoggerの実行時にはこのアプリケーションでURLを開いていいか確認ダイアログが出る場合があります。
  11. パスワードが違う場合はGrowlで通知されます。正しいパスワードも表示します。

使用上の注意

仕様

検索例

1回だけ長く見たことがあるページを検索
2回以上見たことがあるページを検索
2回以上見たことがあり、長く見たこともあるページを検索
2回以上見たことがある動画を検索

スクリーンショット

Ver.0.6.0(画像クリックで拡大)
履歴
サムネイル付き履歴
PDF履歴
動画履歴

コメント

0.6.1

数日使ってますが、「見た回数」を記録するようにしたのがいい気がします。iTunesでも「再生回数」をいろいろ参考にしてますが、この何かした回数を数えるというのはいろいろなところで使えるような気がします。

できれば、見た時間ごとに見た回数をカウントしたいのですが、いい方法が見当たりませんでした。なんかあるかなあ。

あと、ページが違うけどタイトルが同じケースもなんとかしたいかなあ。

数日使って記録されるページ数は5日で250ページほどでした。一日50ページぐらいです。データサイズをサムネイル込みで1ページ60KByteとすると、一日3000KByte=約3MB、1年で3MB*365=1095=約1GBとデータサイズ的にはほとんど気にせず使えるかな?ここ数日調べものをしてなかったけど、いろいろ調べたらもっとページが増える日はありそうです。

しかし、SafariEverLoggerで記録されるデータはこのぐらいなんですが、Evernoteが自動作成するサムネイルのpngで結構でかくて300KByteぐらいあります。このデータサイズが一日300KByte*50=15MByte、1年で5475MByte=5.4GByteと結構でかいです。そこでちょっとでも小さくしようとoptipngで最適化するようにしてみました。2割ぐらい小さくなるようです。年間1GByteぐらい節約できるかな。ついでなんでjpgもjpegoptimで最適化するようにしておきました。

ちなみにEvernoteの最大ノート数は10万らしいので一日50ページだと2000日で到達ですね。2年後ぐらいにまだ使ってたら、「見た回数」が1、「見た時間」が短くて、最後に見たのが1年以上前とかのすごい昔のページを削除して掃除すればいいかな。

0.6.0

保存の仕方を大幅に変えました。前回の方法だと同じページが何度も記録されることになり、検索時に無駄が多いので、URL毎(ページタイトル毎)にノートを作るようにしました。

1095

あと、前回の記録では今ひとつ便利に感じなかったので、「見た回数」も記録するようにしました。Evernoteで数値を記録するいい方法がわからなかったので、タグで最大5回まで記録します(最大数は変更可能です)。2回以上見たページはたぶん自分に取って重要なページだと思うから、自動的にそういうページがわかるようになることに期待です(1時間ぐらい以内に再度ページを表示した場合は見た回数は増えません。なので、リンク先に行って、戻ってきたら見た回数がすぐ増えるということはありません)。

保存するデータもpdfはWebページをそのまま記録できていいのですが、データサイズが大きくて気になるので止めました。気軽に保存するということで、検索用に本文を要約しないで全部保存することにしました。サムネイルと合わせて、1ページのサイズは30KByteぐらいからとなります。サムネイルが無いともっと小さいかな。完全版を見たくなったらブラウザで表示するということになります。その際、見た回数も更新されるので、これはこれでいいかもしれません。まあ、たまにページが無くなって見れなくなっていることもありますけど。

本当は見た回数を秒数ごとで制限無く全部記録して回数順でソートしてみたかったのですが、いい記録方法が思いつきませんでした。

0.5.0

Evernote初心者のなので基本的なところで無駄なことをしているかもしれません。

とりあえず動くようになりましたが、どのタイミングで記録するかの設定については、調整中です。PDFはデータサイズが大きいので止めるかもしれません。

また、記録したデータが役に立つかは数ヶ月後にならないとわからないですね。ちゃんと出番が来るのでしょうか。

SafariWebView2Pdfを使いましたが、Safari5.1でも使える同じようなソフトって無いのかなあ。Safari標準の機能で欲しいですね。サムネイルが有ると無しでは印象がかなり違います。

履歴の配色等のデザインは各自調整して下さい。

処理の重さはほとんど気にならないかな?

ダウンロード

SafariEverLogger0.6.1.zip
記録の更新中にタブやウインドウを閉じた時にテキストが消えないようにした。
thumbnail.pngなどをoptipngで最適化するようにした。
コメント 0.6.1もご覧下さい。
SafariEverLogger0.6.0.zip
コメント 0.6.0をご覧下さい。
スクリーンショットをご覧下さい。
SafariEverLogger0.5.0.zip
一段落ついた