Evernote one-shot ingester → pa substrate + R2 (parked sketch 2026-05-22, REVISED 2026-05-23)
DARE.CO.UK · PARKED SKETCH · 2026-05-22 · REVISED 2026-05-23
Dan since 2009. ~24,000 notes. Heavy video. ~100GB+ total estimated. One-shot ingest into
pa/_substrate/evernote/with markdown + metadata in git, attachments + videos streamed direct-to-R2 with manifest pointers. Same Haiku Layer-2 enrichment downstream as the Amazon archive.
🚨 REVISED 2026-05-23 — API path closed, ENEX path is the way in
Evernote Support 2026-05-23: “At this time, we’re no longer issuing new Evernote API keys. However, we’re actively working on a new MCP (Model Context Protocol) integration…”
Dan applied for an API key 2026-05-22; the response confirmed Evernote has frozen new key issuance entirely. Existing token holders keep working; new applicants get nothing. The official Evernote MCP is in development with no ETA.
This kills the API-based ingester sketched in the original draft. The probe (~/bin/pa_evernote_probe.py) and the API-calling export script are parked indefinitely. Community MCPs (SqREL, verygoodplugins) all rely on tokens Evernote no longer issues — same dead end for new users.
New path forward — ENEX export from the desktop app. ENEX is Evernote’s native XML export format. Right-click notebook → Export Notebook → ENEX. Each notebook = one .enex file. Resources (attachments, images, videos) are base64-embedded inline. Encrypted blocks preserved verbatim. Manual click per notebook (~30 clicks total for a typical mature account).
What changes vs the original sketch:
- ❌ API auth (Developer Token, 1Password ref) — not happening
- ❌ Rate-limit handling — moot (offline parse)
- ❌ Resumability against API state — moot (ENEX is a single file)
- ❌ Note history / listNoteVersions — ENEX is current-state-only; this dimension is lost
- ❌ Linked notebooks / business notebooks (via separate API paths) — would require ENEX exports of each notebook owner’s side
- ✅ Everything ELSE stays — R2 streaming, image SEO cleanup, Haiku Layer-2 enrichment, diamond-tier ranking, the entire downstream pipeline
- ✅ Add a one-time pain step: 30-ish manual clicks in the Evernote app to produce ENEX files; drop them in ~/Code/home-projects/pa/evernote/_inbox/; pipeline takes over
Cost picture unchanged: ~$2.25/month R2 storage at 150GB. The one-shot ingest cost is now CPU + bandwidth, no API quota.
Build status 2026-05-23:
- 🚨 ~/bin/pa_evernote_probe.py — DEAD, parked (would need API key)
- 🆕 ~/bin/pa_evernote_enex_ingest.py — NEXT to build (no SDK, just Python stdlib XML)
- ✅ Registered interest on the official Evernote MCP waitlist at evernote.com/mcp; described the 24K-note + R2 + Haiku-enrichment + diamond-ranking use case (Evernote uses these to prioritize MCP features)
If/when the official Evernote MCP ships, we can ADD it as a Layer-3 enrichment channel (real-time read/write via Claude) on top of the ENEX-based substrate; ENEX gives us the bulk historical pull, MCP gives us the live channel. Best of both.
Why park this
We need to ship the Amazon Layer-2 render surfaces first (the data is sitting in layer2_tags.jsonl waiting to be lifted into the dashboard). Evernote ingester is next in queue but a 1-3 hour wallclock + multi-GB R2 storage commitment — worth designing properly before running.
Scale (Dan’s actual numbers)
- 17 years of records (since 2009)
- ~24,000 notes
- Video-heavy — many notes have attached video files
- Estimated total: 50-200 GB depending on how many videos + at what resolution
Wallclock + cost estimates
| Job | Without videos | With videos (heavy) |
|---|---|---|
Metadata-only scan (findNotesMetadata paginated, no body) |
~5 min | ~5 min |
| Full body + small attachments (concurrent=5) | ~2-3 hours | n/a |
| Full body + ALL attachments + videos (concurrent=3, throttled by bandwidth) | n/a | 6-12 hours |
| API call budget | well within 80K/hr | well within 80K/hr |
Bandwidth is the constraint, not the API. Evernote serves resources from their CDN at reasonable speeds, but 100 GB at ~50 Mbps home connection = ~4-5 hours just bytes-down.
Cost
- Evernote API: free
- R2 storage: $0.015/GB/month — at 150 GB that’s $2.25/month
- R2 egress: $0/GB (free) — viewing your own substrate costs nothing
- R2 Class A operations (writes/uploads): $4.50/million — 24K uploads = ~$0.11 one-time
- Total: ~$2.25/month ongoing, ~$0.11 one-time write cost