Turn your Immich photo library into video memory compilations with music and smart cuts
Project description
Immich Memories
Create beautiful yearly video compilations from your Immich photo library.
Immich Memories connects to your self-hosted Immich server, intelligently selects the best moments from your videos, and compiles them into shareable memory videos — perfect for year-end recaps or celebrating specific people in your life.
Full documentation: sam-dumont.github.io/immich-video-memory-generator
Quick Install
# One-liner (no clone needed)
uvx immich-memories --help
# Or clone and install
git clone https://github.com/sam-dumont/immich-video-memory-generator.git
cd immich-video-memory-generator
uv sync
Quick Start
# 1. Configure
mkdir -p ~/.immich-memories
cat > ~/.immich-memories/config.yaml << EOF
immich:
url: "https://photos.example.com"
api_key: "your-api-key-here"
EOF
# 2. Launch the UI
immich-memories ui
# Opens at http://localhost:8080
# 3. Or use the CLI
immich-memories generate --year 2024 --person "John" --output ~/Videos/john_2024.mp4
Key Features
- Immich Integration — Direct REST API connection with face recognition support
- Smart Clip Selection — Scene detection, interest scoring, duplicate filtering
- Face-Aware Cropping — Keeps faces centered when converting aspect ratios
- Hardware Acceleration — NVIDIA NVENC, Apple VideoToolbox, Intel QSV, AMD VAAPI
- AI Music Generation — ACE-Step or MusicGen with automatic mood detection
- Audio Ducking — Music lowers automatically during speech
- Web UI + CLI — 4-step wizard or headless automation
- Docker & Kubernetes — Containerized deployment with GPU support
Documentation
See the full documentation for:
- Installation options (uv, pip, Docker, Kubernetes, Terraform)
- UI Walkthrough
- CLI Reference
- Configuration
- Hardware Acceleration
- AI Music
- Guides
Development
make dev # Install all dependencies
make check # Run all checks (lint, format, typecheck, tests)
make ci # Full CI pipeline
make help # Show all available targets
See CONTRIBUTING.md for guidelines.
Built with AI
This entire codebase was written with AI (Claude) as an experiment in building complex software cleanly with AI assistance. 1,100+ tests, strict quality gates, the works. See DISCLAIMER.md for the full story.
License
MIT License — see LICENSE for details.
Made with ❤️ for the Immich community
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file immich_memories-0.7.1.dev0.tar.gz.
File metadata
- Download URL: immich_memories-0.7.1.dev0.tar.gz
- Upload date:
- Size: 483.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5122644fe25478d5872aa0cfff4cbe06c65a1ba1a19ecdaf0e3068448304519
|
|
| MD5 |
5740c03004b3ab8807533c068a744914
|
|
| BLAKE2b-256 |
0f06df209dd157cf2f33ad252e78b17134581dc536d0f4357413143465249630
|
Provenance
The following attestation bundles were made for immich_memories-0.7.1.dev0.tar.gz:
Publisher:
release.yml on sam-dumont/immich-video-memory-generator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
immich_memories-0.7.1.dev0.tar.gz -
Subject digest:
e5122644fe25478d5872aa0cfff4cbe06c65a1ba1a19ecdaf0e3068448304519 - Sigstore transparency entry: 1109414436
- Sigstore integration time:
-
Permalink:
sam-dumont/immich-video-memory-generator@cf8f8a2f543f015ff1e59a584d0e5643d867b7c5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/sam-dumont
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@cf8f8a2f543f015ff1e59a584d0e5643d867b7c5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file immich_memories-0.7.1.dev0-py3-none-any.whl.
File metadata
- Download URL: immich_memories-0.7.1.dev0-py3-none-any.whl
- Upload date:
- Size: 495.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a3da7da1e25b5ee309490ea9b3f297eb232fe903b6391fb9e813c0c1e3e0d82
|
|
| MD5 |
bd1f125e607c9ae85c2d184f60373ca3
|
|
| BLAKE2b-256 |
ca978986709e28ada36e03a455062aa38453355b0b81f0c6dd456c11c1f39ad8
|
Provenance
The following attestation bundles were made for immich_memories-0.7.1.dev0-py3-none-any.whl:
Publisher:
release.yml on sam-dumont/immich-video-memory-generator
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
immich_memories-0.7.1.dev0-py3-none-any.whl -
Subject digest:
0a3da7da1e25b5ee309490ea9b3f297eb232fe903b6391fb9e813c0c1e3e0d82 - Sigstore transparency entry: 1109414439
- Sigstore integration time:
-
Permalink:
sam-dumont/immich-video-memory-generator@cf8f8a2f543f015ff1e59a584d0e5643d867b7c5 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/sam-dumont
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@cf8f8a2f543f015ff1e59a584d0e5643d867b7c5 -
Trigger Event:
push
-
Statement type: