Immich-Go — это инструмент с открытым исходным кодом, предназначенный для оптимизации загрузки больших коллекций фотографий на ваш локальный сервер Immich.
Immich-go
:Вынимаем ваши фотографии:
Импорт ваших фотографий:
/path/to/your/files/takeout-*.zip
в качестве имени файла.-google-photos
.Многие файлы не импортируются : какие варианты?
-upload-when-missing-JSON
Чтобы получить представление о причинах этой альтернативы immich-cli
, прочтите мотивацию здесь.
⚠️ Это ранняя версия, еще не тщательно протестированная.⚠️ Сохраняйте резервную копию ваших файлов в целях безопасности.
immich-go
immich-go
— это инструмент командной строки, который необходимо запускать из окна терминала.
Программа immich-go
использует API Immich. Следовательно, ему нужен адрес сервера и действительный ключ API.
В Linux, macOS и друзьях FreeBSD:
./immich-go -server=URL -key=KEY -general_options COMMAND -command_options... {path/to/files}
Важный
Пользователи macOS должны явно разрешить запуск immich-go. Откройте Конфиденциальность и безопасность > Настройки безопасности, чтобы разрешить
В системах Windows:
.immich - go - server = URL - key = KEY - general_options COMMAND - command_options.. . {path / to / files}
Логические параметры имеют значение по умолчанию, указанное ниже. Упоминание любой опции в общей строке меняет ее на TRUE. Чтобы принудительно установить опцию FALSE, используйте следующий синтаксис: -option=FALSE
.
Пример: Immich-go проверьте SSL-сертификат сервера. вы можете отключить это поведение, включив опцию skip-verify-ssl
. Просто добавьте -skip-verify-ssl
. -skip-verify-ssl
эквивалентен -skip-verify-ssl=TRUE
. Чтобы отключить эту функцию (это поведение по умолчанию), используйте -skip-verify-ssl=FALSE
Параметр | Описание | Значение по умолчанию |
---|---|---|
-use-configuration=path/to/config/file | Указывает файл конфигурации, который будет использоваться. URL-адрес сервера и ключ API хранятся в файле конфигурации immich-go. Их можно опустить для следующих запусков. | Linux $HOME/.config/immich-go/immich-go.json Windows %AppData%immich-goimmich-go.json macOS $HOME/Library/Application Support/immich-go/immich-go.json |
-server=URL | URL-адрес службы Immich, например http://:2283 или https://your-domain.tld. | |
-api=URL | URL-адрес конечной точки API Immich (http://container_ip:3301) | |
-device-uuid=VALUE | Принудительная идентификация устройства | $HOSTNAME |
-client-timeout=duration | Установите таймаут для вызовов сервера. Продолжительность представляет собой десятичное число с суффиксом единицы измерения, например «300 мс», «1,5 м» или «45 м». Допустимые единицы времени: «мс», «с», «м», «ч». | 5m |
-skip-verify-ssl | Пропустить проверку SSL для использования с самозаверяющими сертификатами. | false |
-key=KEY | Ключ, сгенерированный пользователем. Загруженные фотографии будут принадлежать владельцу ключа. | |
-log-level=LEVEL | Настройте детализацию журнала следующим образом: - ERROR : отображать только ошибки.- WARNING : то же, что и предыдущее, плюс неблокирующая ошибка.- INFO : Информационные сообщения. | INFO |
-log-file=/path/to/log/file | Записывать все сообщения в файл | Linux $HOME/.cache/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log Windows %LocalAppData%immich-goimmich-go_YYYY-MM-DD_HH-MI-SS.log macOS $HOME/Library/Caches/immich-go/immich-go_YYYY-MM-DD_HH-MI-SS.log |
-log-json | Вывод журнала в виде файла JSON с разделителями строк. | false |
-time-zone=time_zone_name | Установите часовой пояс для дат без информации о часовом поясе | Часовой пояс системы |
-no-ui | Отключить пользовательский интерфейс | false |
-debug-counters | Включите создание CSV рядом с файлом журнала. | false |
-api-trace | Включить трассировку вызовов API | false |
upload
командыИспользуйте эту команду для загрузки фотографий и видео из локального каталога, заархивированной папки или всех zip-файлов, созданных процедурой извлечения Google Фото.
Параметр | Описание | Значение по умолчанию |
---|---|---|
-album="ALBUM NAME" | Импортируйте ресурсы в альбом Immich ALBUM NAME . | |
-dry-run | Предварительный просмотр всех действий, как они будут выполнены. | FALSE |
-create-album-folder | Создавайте альбомы immich после названий папок. | FALSE |
-use-full-path-album-name | Используйте полный путь к файлу, чтобы определить название альбома. | FALSE |
-album-name-path-separator | Определяет, как будут объединены несколько (под) папок, если таковые имеются. | |
-create-stacks | Сложите jpg/raw или серийно. | FALSE |
-stack-jpg-raw | Управляйте укладкой фотографий в формате jpg/raw. | FALSE |
-stack-burst | Управляйте пакетными всплесками. | FALSE |
-select-types=".ext,.ext,.ext..." | Список принятых расширений. | |
-exclude-types=".ext,.ext,.ext..." | Список исключенных расширений. | |
-when-no-date=FILE|NOW | Если дату съемки невозможно определить, используйте дату ФАЙЛА или текущее время СЕЙЧАС. | FILE |
-exclude-files=pattern | Игнорировать файлы по шаблону. Нечувствителен к регистру. Повторите вариант для каждого нужного вам узора. | @eaDir/ @__thumb/ SYNOFILE_THUMB_*.* Lightroom Catalog/ thumbnails/ |
Точная настройка импорта на основе определенных дат:
Параметр | Описание |
---|---|
-date=YYYY-MM-DD | импортировать фотографии, сделанные в определенный день. |
-date=YYYY-MM | выберите фотографии, сделанные в течение определенного месяца. |
-date=YYYY | выберите фотографии, сделанные в течение определенного года. |
Используйте -exclude-files=PATTERN
чтобы исключить определенные файлы или каталоги из загрузки. Повторите вариант для каждого нужного вам узора. Следующие каталоги исключаются автоматически:
Например, следующая команда исключает любые файлы в каталогах, называемых резервными копиями или черновиками, а также любые файлы с именем, заканчивающимся на «копия)» как PXL_20231006_063121958 (другая копия).jpg:
immich-go -server=xxxxx -key=yyyyy upload -exclude-files=backup/ -exclude-files=draft/ -exclude=copy). * /path/to/your/files
Специализированные возможности управления Google Фото:
Параметр | Описание | Значение по умолчанию |
---|---|---|
-google-photos | импортировать из структурированного архива Google Photos, воссоздавая соответствующие альбомы. | |
-from-album="GP Album" | Создайте альбом в immich и импортируйте ресурсы альбома. | |
-create-albums | Управляет созданием альбомов Google Фото в Иммихе. | TRUE |
-keep-untitled-albums | Альбомы без названия импортируются в immich с именем папки в качестве заголовка. | FALSE |
-use-album-folder-as-name | Используйте имя папки вместо названия альбома. | FALSE |
-keep-partner | Указывает включение или исключение фотографий, сделанных партнером. | TRUE |
-partner-album="partner's album" | импортировать ресурсы от партнера в данный альбом. | |
-discard-archived | не импортируйте архивные ресурсы. | FALSE |
-auto-archive | Автоматически архивировать фотографии, которые также архивируются в Google Фото. | TRUE |
-upload-when-missing-JSON | Загружать фотографии, не связанные с файлом метаданных JSON. | FALSE |
Прочтите здесь, чтобы понять, почему с выносом Google Фото нелегко справиться.
В настоящее время обнаруживаются пакеты, следующие этой схеме:
Все изображения должны быть сделаны в течение одной минуты. Изображение COVER будет родительским изображением стека.
Оба изображения должны быть сделаны в одну и ту же минуту. Изображение JPG будет обложкой.
Пожалуйста, откройте вопрос, чтобы охватить больше возможностей.
Для иллюстрации приведем команду, импортирующую фотографии из архива Google Фото, снятые в период с 1 по 30 июня 2019 года, с автоматическим созданием альбомов:
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ upload
-create-albums -google-photos -date=2019-06 ~ /Download/takeout- * .zip
Иммич-го получаем первые доступные данные в следующем порядке.
photoTakenTime
PXL_20220909_154515546.jpg
PXL_20220909_154515546.jpg
/photos/2022/11/09/IMG_1234.HEIC
geoDataExif
geoData
в формате JSON Google ФотоlocationEnrichment
поля JSON альбома Google ФотоОбогащение immich-go
берет дату фотографии из связанного файла JSON.
Сервер игнорирует дату, предоставленную immich-go, и принимает дату MP4, даже если она неверна.
См. № 322. Неверная временная метка создания из метаданных.
Immich-go пытается определить дату захвата по имени файла или пути к файлу.
Бывший:
Путь | Дата съемки фотографии |
---|---|
фотографии/альбом/PXL_20220909_154515546.jpg | 2022-09-09 15:51:55 |
фотографии/сканированные/19991231.jpg | 1999-12-31 00:00:00 |
фотографии/20221109/IMG_1234.HEIC | 2022-11-19 00:00:00 |
фотографии/2022.11.09T20.30/IMG_1234.HEIC | 2022-11-19 20:30:00 |
фотографии/2022/11/09/IMG_1234.HEIC | 2022-11-19 00:00:00 |
Если путь невозможно использовать для определения даты захвата, immich-go прочитайте metadata
файла или exif
.
duplicate
команды Используйте эту команду для анализа содержимого вашего сервера immich
, чтобы найти файлы с одинаковым именем и датой захвата, но разного размера. Прежде чем удалить младшие копии, система получает все альбомы, к которым они принадлежат, и добавляет к ним старшую копию.
Параметр | Описание | Значение по умолчанию |
---|---|---|
-yes | Предположим, что да на все вопросы | FALSE |
-date | Отметьте, что только у объектов есть дата захвата в заданном диапазоне. | 1850-01-04,2030-01-01 |
-ignore-tz-errors | Игнорировать разницу часовых поясов при поиске дубликатов | FALSE |
-ignore-extension | Игнорировать расширения типов файлов при поиске дубликатов | FALSE |
immich
после объединения архива Google Photos и исходных файлов.Эта команда проверяет содержимое сервера immich, удаляет изображения менее высокого качества и сохраняет альбомы.
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ duplicate -yes
stack
команд Возможность группировки изображений появилась в immich
версии 1.83. Давайте воспользуемся им для группировки серийных изображений и изображений jpg/raw.
Параметр | Описание | Значение по умолчанию |
---|---|---|
-yes | Предположим, что да на все вопросы | FALSE |
-date=date_range | Отметьте, что только у объектов есть дата захвата в заданном диапазоне. | 1850-01-04,2030-01-01 |
tool
Эта команда представляет инструменты командной строки для управления вашим сервером immich
.
album delete [regexp]
Эта команда удаляет альбомы, соответствующие заданному шаблону.
-yes
Предположим, что да на все вопросы (по умолчанию: ЛОЖЬ).
./immich-go -server=http://mynas:2283 -key=zzV6k65KGLNB9mpGeri9n8Jk1VaNGHSCdoH1dY8jQ tool album delete d {4}- d {2}- d {2}
Эта команда удаляет все альбомы, созданные по шаблону ГГГГ-ММ-ДД.
Установка immich-go
— простой процесс. Посетите страницу последней версии и выберите двоичный файл, совместимый с вашей системой:
Загрузите архив, соответствующий вашей ОС/архитектуре, на свой компьютер и распакуйте его.
Откройте командное окно, перейдите в каталог, где находится immich-go, и введите команду immich-go
с обязательными параметрами и командой.
Для установки на основе исходного кода убедитесь, что у вас есть необходимые инструменты разработки языка Go (https://go.dev/doc/install). Загрузите исходные файлы или клонируйте репозиторий.
go build -ldflags " -X 'main.version= $( git describe --tag ) ' -X 'main.date= $( date ) ' "
immich-go
упаковывается вместе с nix и распространяется через nixpkgs. Вы можете попробовать immich-go
без его установки с помощью:
nix-shell -I " nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-unstable-small.tar.gz " -p immich-go
# Or with flakes enabled
nix run " github:nixos/nixpkgs?ref=nixos-unstable-small#immich-go " -- -help
Или вы можете добавить immich-go
в свой configuration.nix
в разделе environment.systemPackages
.
Спасибо команде Immich за их потрясающий проект! ?
Эта программа использует следующие сторонние библиотеки:
Огромное спасибо участникам проекта: