Evernoteがは、APIキーの配布を簡単にはしてくれないので、世間にあるEvernoteのmcpサーバが使えない。どうやらEvernoteはAPIの整理中で一時的に配布していないだけっぽい。いずれ、MCPサーバを出しそうな感じだが。(Wating Listがあったので申し込んでおいた。)
Evernoteの値上げもあったので、Joplinなどへ移行も考えてみた。しかしJoplinを建ててみたものやはりなんやかんやでEvernoteが使いやすいし、慣れている。いろいろ賛否両論があるがEvernoteが好きだ。もし、Evernoteから移行となるとJoplinかと。Joplinの唯一の欠点は、Webで参照ができない。Webからも見れるのは結構便利なんだが。
いろいろ考えた挙句、EvernoteのノートをMarkdownにできれば、MCP問題はRAGで解決するのではと調べていたら、実は、EvernoteのENEXファイルからMarkdownファイルができることが判明。さらにENEXファイルで抜いておけば、他への移設への準備ができるらしい。
しかし、自分のEvernoteは、ノートブックによっては、ENEXファイルで抜けないものもある。
さらに調べてみると、Evernote アプリではなく、コマンドラインでも抜けるらしい。それをやってみたらノートブックが抜けない理由がわかり、回避できることもわかった。抜けない理由は、Rate Limitに引っかかっていたっぽい。ただ、アプリだとRate Limitに引っかかるとそのままエクスポートが終わってしまうが、コマンドラインだとちゃんと再開ができる。
Evernoteを使っている人は、日々、コマンドラインで、ENEXファイルにしておくべきで、さらにLLMに投入できるように、ENEXファイルからMarkdownを作っておくと便利だ。
インストール
MAC/Linuxであればbrewで簡単インストール
brew install evernote-backup
コマンド出力
認証
% evernote-backup init-db
Logging in to Evernote…
Using OAuth authentication…
Opening authorization page…
If it didn’t open automatically, please copy this URL into your browser:
https://www.evernote.com/OAuth.action?oauth_token=bulkbackup.19EAE52DE64.687474703A2F2F6C6F63616C686F73743A31303530302F6F617574685F63616C6C6261636B.92AD089134CA708957739B4A1877A17D
Authorizing auth token, evernote backend…
Successfully authenticated as hogehoge!
Current login expires at 2027-06-09 21:38:57 (364 days left).
Initializing database en_backup.db…
Reading database en_backup.db…
Successfully initialized database for hogehoge!
同期
以下、Rate Limitに引っかかり、7:55の待機時間が生じている。480秒のSleepをいれて再度実行。
% evernote-backup sync
Reading database en_backup.db…
Authorizing auth token, evernote backend…
Successfully authenticated as hogehoge!
Current login expires at 2027-06-09 21:38:57 (364 days left).
Syncing user notebooks…
[####################################] 779019/779019
9388 note(s) to download…
Downloading 9388 note(s)…
[##################——————] 4908/9388 00:10:53WARNING: Aborting, please wait…
CRITICAL: Rate limit reached. Restart program in 07:55.
% ls -lh en_backup.db
-rw-r–r–@ 1 hogehoge staff 3.4G 6月 10 06:57 en_backup.db
% sleep 480 ; evernote-backup sync
Reading database en_backup.db…
Authorizing auth token, evernote backend…
Successfully authenticated as hogehoge!
Current login expires at 2027-06-09 21:38:57 (364 days left).
Syncing user notebooks…
User notebooks are up to date, nothing to sync!
4480 note(s) to download…
Downloading 4480 note(s)…
[####################################] 4480/4480
Updated or added notes: 4480
Synchronization completed!
生成されるen_backup.dbは、実は、認証付きのEvernoteのバックアップ本体。このファイルとevernote-backupさえあればいつでもどこでもバックアップの再開ができる。
さらに初回のみがフルバックアップで、以後は変更分のみのバックアップ。
また、このファイルがあれば何度でもENEXファイルを出力できる。重要なのは、ENEXファイルのバックアップではなく、このen_backup.dbを確実に保護をしておくこと。このファイル自体は、sqlite3の単純なDBファイル。
ちなみに、Rate Lmitは自分の体験だと最大1時間くらいだった。
同期が終われば、以後、インターネットアクセスは必要ない。
確認
% ls -lh en_backup.db
-rw-r–r–@ 1 hogehoge staff 6.6G 6月 10 07:19 en_backup.db
% evernote-backup export ./export
Reading database en_backup.db…
Exporting notebooks…
[####################################] 61/61
All notes have been exported!
% du -sh export
10G export
% find export -name “*.enex” | wc -l
50
% ls -lh export | head
total 19517160
-rw-r–r–@ 1 hogehoge staff 85M 6月 10 07:25 AI Config.enex
-rw-r–r–@ 1 hogehoge staff 26M 6月 10 07:25 AI.enex
-rw-r–r–@ 1 hogehoge staff 295M 6月 10 07:24 App Install.enex
-rw-r–r–@ 1 hogehoge staff 21M 6月 10 07:24 Archive.enex
drwxr-xr-x@ 6 hogehoge staff 192B 6月 10 07:21 AWS Configuration
-rw-r–r–@ 1 hogehoge staff 20M 6月 10 07:21 Azure.enex
-rw-r–r–@ 1 hogehoge staff 2.0M 6月 10 07:21 Blog.enex
-rw-r–r–@ 1 hogehoge staff 562K 6月 10 07:21 Cloud.enex
%
ENEXファイルまでできれば、あとはマークダウンファイルなどに簡単に変換できる。
evernote-backupは久々に出会った神アプリかもしれない。それにしても以下にゴミノートと使いもしないノートがあるのかがわかったのでだいぶ整理した。ノートブック単位に整理しておけば、マークダウンに変換する必要があるか、不要なのかが整理できて、RAGに投入しやすくなる。
Evernoteから乗り換えるべきか、そのまま使うかの猶予が少しありそうだ。ちなみに、その期間がある、もうすぐ解約しようとしている人にTIPS。
タイトルが、無題とか Untitledなど、ノートに題名がついていないのであれば、契約があるうちにAI経由で自動でタイトルをつけておくことをおすすめする。いちいち中身をよんでタイトルをつけるより、ワンクリックでタイトルをつけた方が圧倒的に便利。自分もそれに気がついて、タイトルなしのノートをだいぶ撲滅できた。