Luis Ch Verified

Python Developer

Effortless Immich Media Uploads with Mich

Table of contents

Intro

A few months ago I started testing Immich1, which is a selfhosted project to manage photos and videos. Started with the current photos I had in my phone2, and noticed it is fantastic. Immich uses AI to analyse what the images contain, so I can search by words like "cats", and it will show me pictures and videos that have cats on it.

Recently I had to reinstall Immich in another machine and restore the backup, which was not hard at all. The hard part was the attempt to upload an old collection of media files I have been storing over the years in my computer. The collection was a folder full of media files and nested subfolders (albums), with no specific order or structure. Just files all over there.

Photo Gallery

But what is Immich?

Immich is a project that lets you back up, organize, and manage your photos and videos on your own server. It is under active development and available under GNU AGPL v3 license.

It is the best alternative to Google Photos. Another alternative is Ente Photos, which provide a paid solution so you do not have to host it, and it is open source and can be selfhosted the same way Immich works.

The problem

Manually uploading large collections of media files to an Immich server can be a daunting task, especially when dealing with nested folders and a large number of files. The existing manual process requires patience, attention to detail, and technical expertise, making it challenging for users to achieve efficient file uploads.

The solution

Mich3 is a command-line tool that simplifies the process of uploading large collections of media files to Immich servers. Whether you're self-hosting Immich for privacy or using a hosted instance, this tool streamlines the bulk upload process.

Features

How It Works

The tool connects to your Immich server using your API key, then scans the specified directory recursively. It creates a queue of all files, then processes them asynchronously for maximum efficiency.

It can filter files by extension, to avoid attempting to upload non-media files and also file hashing to avoid duplicates. As files are processed, it provides real-time feedback in the terminal, with a final summary report when the operation completes.

This project was built to solve my own need for efficiently migrating large photo and video collections to Immich while maintaining folder organization and getting clear feedback about the process.


1

Immich - Self-hosted photo and video management solution

2

Photo Gallery on phone (Image)

3

Mich - Source code

Tags: #projects #selfhost #privacy