8000 Releases · jaimetur/PhotoMigrator · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: jaimetur/PhotoMigrator

v3.4.0

22 Jun 13:46
Compare
Choose a tag to compare
v3.4.0 Pre-release
Pre-release

🗓️ Release Notes


Release: v3.4.0

  • Release Date: 2025-06-30

    • Alpha version : 2025-06-18
    • Beta version : 2025-06-23
    • Release Candidate: 2025-06-27
    • Official Release : 2025-06-30
  • Main Changes:

    • 🚨 Breaking Changes:

      • 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
        • 🚀 Improvements
          • Performance & Reliability Improvements
            • Stream-based file I/O operations replacing synchronous access
            • Persistent ExifTool process management (10-50x faster EXIF operations)
            • Concurrent media processing with race condition protection
            • Memory optimization - up to 99.4% reduction for large file operations
            • Streaming hash calculations (20% faster with reduced memory usage)
            • Optimized directory scanning (50% fewer I/O operations)
            • Parallel file moving operations (40-50% performance improvement)
            • 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
            1. Extension Fixing - Intelligent MIME type correction
            2. Media Discovery - Optimized file system scanning
            3. Duplicate Removal - Content-based deduplication
            4. Date Extraction - Multi-source timestamp resolution
            5. EXIF Writing - Metadata synchronization
            6. Album Detection - Smart folder classification
            7. File Moving - Strategy-based organization
            8. 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:

Linux::

Mac OS:

Windows:

Docker Launcher:

What's Changed

Read more

v3.3.2

17 Jun 03:11
132f7e9
Compare
Choose a tag to compare

🗓️ Release Notes


Release: v3.3.2

  • Release Date: 2025-06-16

  • Main Changes:

    • 🌟 New Features:

    • 🚀 Enhancements:

      • Performance Improvements:
        • 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:

Linux::

Mac OS:

Windows:

Docker Launcher:

What's Changed

Full Changelog: https://github.com/jaimetur/P...

Read more

v3.3.1

12 Jun 01:22
67f49f3
Compare
Choose a tag to compare

🗓️ Release Notes


Release: v3.3.1

  • Release Date: 2025-06-12

  • Main Changes:

    • 🌟 New Features:

      • 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:

Linux::

Mac OS:

Windows:

Docker Launcher:

What's Changed

Read more

v3.3.0

01 Jun 22:22
22c96c8
Compare
Choose a tag to compare

🗓️ Release Notes

Release: v3.3.0

  • Release Date: 2025-05-30

  • Main Changes:

    • 🚨 Breaking Changes:

      • 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:
        • '-renAlb, --rename-albums <ALBUM_NAME_PATTERN>, <ALBUMS_NAME_REPLACEMENT_PATTERN>'
      • 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:

Linux::

Mac OS:

Windows:

Docker Launcher:

v3.2.0

21 Apr 17:06
8a412ec
Compare
Choose a tag to compare

Release Notes:

Release: v3.2.0

  • Release Date: 2025-04-30

  • Main Changes:

    • 🌟 New Features:

      • 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:

Linux::

Mac OS:

Windows:

Docker Launcher:


What's Changed

Full Changelog: v3.1.0...v3.2.0

v3.1.0

28 Mar 16:11
3cc44db
Compare
Choose a tag to compare

Release Notes:

Release: v3.1.0

  • Release Date: 2025-03-31

  • Main Changes:

    • 🚨 Breaking Changes:

      • 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:

      Live Dashboard


💾 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:

Linux::

Mac OS:

Windows:

Docker Launcher:


What's Changed

Read more

v3.0.0

07 Mar 13:38
Compare
Choose a tag to compare

Release Notes:

Release: v3.0.0

  • Release Date: 2025-03-07

  • Main Changes:

    • 🚨 Breaking Changes:

      • 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>.

...

Read more

v2.3.0

13 Jan 09:31
Compare
Choose a tag to compare

Release Notes:

Release: v2.3.0

  • Release Date: 2025-01-14

  • Main Changes:

    • New Features:

      • Added new argument to show the Tool version (-v, --version)
      • Added new argument to Extract Albums from Synology Photos (-sea, --synology-extract-albums)
      • Added Pagination option to Help text
    • Enhancements:

      • Removed EXIF Tool (option -re, --run-exif-tool) for performance issues
      • Renamed argument -ca, --create-albums-synology-photos to -sca, --synology-create-albums
      • Renamed argument -de, --delete-empty-albums-synology-photos to -sde, --synology-remove-empty-albums
      • Renamed argument -dd, --delete-duplicates-albums-synology-photos to -sdd, --synology-remove-duplicates-albums
      • Code refactored
    • Bug Fixing:

      • Minor Bug Fixing

Download this Release:

Download the script either Linux, MacOS or Windows version (for both x64/amd64 or arm64 architectures) as you prefer directly from following links:

Linux::

Mac OS:

Windows:


Full Changelog: 1.2.0...2.3.0

v2.2.1

08 Jan 13:29
Compare
Choose a tag to compare

Release Notes:

Release: v2.2.1

  • Release Date: 2025-01-08

  • Main Changes:

    • New Features:

      • Compiled version for different OS and Architectures
        • Linux_amd64: ready
        • Linux_arm64: ready
        • MacOS_amd64: ready
        • MacOS_arm64: ready
        • Windows_amd64: ready
    • Enhancements:

      • GitHub Integration for version control and automate Actions
      • Automated Compilation for all OS and supported Architectures
      • Code refactored
    • Bug Fixing:

      • Minor Bug Fixing

Download this Release:

Download the script either Linux, MacOS or Windows version (for both x64/amd64 or arm64 architectures) as you prefer directly from following links:

Linux::

Mac OS:

Windows:


Full Changelog: Release-2.2.0...Release-2.2.1

v2.2.0

03 Jan 16:40
Compare
Choose a tag to compare

Release Notes:

Release: v2.2.0

  • Release Date: 2025-01-04

  • Main Changes:

    • New Features:

      • Compiled version for different OS and Architectures
        • Linux_amd64: ready
        • Linux_arm64: ready
        • MacOS_amd64: under development
        • MacOS_arm64: ready
        • Windows_amd64: ready
    • Enhancements:

      • Code Refactored
    • Bug Fixing:

      • Minor Bug Fixing

Download this Release:

Download the script either Linux, MacOS or Windows version (for both x64/amd64 or arm64 architectures) as you prefer directly from following links:

Linux::

Mac OS:

Windows:


Full Changelog: Release-2.1.0...Release-2.2.0

0