You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replaced argument -gmtf, --google-move-takeout-folder by -gKeepTake, --google-keep-takeout-folder argument and inverted the logic for Google Takeout Processing.
Replaced argument -gnsa, --google-create-symbolic-albums by -gcsa, --google-no-symbolic-albums argument and inverted the logic for Google Takeout Processing.
Replaced argument -confirm, --request-user-confirmation by -noConfirm, --no-request-user-confirmation and inverted logic.
🌟 New Features:
Created GitHub Forms on New Issues.
Auto-Update Issues Templates with new published releases.
Added Step duration summary at the end of Google Takeout Processing feature.
Added new VERBOSE value for -logLevel argument.
Added new argument -logFormat, --log-format to define the format of the Log File. Valid values: [LOG, TXT, ALL].
Call GPTH with --verbose when PhotoMigrator logLevel is VERBOSE or DEBUG.
Add argument -gSkipPrep,--google-skip-preprocess to Skipp Preproces steps during Google Takeout Processing feature.
🚀 Enhancements:
Reorganized Pre-checks/Pre-process/Process steps for a clearer maintainance and better visualization.
The Feature Google Takeout Processing is no longer called using the Pre-checks functions but always using the Process() function from ClassTakeoutFolder.
Included Input/Output folder size in Google Takeout Statistics.
Improved performance on Counting files during Google Takeout Processing.
Improved Logging messages type detection when running GPTH.
Improved Logging messages and screen messages prefixes using Global Variables instead of hardcoded strings.
Inserted Profiler support to Profile any function and optimize it.
Removed input_folder after successfull completion of Google Takeout Processing if the user used the flag -gmtf, --google-move-takeout-folder. Note that this only remove the input_folder with a valid Takeout Structure, this will not remove your original Takeout Zip folder with your Takeout Zips.
Renamed argument -loglevel to -logLevel.
Renamed argument -dashb to -dashboard.
Renamed argument -AlbFld to -AlbFolder.
Renamed argument -rAlbAss to -rAlbAsset.
Renamed argument -gpthErr to -gpthError.
Updated GPTH to version 4.0.9 (by @Xentraxx) which includes several improvements extracting metadata info from Google Takeouts.
This release represents a fundamental restructuring of the codebase following Clean Architecture principles, providing better maintainability, testability, and performance.
🚨 Critical Bug Fixes
CRITICAL FIX: Nothing mode now processes ALL files, preventing data loss in move mode
FIXED: Data loss in Nothing mode - Album-only files are now properly moved in Nothing mode instead of being silently skipped, preventing potential data loss when using move mode with --album-behavior=nothing
Smart duplicate detection with memory-efficient algorithms
Domain-Driven Design Implementation
Reorganized codebase into distinct layers: Domain, Infrastructure, and Presentation
Introduced service-oriented architecture with dependency injection container
Implemented immutable domain entities for better data integrity and performance
Added comprehensive test coverage with over 200+ unit and integration tests
Service Consolidation & Modernization
Unified service interfaces through consolidated service pattern
Implemented ServiceContainer for centralized dependency management
Refactored moving logic into strategy pattern with pluggable implementations
Enhanced error handling with proper exception hierarchies and logging
Intelligent Extension Correction
MIME type validation with file header detection
RAW format protection - prevents corruption of TIFF-based files
Comprehensive safety modes for different use cases
JSON metadata synchronization after extension fixes
Enhanced Data Processing
MediaEntity immutable models for thread-safe operations
Coordinate processing with validation and conversion
JSON metadata matching with truncated filename support
Album relationship management with shortcut strategies
Bug Fixes & Stability
Race condition elimination in concurrent operations
JSON file matching improvements for truncated names
Memory leak prevention in long-running processes
Cross-platform filename handling improvements
Eight-Step Pipeline Architecture
Extension Fixing - Intelligent MIME type correction
Media Discovery - Optimized file system scanning
Duplicate Removal - Content-based deduplication
Date Extraction - Multi-source timestamp resolution
EXIF Writing - Metadata synchronization
Album Detection - Smart folder classification
File Moving - Strategy-based organization
Creation Time Updates - Final timestamp alignment
🐛 Bug fixes:
Fixed LOG_LEVEL change in Google Takeout Processing Feature.
Fixed a bug setting lovLevel because it wasn't read from GlobalVariables in set_log_level() function.
📚 Documentation:
Updated documentation with all changes.
💾 Download
Download the tool either for Linux, MacOS or Windows (for both x64 and arm64 architectures) or Docker version (plattform & architecture independent) as you prefer, directly from following links:
Enhanced MP4 from Live picture Fixing during Google Takeout Processing to avoid check other candidates when the first one match.
Enhanced Google Takeout Processing when launched by Automatic Migration feature. In this case, Albums are created as symbolic links to the original files within No-Albums folder to save disk space and processing time.
Ensure that filenames lenght are at least 40 chars before to Fix truncated speccial suffixes or truncated extensions during Google Takeout Processing.
Workflows Improvements.
Enhanced Results Statistics in Google Takeout Processing to include differencs and percentags of assets between Takeout folder and Output folder.
Created DataModels for a better structure on those functions that returns multiples values.
Enhanced Feature Find Duplicates during Google Takeout Processing.
Now the Tool will not detect as duplicates, those assets found in No-Albums folder and within any Albums subfolder.
Enhanced Truncated Special Suffixees Fixing during Google Takeout Processing to fix at the same time truncated supplemental-metadata and other-special-suffixes within a file.
Enhanced Truncated Extension Fixing during Google Takeout Processing to avoid fixing truncated supplemental-metadata and other-special-suffixes because this is already done in above step.
Updated GPTH to version 4.0.8 (by @Xentraxx) which includes several improvements extracting metadata info from Google Takeouts.
Fixed a bug in the --fix-extension feature.
Fixed a bug with tuncated special suffixes or truncated extensions.
🐛 Bug fixes:
Fixed unhandled exception in funcrion sync_mp4_timestamps_with_images() when the image have been moved from output folder before to complete MP4 timestamp synching.
Fixed 'Rename Albums' Feature when no date range is found in its name. Before it removed any date found, now, if is not possible to extract a date range, just keep the cleaned name (without date range proffix).
Fixed Docker Version to include EXIF Tool.
Fixed an issue in Google Takeout Processing feature creating output folder when automatically switch to --google-ignore-check-structure when no detecting a valid Takeout Structure.
📚 Documentation:
Improved Google Takeout Feature documentation.
Included GPTH Process Expplanation documentation within Google Takeout Feature documentation.
Updated documentation with all changes.
💾 Download
Download the tool either for Linux, MacOS or Windows (for both x64 and arm64 architectures) or Docker version (plattform & architecture independent) as you prefer, directly from following links:
Fixed unhandled exception in funcrion sync_mp4_timestamps_with_images() when the image have been moved from output folder before to complete MP4 timestamp synching. by @jaimetur in #494
Added new argument -graf, --google-rename-albums-folders to rename all albums folders based on content dates when finish Google Takeout Processing.
Added new flag -confirm, --request-user-confirmarion to Skip User Confirmation before to execute any Feature. (Requested by @victoracon).
🚀 Enhancements:
Replace return arguments of ClassTakeoutFolder.process() method by a new object with all the arguments.
Added more info while running Google Takeout Processing feature.
Improved messages visualization of GPTH Processing in Automatic Migration Feature disabling progress bars within this Feature.
Improved Pre-Process steps in Google Takeout Processing with those new sub-steps:
Fixed JSON Metadata for MP4 videos associated to Live Picturas (Now also take into account the .supplemental-metadata suffix and any posible variation/truncation of it (i.e: IMG_0159.HEIC.supplemental-metad.json -> IMG_0159.MP4.supplemental-metadata.json).
Fixed truncated special suffixes at the end of the file (i.e: filename-edi.jpg -> filename-edited.jpg). Also take into account the .supplemental-metadata suffix and any posible variation/truncation of it
Fixed truncated extensions in JSON files (i.e: filename.jp.json -> filename.jpg.json). Also take into account the .supplemental-metadata suffix and any posible variation/truncation of it
Updated GPTH to version 4.0.8 (by @Xentraxx) which includes several improvements extracting metadata info from Google Takeouts.
Fixed a bug in the albums folders creation when the album name start with a number.
Fixed skipping files whose content does not match with their extension.
Added Steps Names Info in Logs during Google Takeout Processing Feature.
🐛 Bug fixes:
Fixed name of Takeout folder in info message while looking for Takeout folder structure. Before it showed the name of the first subfolder inside it instead of the name of the Takeout folder.
Fixed info while showing elapsed time on unpacking step. Before it said step 1 instead of unpacking step.
Fixed a bug in Automatic Migration Feature when <SOURCE> is a Zipped Takeout (before no assets to push were found during filtering process).
Fixed bug while moving assets to no-flatten folder structure if the asset has no system date. Now try to extract date from EXIF first, and if not found, get system date, if any date is found in any method, then assign a generic value.
Fixed bug while rename albums folders based on its content dates if some assets inside the folder has no system date. Now try to extract date from EXIF first, and if not found, get system date, if any date is found in any method, then assign a generic value.
Fixed a bug when using flag --google-ignore-takeout-structure in combination with --google-move-takeout-folder since when ignoring Takeout Structure, GPTH does not copy/move the assets to the output folder, so a manual copy/move is needed but input folder was deleted after step 2.
Fixed a bug showing stats when using flag --google-move-takeout-folder since original Takeout folder stats was calculated after GPTH delete it.
📚 Documentation:
Removed NOTE blocks im main documentation description for all features.
Updated Arguments Description documentation.
Removed Automatic Migration instructions from the main README.md (replaced by a link to the documentation file)
Removed Planned Roadmap from the main README.md (replaced by a link to Planned Roadmap file)
Updated documentation with all changes.
💾 Download
Download the tool either for Linux, MacOS or Windows (for both x64 and arm64 architectures) or Docker version (plattform & architecture independent) as you prefer, directly from following links:
New Tool name 'PhotoMigrator' (former 'CloudPhotoMigrator').
This change implies that docker distribution package needs to be downloaded again because the launching scripts and the dockerhub images repository have been renamed.
🌟 New Features:
Added Multi-Account support for all Synology Photos and Immich Photos Features (not only Automatic Mode Feature as before).
Added Support for 3 accounts of each Cloud Photo Service (before it was only 2).
Merged Synology/Immich arguments (now you can specify the client using a new argument '-client, --client <CLIENT_NAME>')
Added new argument '-client, --cient <CLIENT_NAME>' to set the Cloud Photo client to use.
Added new argument '-id, --account-id <ID>' to specify which account to use for Synology Photos and Immich Photos from Config.ini.
Added new argument '-move, --move-assets' to move assets (instead of copy) from <SOURCE> client to <TARGET> client during Automatic Migration process.
Added support for 2FA in Synology Photos requesting the OTP Token if flag '-OTP, --one-time-password' is detected. #218.
New flag '-OTP, --one-time-password' to allow login into Synology Photos accounts with 2FA activated.
Added new Feature to Remove Albums by Name Pattern from Synology Photos and Immich Photos to remove those albums whose name matches with a provided pattern (using regular expresions). Added following new flag to execute this new features:
'-rAlb, --remove-albums <ALBUM_NAME_PATTERN>'
Added new Feature to Rename Albums by Name Pattern from Synology Photos and Immich Photos to rename those albums whose name matches with a provided pattern (using regular expresions). Added following new flag to execute this new features:
Added new Feature to Merge Albums with the same name and different assets. Added following new flag to execute this new feature:
'-mDupAlb, --merge-duplicates-albums'
Automatic filters flags detection for all Remove/Rename/Merge Albums features for Synology/Immich Photos
remove-all-assets
remove-all-albums
remove-albums
remove-empty-albums
remove-duplicates-albums
rename-albums
merge-albums
Automatic filters flags detection in Dowload features for Synology/Immich Photos.
download-all
download-albums
Request user confirmation before Rename/Remove/Merge massive Albums (show the affected Albums).
Run Google Takeout Photos Processor Feature by default when running the tool with a valid folder as unique argument.
Run Google Takeout Photos Processor Feature by default when running the tool without arguments, requesting the user to introduce Google Takeout folder.
🚀 Enhancements:
Improved Performance on Pull functions when no filtering options have been given.
Improved performance when searching Google Takeout structure on huge local folder with many subfolders.
Renamed 'Automated Mode' to 'Automatic Mode'.
Improved performance retrieving assets when filters are detected. Use smart filtering detection to avoid person filterimg if not apply (this filter is very slow in Synology Photos)
Avoid logout from Synology Photos when some mode uses more than one call to Synology Photos API (to avoid OTP token expiration)
Merged Features 'Remove All Albums' & 'Remove Albums by name' (You can remove ALL Albums using '.*' as pattern).
Merged Synology/Immich features using a parameter and replacing Comments and Classes based on it.
Merged Synology/Immich HELP texts showed when running the different features.
Renamed All arguments starting with 's' (for synology) or 'i' (for immich) to remove the prefix, since now you can specify the client using the new flag '-client, --client'
Renamed flag '-gtProc, --google-takeout-to-process' to '-gTakeout, --google-takeout' to activate the Feature 'Google Takeout Processing'.
Renamed short argument '-RemAlb' to '-rAlb' to activate the Feature 'Remove Albums'.
Renamed short argument '-RenAlb' to '-renAlb' to activate the Feature 'Rename Albums'.
Renamed short argument '-MergAlb' to '-mDupAlb' to activate the Feature 'Merge Duplicates Albums'.
Updated GPTH to version 4.0.5 (by @Xentraxx) which includes several improvements extracting metadata info from Google Takeouts.
Re-written most of the code to clean screen logs and make it more easy to read (divided by steps).
GPTH is now enhanced with EXIF Tool support for a better metadata fixing (supporting geolocations update, almost all media formats, multiple camera brands, etc...).
EXIF Tool habe been integrated into the binary file for GPTH to make use of it.
Improved _build.py to support both compilers (Pyinstaller and Nuitka).
Added Splash logo at the loading screen when execute from binaries on Windows.
Renamed binaries files for architecture 'amd64' from 'amd64' to 'x64'.
Included binary for 'Windows arm64' architecture.
Changed Compiler from Pyinstaller to Nuitka (better performance) to generate compiled binaries for all supported platforms.
Many improvements and automations in GitHub Actions to generate new builds and releases.
🐛 Bug fixes:
Fixed issue when username/password cotains the special char (#) reserved for in-line comments in the configuration file (Config.ini). #218.
Fixed a bug with feature Remove All Albums from Synology Photos and Immich Photos when the flag '--remove-albums-assets' was selected (the assetes were not removed properly).
Fixed a bug with feature Synology Upload Album(s) when the folder to upload is not named "Albums".
Fixed a bug when any input folder ends with '' or '/' but is enclosed between double quotes (").
Fixed a bug replacing argument provided with flag '-dAlb, --download-albums <ALBUMS_NAME>' in the HELP text screen.
Fixed a bug when using interactive pager for '-h, --help' if terminal does not support it.
Minor bugs fixing.
📚 Documentation:
Distinction between arguments and flags in documentation.
Included Arguments Description section with all arguments and flags description.
Updated arguments format in documentation.
Updated documentation with all changes.
Added tool logo and emojis to documentation files.
💾 Download:
Download the tool either for Linux, MacOS or Windows (for both x64 and arm64 architectures) or Docker version (plattform & architecture independent) as you prefer, directly from following links:
Added options to filter assets in all Immich/Synology/LocalFolder Actions:
by Type
by Dates
by Country
by City
by Person
Added new flag -type, --filter-by-type=[image, video, all] to select the Asset Type to download (default: all)
Added new flag -from, --filter-from-date <FROM_DATE> to select the Initial Date of the Assets to download
Added new flag -to, --filter-to-date <TO_DATE> to select the Final Date of the Assets to download
Added new flag -country, --filter-by-country <COUNTRY_NAME> to select the Country Name of the Assets to download
Added new flag -city, --filter-by-city <CITY_NAME> to select the City Name of the Assets to download
Added new flag -person, --filter-by-person <PERSON_NAME> to select the Person Name of the Assets to download
Added new flag -parallel, --parallel-migration=[true, false] to select the Migration Mode (Parallel or Sequential). Default: true (parallel)
Included Live Dashboard in sequential Automatic Migration
🐛 Bug fixes:
Minor bugs fixing
💾 Download:
Download the tool either for Linux, MacOS or Windows (for both x64/amd64 or arm64 architectures) or Docker version (plattform & architecture independent) as you prefer, directly from following links:
Config.ini file has changed to support multi-accounts over the same Cloud Photo Service.
🌟 New Features:
Support for running the Tool from Docker container.
Included Live Progress Dashboard in Automatic Migration process for a better visualization of the job progress.
Added a new argument '--source' to specify the <SOURCE> client for the Automatic Migration process.
Added a new argument '--target' to specify the <TARGET> client for the Automatic Migration process.
Added new flag '-dashboard, --dashboard=[true, false]' (default=true) to show/hide Live Dashboard during Atomated Migration Job.
Added new flag '-gpthProg, --show-gpth-progress=[true, false]' (default=false) to show/hide progress messages during GPTH processing.
Added new flag '--gpthErr, --show-gpth-errors=[true, false]' (default=true) to show/hide errors messages during GPTH processing.
Support for 'Uploads Queue' to limit the max number of assets that the Puller worker will store in the temporary folder to 100 (this save disk space). In this way the Puller worker will never put more than 100 assets pending to Upload in the temporary folder.
Suppor
9E88
t to use Local Folders as SOURCE/TARGET during Automatic Migration Process. Now the selected local folder works equal to other supported cloud services.
Support Migration between 2 different accounts on the same Cloud Photo Service.
🚀 Enhancements:
Completely refactored Automatic Migration Process to allow parallel threads for Downloads and Uploads jobs avoiding downloading all assets before to upload them (this will save disk space and improve performance). Also objects support has been added to this mode for an easier implementation and future enhancements.
Removed argument '-AUTO, --AUTOMATIC-MIGRATION <SOURCE> <TARGET>' because have been replaced with two above arguments for a better visualization.
Renamed flag '-gitf, --google-input-takeout-folder' to '-gtProc, --google-takeout-to-process' for a better understanding.
Code Refactored to convert ServiceGooglePhotos, ServiceSynologyPhotos and ServiceImmichPhotos into Classes (ClassTakeoutFolder, ClassSynologyPhotos, ClassImmichPhotos) and homogenized all functions of all these classes.
Added new Class ClassLocalFolder with the same methods as other supported Cloud Services Classes to manage Local Folders in the same way as a Photo Cloud Service.
ClassTakeoutFolder inherits all methods from ClassLocalFolder and includes specific methods to process Google Takeouts since at the end Google Takeout is a local folder structure.
Updated GPTH to version 3.6.0 (by @Wacheee) to cop latest changes in Google Takeouts.
🐛 Bug fixes:
Bug Fixing.
📚 Documentation:
Documentation completelly re-written and structured in different filels
Documentation is now included as part of the distribution packages.
🖥️ Live Dashboard Preview:
💾 Download:
Download the tool either for Linux, MacOS or Windows (for both x64/amd64 or arm64 architectures) or Docker version (plattform & architecture independent) as you prefer, directly from following links:
Unificate a single Config.ini file and included tags for the different configuration sections.
🌟 New Features:
Added Immich Photos Support.
Added New Automatic Migration Feature to perform Fully Automatic Migration Process between different Photo Cloud Services
-AUTO, --AUTOMATIC-MIGRATION <SOURCE> <TARGET>
This process will do an AUTOMATIC-MIGRATION process to Download all your Assets
(including Albums) from the <SOURCE> Cloud Service and Upload them to the
<TARGET> Cloud Service (including all Albums that you may have on the
Cloud Service.
possible values for:
: ['google-photos', 'synology-photos', 'immich-photos'] or
: ['synology-photos', 'immich-photos']
Wildcards support on <ALBUMS_NAME> argument on --synology-download-albums and --immich-download-albums options.
Support to upload assets from/to any folder into Synology Photos (no need to be indexed within the Synology Photos root Folder)
Remove Dupplicates Assets in Immich Photos after upload any Asset.
Added function to Remove empty folders when delete assets in Synology Photos
Set Log levels per functions and include '-loglevel, --log-level' argument to set it up.
Support for colors in --help text for a better visualization.
Support for colors in logger for a better visualization.
New Arguments Added:
-i, --input-folder <INPUT_FOLDER> Specify the input folder that you want to process.
-o, --output-folder <OUTPUT_FOLDER> Specify the output folder to save the result of the processing action.
-loglevel, --log-level ['debug', 'info', 'warning', 'error', 'critical'] Specify the log level for logging and screen messages.
-rAlbAss, --remove-albums-assets
If used together with '-srAllAlb, --synology-remove-all-albums' or '-irAllAlb, --immich-remove-all-albums',
it will also delete the assets (photos/videos) inside each album.
-AlbFld, --albums-folders <ALBUMS_FOLDER>
If used together with '-iuAll, --immich-upload-all' or '-iuAll, --immich- upload-all',
it will create an Album per each subfolder found in <ALBUMS_FOLDER>.
Added new options to Synology Photos Support:
-suAll, --synology-upload-all <INPUT_FOLDER>.
-sdAll, --synology-download-all <OUTPUT_FOLDER>.
-srAll, --synology-remove-all-assets to remove All assets in Synology Photos.
-srAllAlb, --synology-remove-all-albums to remove Albums in Synology Photos (optionally all associated assets can be also deleted).
With those changes the Synology Photos Support has the following options:
-suAlb, --synology-upload-albums <ALBUMS_FOLDER>
The Tool will look for all Subfolders with assets within <ALBUMS_FOLDER> and will create one Album per subfolder into Synology Photos.
-sdAlb, --synology-download-albums <ALBUMS_NAME>
The Tool will connect to Synology Photos and download the Album whose name is <ALBUMS_NAME> to the folder 'Download_Synology' within the Synology Photos root folder.
To extract all albums mathing any pattern you can use patterns in <ALBUMS_NAME>, i.e: --synology-download-albums 'dron*' to download all albums starting with the word 'dron' followed by other(s) words.
To download several albums you can separate their names by comma or space and put the name between double quotes. i.e: --synology-download-albums 'album1', 'album2', 'album3'.
To download ALL Albums use 'ALL' as <ALBUMS_NAME>.
-suAll, --synology-upload-all <INPUT_FOLDER>
The Tool will look for all Assets within <INPUT_FOLDER> and will upload them into Synology Photos.
If the <INPUT_FOLDER> contains a Subfolder called 'Albums' then, all assets inside each subfolder of 'Albums' will be associated to a new Album in Synology Photos with the same name as the subfolder
-sdAll, --synology-download-all <OUTPUT_FOLDER>
The Tool will connect to Synology Photos and will download all the Album and Assets without Albums into the folder <OUTPUT_FOLDER>.
Albums will be downloaded within a subfolder '<OUTPUT_FOLDER>/Albums/' with the same name of the Album and all files will be flattened into it.
Assets with no Albums associated will be downloaded within a subfolder 'OUTPUT_FOLDER/No-Albums/' and will have a year/month structure inside.
-srEmpAlb --synology-remove-empty-albums
The Tool will look for all Albums in your Synology Photos account and if any Album is empty, will remove it from your Synology Photos account.
-srDupAlb, --synology-remove-duplicates-albums
The Tool will look for all Albums in your Synology Photos account and if any Album is duplicated, will remove it from your Synology Photos account.
-srAll, --synology-remove-all-assets to delete ALL assets in Synology Photos
-srAllAlb, --synology-remove-all-albums to delete ALL Albums in Synology Photos (optionally all associated assets can be also deleted).
Added Immich Photos Support with the Following options to manage Immich API:
-iuAlb, --immich-upload-albums <ALBUMS_FOLDER>
The Tool will look for all Subfolders with assets within <ALBUMS_FOLDER> and will create one Album per subfolder into Immich Photos.
-idAlb, --immich-download-albums <ALBUMS_NAME>
The Tool will connect to Immich Photos and download the Album whose name is <ALBUMS_NAME> to the folder 'Immich_Photos_Albums' within the Immich Photos root folder.
To download several albums you can separate their names by comma or space and put the name between double quotes. i.e: --immich-download-albums" "album1", "album2", "album3".
To download ALL Albums use "ALL" as <ALBUMS_NAME>.
-iuAll, --immich-upload-all <INPUT_FOLDER>
The Tool will look for all Assets within <INPUT_FOLDER> and will upload them into Immich Photos.
If the <INPUT_FOLDER> contains a Subfolder called 'Albums' then, all assets inside each subfolder of 'Albums' will be associated to a new Album in Immich Photos with the same name as the subfolder
-idAll, --immich-download-all <OUTPUT_FOLDER>>
The Tool will connect to Immich Photos and will download all the Album and Assets without Albums into the folder <OUTPUT_FOLDER>.
Albums will be downloaded within a subfolder of '<OUTPUT_FOLDER>/Albums/' with the same name of the Album and all files will be flattened into it.
Assets with no Albums associated will be downloaded within a subfolder called '<OUTPUT_FOLDER>/No-Albums/' and will have a year/month structure inside.
-irEmpAlb, --immich-remove-empty-albums
The Tool will look for all Albums in your Immich Photos account and if any Album is empty, will remove it from your Immich Photos account.
-irDupAlb --immich-remove-duplicates-albums
The Tool will look for all Albums in Immich your Photos account and if any Album is duplicated, will remove it from your Immich Photos account.
-irAll, --immich-remove-all-assets to delete ALL assets in Immich Photos
-irAllAlb, --immich-remove-all-albums to delete ALL Albums in Immich Photos (optionally all associated assets can be also deleted).
-irOrphan, --immich-remove-orphan-assets
The Tool will look for all Orphan Assets in Immich Database and will delete them.
IMPORTANT!: This feature requires a valid ADMIN_API_KEY configured in Config.ini.
🚀 Enhancements:
New Script name 'PhotoMigrator' (former 'GoogleTakeoutPhotos')
The Tool is now Open Source (all contributors that want to collaborate on this project are more than welcome)
Replaced 'ALL_PHOTOS' by 'No-Albums' as output subfolder for assets without any album associated (be careful if you already run the Tool with previous version because before, the folder for assets without albums was named 'ALL_PHOTOS')
Ignored @eaDir folders when upload assets to Synology/Immich Photos.
Refactor and group All Google Takeout arguments in one block for 'Google Photos Takeout' Support.
Refactor normal_mode to google_takeout_mode.
Changed the logic to detect google_takeout_mode (former normal_mode)
Merged -z and -t options in just one option ('-gtProc, -google-takeout-to-process') and detect if contains Takeout Zip files, in that case Zip files will be Unzipped to <TAKEOUT_FOLDER>_ folder.
Removed SYNOLOGY_ROOT_PHOTOS_PATH from Config.ini, since it is not needed anymore.
Removed Indexing Functions on ServiceSynology file (not needed anymore)
Code refactored.
Renamed options:
-sca, --synology-create-albums is now -suAlb, --synology-upload-albums <ALBUMS_FOLDER>.
-sea, --synology-extract-albums is now -sdAlb, --synology-download-albums <ALBUMS_NAME>.
-fsym, --fix-symlinks-broken <FOLDER_TO_FIX> is now -fixSym, --fix-symlinks-broken <FOLDER_TO_FIX>.
-fdup, --find-duplicates <DUPLICATES_FOLDER> is now -findDup, --find-duplicates <DUPLICATES_FOLDER>.
-pdup, --process-duplicates <DUPLICATES_REVISED> is now -procdDup, --process-duplicates <DUPLICATES_REVISED>.