Releases: rfaulhaber/archivr
Releases · rfaulhaber/archivr
Release list
v0.6.0
This release roughly doubles what archivr can capture from a blog, adds filtering and multi-blog support, and hardens the backup loop against crashes, rate limits, and interrupts. It also migrates to crabrave 2.0.
New backup targets
- Notes (
--save-notes,--notes-limit): each post's likes, replies, and reblogs with commentary/tags, fetched from the real notes API and rendered as a collapsible section in HTML (embedded under anoteskey in JSON output). - Unpublished posts (
--drafts,--queue,--submissions): the authenticated user's unpublished content, backed up through the same render/JSON/media pipeline. - Likes (
--likes): the blog's liked posts (subject to Tumblr's ~1000-recent API cap, with a notice when more exist). - Video & audio (
--save-video,--save-audio): native Tumblr media downloads into per-kind stores undermedia/, preferred over provider embeds when rendering.--save-video-externalbridges to yt-dlp for external embeds (YouTube, Vimeo, …). - Avatar (
--save-avatar) and a machine-readable media manifest (--media-list).
Selection & ergonomics
- Back up multiple blogs in one invocation (authenticate once, per-blog output dirs).
- Filter what's archived:
--include-tags,--type,--no-reblogs/--only-reblogs— incremental state is scoped per filter set, so different filters don't corrupt each other's high-water marks. --count/--skip, single-post mode (--post-id,--id-file), and "N / total" progress reporting.--index-file: a persistent archive index merged across runs, rendered to a monthly-groupedindex.html.--no-embedsstrips third-party embed HTML for archives that must not phone home.--wayback: fall back to the Wayback Machine for media the CDN now 403/404s.- Meaningful exit codes (0 archived / 1 nothing new / 2 usage / 3 interrupted / 4 API error / 5 other) and a clean Ctrl-C handler.
Reliability & security
- All writes are atomic (temp + rename): a crash can no longer leave truncated posts, images, or state files, and interrupted runs resume without data loss.
- Pagination switched from raw offsets to a pinned before-timestamp cursor with overlap and dedup — posts created or deleted mid-run can no longer cause skips.
- Rate limits are auto-retried with the API's requested wait; transient network/5xx errors get timeouts and backoff. A failure fetching one post's notes degrades that post instead of aborting the run.
- OAuth callback now enforces CSRF state; consumer credentials are redacted from logs. A kernel-backed lock file prevents concurrent runs against one output directory.
crabrave 2.0
- Upgraded to crabrave 2.0: non-PNG avatars (JPEG/GIF blogs) now archive correctly, API errors include Tumblr's detailed error codes, and rollup note groups are preserved with their aggregate counts instead of flattened.
Full changelog: v0.5.1...v0.6.0
v0.5.1
chore: Release archivr version 0.5.1