alvistar / immich-albums

Create immich albums from folder structure
MIT License
38 stars 7 forks source link

Immich Albums

Overview

Immich Albums is a tool designed to create albums in Immich from a folder structure. Assets needs to be loaded as external library in Immich then you can launch script to create albums.

Getting Started

Prerequisites

Installation

  1. Clone the repository:
    git clone https://github.com/alvistar/immich-albums.git
  2. Navigate to the project directory:
    cd immich-albums
  3. Install dependencies:
  4. poetry install
  5. Activate virtual environment:
    poetry shell
  6. Test installation:
    im --help

    Usage

    You can get help of various args by running:

    im --help

    The following are required arguments:

    • --api_key - Immich API key
    • --api_host - Immich API host. Example: https://localhost:22283/api
    • --original_path - Path to local albums
    • --replace_path - Path as seen by Immich host

Original path is the path to your local albums. If for example your albums are stored in /home/user/albums and you mounted that path under docker as /mnt/albums you need to pass /home/user/albums as --original-path and /mnt/albums as --replace-path.

[!NOTE] Api host should be the API endpoint of your Immich instance.

Example: https://localhost:22283/api

cd /home/user/albums
im --api-key YOUR_API_KEY --api-host YOUR_API_HOST --original-path /home/user/albums --replace-path /mnt/albums .

Instead of passing every argument you can create a config file in yaml format. Default config file name is config.yaml and it should be placed in your home directory under ".config/immich-albums/config.yml"

Example config file:

api_key: YOUR_API_KEY
api_host: YOUR_API_HOST
original_path: /path/to/local/albums
replace_path: /path/as/seen/by/immich

[!NOTE] Take care of the underscore. It should be api_key and not api-key.

Alternatively you can pass config file path as argument:

im --config /path/to/config/file

Updating openapi client:

openapi-generator-cli generate -g python -o generated/openapi_client -i immich-openapi-specs.json -p packageVersion=1.105.1
poetry lock --no-update

Contributing

Contributions to Immich Albums are welcome!

License

This project is licensed under the MIT license - see the LICENSE.txt file for details.

Acknowledgements

Big thanks to Immich for the incredible job!