summaryrefslogtreecommitdiff
path: root/scripts/immich-export
AgeCommit message (Collapse)Author
2026-03-31immich-export: fix null nextPage causing silent exit on last pagePaul Buetow
When the API returns null for nextPage, Python's .get('nextPage','') still returns None (key exists), and print(None) yields "None" — a non-empty string. The loop then tried to fetch page "None", curl failed, and set -e killed the script silently. Use 'or ""' to coerce None to empty string. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31immich-export: fix associative array to prevent silent key dropsPaul Buetow
declare -A with inline \$() substitutions can silently drop entries in some bash versions; assign keys after declaration to ensure both accounts load. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31immich-export: download to .tmp then rename to avoid partial filesPaul Buetow
Downloads each asset to <filename>.tmp first, renaming to the final path only on success. Also cleans up stale .tmp files from aborted previous runs. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31immich-export: add two-phase discovery+download for real progress reportingPaul Buetow
The Immich search API's 'total' field only reflects the current page size, not the actual total. Fix by first paginating all pages to collect the full asset list, then downloading with accurate [X/total] progress. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31Add immich-export script to download images from Immich by date rangePaul Buetow
Exports images (no videos) from paul and albena accounts for a configurable date range via the Immich REST API, skipping already-downloaded files. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>