CloudPhotoMigrator to move your photos between different Photo Cloud Services #354
jaimetur
started this conversation in
Show and tell
Replies: 2 comments 1 reply
-
Oh okay... nice what you got there 👀 |
Beta Was this translation helpful? Give feedback.
0 replies
-
Question really, can I run cloudphotomigrator on two instances of takeout. I.e. mine and my wife's. At separate times. What will happen to the file structure of the takeout completed folder of the two instances, can they be merged etc. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Repo Statistics
CloudPhotoMigrator
This tool has been designed to Interact and Manage different Photos Cloud services, and allow users to do an Automated Migration from one Photo Cloud service to other or from one account to a new account of the same Photo Cloud service.
Currently, the Supported Photo Cloud Services are:
Google Photos Takeout
Synology Photos - Features included:
Immich Photos - Features included:
Apple Photos
(not available yet but is on the ROADMAP.md for next release)
Google Photos
(not available yet but is on the ROADMAP.md for next release)
Apart from Manage the different Photo Cloud Services, the Tool also contains some other useful features such as:
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:
Configuration File:
In order to connect to the different Photo Cloud Services, you must configure the conection settings using the Configuration file (Config.ini) provided with the Tool.
Youn can see how to configure the Configuration File in this help section:
Configuration File
Command Line Interface (CLI):
This Tool is based in commands given through the Command Line Interface (CLI), so it is important to know the syntax of that interface.
You can check the whole list of all features and arguments with the right syntax here:
Command Line Interface (CLI)
All Documentation Links:
Note
The Tool is Multi-Platform and Multi-Architecture, and has been designed to be run directly within a Linux Server or NAS such as Synology NAS (Compatible with DSM 7.0 or higher), so feel free to download the version according to your system.
You can also execute the Tool from a Docker container or from sources files for a better compatibility. In below sections you can find the execution instructions to run the Tool from the different methods.
Execution Methods:
There are three different methods to execute this Tool:
The below tables show the pros and cons of each method together with a comparative rating of each one of them for you to decide wich one fits best with your needed:
Execution Methods Comparison
Binaries
❌ Need basic knowledge of running command line instructions.
❌ Some anti-virus may detect the tool as suspicious in Windows systems.
Container
✅ Easy configuration via
docker.config
file (RELEASE_TAG, TIMEZONE).✅ Automatically pulls latest image if
RELEASE_TAG=latest
.❌ Need to install Docker (if not already installed).
❌ All paths given as arguments must be relative to the execution folder.
Repository
❌ Need to install Git and Python 3.8+ (if not already installed).
❌ Need to pull the source repository again to update to a new release.
Execution Methods Comparison Rating
Binaries
easiest way
Container
recommended
Repository
more difficult
Main Use Case: Automated Migration Feature
Note
Automated Migration Feature
From version 3.0.0 onwards, the Tool supports a new Feature called 'Automated Migration'.
Use the argument '--source' to select the <SOURCE> client and the argument '--target' to select <TARGET> client for the Automated Migration Process to Pull all your Assets (including Albums) from the <SOURCE> Cloud Service and Push them to the <TARGET> Cloud Service (including all Albums that you may have on the Cloud Service).
Possible values for:
The idea is complete above list to allow also Google Photos and Apple Photos (iCloud), so when this is done, the allowed values will be:
If you ommit the suffix -[id], the tool will assume that account 1 will be used for the specified client (ie: --source=synology-photos means that Synology Photos account 1 will be used as <SOURCE> client.)
Also, you can ommit the suffix -photos in both <SOURCE> and <TARGET> clients, so, you can just use --source=synology --target=immich to set Synology Photos account 1 as <SOURCE> client and Immich Photos account 1 as <TARGET> client.
By default, the whole Migration process is executed in parallel using multi-threads (it will detect automatically the number of threads of the CPU to set properly the number of Push workers). The Pull worker and the different Push workes will be executed in parallel using an assets queue to guarantee that no more than 100 assets will be temporarily stored on your local drive, so you don't need to care about the hard disk space needed during this migration process.
By default, (if your terminal size has enough width and heigh) a Live Dashboard will show you all the details about the migration process, including most relevant log messages, and counter status. You can disable this Live Dashboard using the flag '-dashboard=false or --dashboard=false'.
Additionally, this Automated Migration process can also be executed sequentially instead of in parallel, using flag --parallel=false, so first, all the assets will be pulled from and when finish, they will be pushed into , but take into account that in this case, you will need enough disk space to store all your assets pulled from service.
Finally, you can apply filters to filter assets to pull from <SOURCE> client. The available filters are:
Warning
If you use a local folder <INPUT_FOLDER> as source client, all your Albums should be placed into a subfolder called 'Albums' within <INPUT_FOLDER>, creating one Album subfolder per Album, otherwise the tool will no create any Album in the target client.
Example:
<INPUT_FOLDER>/Album1
<INPUT_FOLDER>/Album2
Important
It is important that you configure properly the file 'Config.ini' (included with the tool), to set properly the accounts for your Photo Cloud Service.
ROADMAP:
v3.2.0
Release Date: (estimated)
TODO:
v4.0.0:
Release Date: (estimated)
TODO:
(See: https://max-coding.medium.com/loading-photos-and-metadata-using-google-photos-api-with-python-7fb5bd8886ef)
Credits
I hope this can be useful for any of you.
Enjoy it!
(c) 2024-2025 by Jaime Tur (@jaimetur).
Part of this Tool is based on GPTH Tool by TheLastGimbus
Donation / Sponsor:
If you consideer that this Tool has helped you, you can also consider donating me with a ☕
I spent a lot of time developping this Tool for free, so donations will contribute to motivate me to continue working on this project 💖
Beta Was this translation helpful? Give feedback.
All reactions