2.4 KiB
2.4 KiB
Sure! Here's a clean and minimal README.md
for your Immich album downloader project, including setup instructions and the example systemd
service and timer:
# Immich Album Downloader
This Python script downloads all assets (photos/videos) from a specific album in your [Immich](https://github.com/immich-app/immich) instance, using its API. It supports resuming by skipping files that already exist locally.
## Features
- Downloads all assets from a specified album
- Uses pagination to handle large albums
- Skips already-downloaded files
- Can be automated with `systemd` services and timers
## Requirements
You can install dependencies with:
```bash
pip install requests
or you can use your system's package manager.
Environment Variables
Variable | Description |
---|---|
IMMICH_API_KEY |
Your Immich API key |
IMMICH_INSTANCE_URL |
Immich instance URL (e.g. https://your-instance/api ) |
IMMICH_ALBUM_ID |
The ID of the album to download |
IMMICH_DOWNLOAD_PATH |
Directory to save downloaded assets |
Usage
You can run the script manually:
python3 main.py
Or set it up as a systemd
service for automatic and scheduled execution.
Example: systemd Service
Create a service file at /etc/systemd/user/immich-album-downloader.service
:
[Unit]
Description=Immich Album Downloader
After=network.target
[Service]
Type=simple
Environment="IMMICH_ALBUM_ID=my-super-cool-album-id"
Environment="IMMICH_API_KEY=averysecretapikeypleasedonotsteal"
Environment="IMMICH_DOWNLOAD_PATH=/home/marco/wallapers/"
Environment="IMMICH_INSTANCE_URL=https://your-immich.instance/api"
ExecStart=/usr/bin/python3 /opt/immich-album-downloader/main.py
Restart=no
[Install]
WantedBy=default.target
Enable and start the service:
systemctl --user daemon-reexec
systemctl --user enable --now immich-album-downloader.service
Example: systemd Timer
To run the download periodically, create /etc/systemd/user/immich-album-downloader.timer
:
[Unit]
Description=Download an Immich album periodically
[Timer]
OnBootSec=15m
OnUnitActiveSec=6h
[Install]
WantedBy=timers.target
Enable the timer:
systemctl --user enable --now immich-album-downloader.timer
This will trigger the album download 15 minutes after boot and then every 6 hours.