github icloud-photos-downloader/icloud_photos_downloader v1.33.0

2 hours ago

What's Changed

  • ci: move macOS jobs to macos-15 and actions to Node 24 by @jterpstra1 in #1395
  • fix(deps): bump certifi to 2026.10.23 for GHSA-6q48-6c7w-9gw2 by @jterpstra1 in #1396
  • feat: support Python 3.14, drop 3.10 by @jterpstra1 in #1397
  • ci: cancel superseded runs, add job timeouts, generate test locales instead of installing locales-all by @jterpstra1 in #1398
  • fix: warn instead of crashing when --use-os-locale can't use the system locale by @jterpstra1 in #1401
  • ci: run the npm/npx compatibility tests for Arm on Arm runners by @jterpstra1 in #1402
  • ci: batch the Linux compatibility tests (376 → 73 jobs), move to ubuntu-24.04 by @jterpstra1 in #1399
  • fix: only delete from iCloud with --keep-icloud-recent-days when the photo is present locally by @jterpstra1 in #1403
  • build(deps): update dependencies, including urllib3 2 by @jterpstra1 in #1404
  • fix: don't let undecodable XMP metadata stop the download run by @jterpstra1 in #1405
  • fix: skip a locked or unavailable keyring instead of crashing login by @jterpstra1 in #1406
  • build: support Python 3.15 and build binaries and Docker images with it by @jterpstra1 in #1407
  • Report a login error instead of KeyError: 'dsInfo' when the session is invalid by @Kernel-Hunter in #1382
  • fix: retry library indexing state check before failing (#1387) by @sithikaf in #1388
  • feat: add --adp-web-access for Advanced Data Protection accounts by @Mehdi-Leqsiouer in #1392
  • fix: yield every asset when several share one master by @helinwang in #1394
  • fix: warn when iCloud never confirms ADP web access, list --adp-web-access as experimental by @jterpstra1 in #1408
  • test: cover skipping an asset whose master record is missing by @jterpstra1 in #1409
  • fix: warn when --keep-icloud-recent-days is combined with --recent or --until-found by @jterpstra1 in #1410
  • fix: include time zone data so icloud/icloudpd run without a system tz database by @jterpstra1 in #1411
  • docs: document the Linux binary variants and the Alpine 3.20+ minimum for musl by @jterpstra1 in #1412
  • ci: fix false failures in the compatibility report, add tzlc table to notes by @jterpstra1 in #1413
  • fix: build the macOS binaries for Intel and Apple Silicon by @jterpstra1 in #1414
  • fix: treat JPEG XL and other unknown image types as photos, not videos by @jterpstra1 in #1415
  • fix: don't crash the icloud tool on a locked or unavailable keyring by @jterpstra1 in #1416
  • Propagate exit code from the icloudpd executable by @Kernel-Hunter in #1380
  • Reject --skip-created-before later than --skip-created-after by @Kernel-Hunter in #1381
  • fix: trigger the 2FA push in the icloud tool by @jterpstra1 in #1417
  • fix: RFC 5322 Date header in the 2FA expiry email by @jterpstra1 in #1418
  • fix: --auto-delete uses the file match policy and filename cleaner by @jterpstra1 in #1421
  • fix: keep the name-id7 suffix on adjusted and alternative files by @jterpstra1 in #1419
  • Skip XMP sidecars when only printing filenames by @victorwon2001 in #1374
  • feat: sign in with a security key (FIDO) by @spinnerich in #1423
  • fix: consistent time zone for --skip-created-*, and tests that pass in any time zone by @jterpstra1 in #1424
  • docs: describe each --size and update the TrueNAS steps for 25.10 by @jterpstra1 in #1426
  • build(deps-dev): bump mypy from 2.4.0 to 2.4.1 by @dependabot[bot] in #1430
  • feat: add --prune-orphans flag to clean local files for photos removed from shared library by @samaluk in #1351
  • fix: reject --auto-delete together with --keep-icloud-recent-days by @jterpstra1 in #1427
  • fix: --keep-icloud-recent-days keeps assets without a creation date by @jterpstra1 in #1429
  • fix: --set-exif-datetime skips JPEGs with malformed EXIF instead of crashing by @jterpstra1 in #1432
  • fix: list albums beyond the first page of iCloud's album list by @jterpstra1 in #1434
  • fix: resume downloads after a dropped connection and check the size before saving by @jterpstra1 in #1436
  • feat: adopt existing dedicated shared-library mirrors by @samaluk in #1433
  • fix: create missing parent folders of --cookie-directory by @jterpstra1 in #1438
  • ci: test current distributions, drop end-of-life ones by @jterpstra1 in #1439
  • feat: list and download albums in folders by @jterpstra1 in #1440
  • docs: cron example uses --directory and the keyring instead of --password by @jterpstra1 in #1437
  • fix: skip a file instead of ending the run when iCloud can't be reached by @jterpstra1 in #1441
  • fix: write the EXIF DateTime tag in the main IFD by @jterpstra1 in #1442
  • fix: don't download a photo again after --set-exif-datetime changed it by @jterpstra1 in #1443
  • fix: report a photo listing that ended early instead of success by @jterpstra1 in #1444
  • fix: --live-photo-size thumb crashed at startup by @jterpstra1 in #1449
  • docs: fix wrong and outdated statements by @jterpstra1 in #1450
  • Keep going when iCloud refuses a delete with TRY_AGAIN_LATER by @Kernel-Hunter in #1447
  • Web UI: keep configuration panels open across status refreshes by @Kernel-Hunter in #1448
  • Bump to 1.33.0 by @jterpstra1 in #1452

New Contributors

Full Changelog: v1.32.3...v1.33.0

Don't miss a new icloud_photos_downloader release

NewReleases is sending notifications on new releases.