An alternative to the immich-CLI command that doesn't depend on nodejs installation. It tries its best for importing google photos takeout archives.
AGPL-3.0 License
Bot releases are hidden (Show)
Many thanks to @maybeanerd for their meticulous proofreading of the documentation files.
Thanks to @giejay for their contribution
When the -use-full-path-album-name
option is enabled, photos are added to a new album named after their full file path.
The path separator can be replaced using the -album-name-path-separator=CHAR
Thanks to @Alex1607 for their contribution
Use the option -auto-archive=FALSE
to disable this feature.
Full Changelog: https://github.com/simulot/immich-go/compare/0.21.0...0.22.0
Published by simulot about 2 months ago
Published by simulot 2 months ago
Published by simulot 3 months ago
Published by simulot 3 months ago
Lot of users have reported inconsistencies in upload counters. Each user case a different, and the takeout structure varies a bit.
In order to debug those cases, I have developed a way to simulate the takeout import using only the the file list. Read how to send debug data without sharing photos.
Each image in a takeout is supposed to come with A JSON file giving the date of capture and the GPS coordinate. There a few reason for this:
When asking another takeout isn't an option, it's possible to force the upload of photos with no JSON. Use the option -upload-when-missing-JSON
The stack function need to be improved #399, #345, #235
Meanwhile, it is disabled by default. You can enable it using the option -create-stacks=TRUE
.
Published by simulot 3 months ago
Use the -exclude-files=PATTERN
to exclude certain files or directories from the upload. Repeat the option for each pattern do you need. The following directories are excluded automatically:
Example, the following command excludes any files in directories called backup or draft and any file with name finishing with "copy)" as PXL_20231006_063121958 (another copy).jpg:
immich-go -sever=xxxxx -key=yyyyy upload -exclude-files=backup/ -exclude-files=draft/ -exclude=copy).* /path/to/your/files
Published by simulot 3 months ago
A big thank you to @jrasm91 and @bo0tzz for their help
Full Changelog: https://github.com/simulot/immich-go/compare/0.19.0...0.19.1
Published by simulot 3 months ago
immich-go
! Thank you for your feedback!Full Changelog: https://github.com/simulot/immich-go/compare/0.18.2...0.19.0
Published by simulot 4 months ago
Published by simulot 4 months ago
The option -version
return the version of the executable.
The UI mode now show the current activity of the immich server. After 10 seconds of zero activity, the program stops
Use the option -debug-counters
to generate a CSV beside the log file
Immich-go tries to determine the date of capture with the file name, or the file path.
Ex:
Path | Photo's capture date |
---|---|
photos/album/PXL_20220909_154515546.jpg | 2022-09-09 15:51:55 |
photos/scanned/19991231.jpg | 1999-12-31 00:00:00 |
photos/20221109/IMG_1234.HEIC | 2022-11-19 00:00:00 |
photos/2022.11.09T20.30/IMG_1234.HEIC | 2022-11-19 20:30:00 |
photos/2022/11/09/IMG_1234.HEIC | 2022-11-19 00:00:00 |
Thanks to @erkexzcx for his contribution.
Since a recent release of Immich, the live photos and motion picture were seen as a picture and a small movie.
The code has been refactored to be sure that the movie part is uploaded before the photo, and attached to the photo.
Immich-go accepts "*.jpg" as parameter.
The message is now explicit:
The ping API end point doesn't respond at this address: http://localhost:2283/api/server-info/ping
Thanks to @matteolomba for his contribution
Temporary files are created in the system's temporary folder.
Published by simulot 4 months ago
The option -version
return the version of the executable.
The UI mode now show the current activity of the immich server. After 10 seconds of zero activity, the program stops
Use the option -debug-counters
to generate a CSV beside the log file
Immich-go tries to determine the date of capture with the file name, or the file path.
Ex:
Path | Photo's capture date |
---|---|
photos/album/PXL_20220909_154515546.jpg | 2022-09-09 15:51:55 |
photos/scanned/19991231.jpg | 1999-12-31 00:00:00 |
photos/20221109/IMG_1234.HEIC | 2022-11-19 00:00:00 |
photos/2022.11.09T20.30/IMG_1234.HEIC | 2022-11-19 20:30:00 |
photos/2022/11/09/IMG_1234.HEIC | 2022-11-19 00:00:00 |
Thanks to @erkexzcx for his contribution.
Since a recent release of Immich, the live photos and motion picture were seen as a picture and a small movie.
The code has been refactored to be sure that the movie part is uploaded before the photo, and attached to the photo.
Immich-go accepts "*.jpg" as parameter.
The message is now explicit:
The ping API end point doesn't respond at this address: http://localhost:2283/api/server-info/ping
Thanks to @matteolomba for his contribution
Temporary files are created in the system's temporary folder.
Full Changelog: https://github.com/simulot/immich-go/compare/0.17.1...0.18.0
Published by simulot 4 months ago
Published by simulot 4 months ago
This version of immich-go is compatible with immich v.1.106 and later. Use immich-go version 0.16.0 with older immich servers.
See https://github.com/immich-app/immich/pull/9831 and https://github.com/immich-app/immich/pull/9667 for details
Trashed server's assets are excluded from the duplicate detection before uploading the same asset.
Published by simulot 5 months ago
When the terminal can't handle the UI mode, the program falls back to non gui mode automatically
Use the -log-json
option to enable JSON logging (JSONL format). This allows using ./jq to explore large logs.
The immich client timeout is set with the option -client-timeout=duration
.
The duration is a decimal numbers with a unit suffix, such as "300ms", "1.5m" or "45m". Valid time units are "ms", "s", "m", "h".
Missing associated metadata file
counter is not updated after the performance improvementThe counter missing associated metadata
is broken since 0.15.0
When the file name pattern returns no files, a message is printed, and the program ends.
Any error is counted as upload error, and reported in the log file.
Any error occurred during parallelized tasks cancels other as well.
The processed files counter is updated whenever a file for the source is processed.
There were previously counted as discarded files.
Oops!
Published by simulot 5 months ago
The google puzzle solving is now much faster for large takeout archives.
The configuration file that contains the server and the key is now stored by default in following folder:
$HOME/.config/immich-go/immich-go.json
%AppData%\immich-go\immich-go.json
$HOME/Library/Application Support/immich-go/immich-go.json
The default log file is:
$HOME/.cache/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log
%LocalAppData%\immich-go\immich-go_YYYY-MM-DD_HH-MI-SS.log
$HOME/Library/Caches/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log
The log file name is printed when the program exits.
Published by simulot 5 months ago
This release is focussed the improvement of the user experience.
. _ _ _ _ . _|_ __ _ _
|| | || | ||(_| | (_|(_)
version dev _)
Working with big database and big takeout files take some time. Users are now informed about the progression of different tasks:
The screen presents number of processed photos, how they have been processes, the messages log, and at the bottom, the progression of the 3 mains tasks.
This shiny interface can be be disabled for quieter user interface (-no-ui
).
The progression is visible. All details on operations are listed in the log file.
. _ _ _ _ . _|_ __ _ _
|| | || | ||(_| | (_|(_)
version dev _)
Server status: OK
Connected, user: [email protected]
Immich read 100%, Google Photos Analysis: 100%, Uploaded 100%
Input analysis:
----------------------
scanned image file : 25420
scanned video file : 1447
scanned sidecar file : 26934
discarded file : 197
unsupported file : 0
file duplicated in the input : 1706
associated metadata file : 26867
missing associated metadata file : 0
Uploading:
----------
uploaded : 25160
server error : 0
file not selected : 1
server's asset upgraded with the input : 0
server has same photo : 0
server has a better asset : 0
The code has been refactored to run several task simultaneously to animate the progression screen. The program runs now the reading of immich asset and the the takeout analysis in parallel.
The default name for the log file is immich-go YYYY-MM-DD HH-MI-SS.log
, located in the current directory.
It's possible to give a path and a name to the log file with the option -log-file=path/to/file.log
.
If the file file exists already, the new messages will be added to its end.
The log level OK
is removed.
I chose the same license as the immich project license to release immich-go.
duplicate
Published by simulot 5 months ago
This release is focussed the improvement of the user experience.
. _ _ _ _ . _|_ __ _ _
|| | || | ||(_| | (_|(_)
version dev _)
Working with big database and big takeout files take some time. Users are now informed about the progression of different tasks:
The screen presents number of processed photos, how they have been processes, the messages log, and at the bottom, the progression of the 3 mains tasks.
This shiny interface can be be disabled for quieter user interface (-no-ui
).
The progression is visible. All details on operations are listed in the log file.
. _ _ _ _ . _|_ __ _ _
|| | || | ||(_| | (_|(_)
version dev _)
Server status: OK
Connected, user: [email protected]
Immich read 100%, Google Photos Analysis: 100%, Uploaded 100%
Input analysis:
----------------------
scanned image file : 25420
scanned video file : 1447
scanned sidecar file : 26934
discarded file : 197
unsupported file : 0
file duplicated in the input : 1706
associated metadata file : 26867
missing associated metadata file : 0
Uploading:
----------
uploaded : 25160
server error : 0
file not selected : 1
server's asset upgraded with the input : 0
server has same photo : 0
server has a better asset : 0
The code has been refactored to run several task simultaneously to animate the progression screen. The program runs now the reading of immich asset and the the takeout analysis in parallel.
The default name for the log file is immich-go YYYY-MM-DD HH-MI-SS.log
, located in the current directory.
It's possible to give a path and a name to the log file with the option -log-file=path/to/file.log
.
If the file file exists already, the new messages will be added to its end.
The log level OK
is removed.
I chose the same license as the immich project license to release immich-go.
duplicate
Published by simulot 7 months ago
Published by simulot 7 months ago