1000 FAQs, 500 tutorials and explanatory videos. Here, there are only solutions!
Import Google Photos to kDrive
This guide details how to import your photos from Google Photos (https://photos.google.com/) to kDrive Infomaniak.
1. Export your Google Photos
To retrieve all your photos stored on Google Photos to your computer's hard drive, you must use the Google Takeout service. This allows you to choose which albums to retrieve if you want to proceed in steps:
- Log in to Google Takeout.
- Deselect all products to keep only Google Photos:
- If necessary, deselect the albums you do not want to export:
- Go to the next step at the bottom of the page:
- Configure the export by ZIP archives:
- Click at the bottom on the “Create export” button to start the export.
- Wait (for several hours or even several days) until you receive an email containing the links to the ZIP exports.
- Download and then extract the content onto your computer:
- Clean and merge your different photo folders if necessary.
2. Correct the dates of the exported photos…
During the export, the creation dates of the files are modified and replaced by the export date instead of the original capture date. Therefore, you need to correct the dates using an appropriate script.
Here is a script for advanced users that allows you to restore the correct data to your files based on EXIF information (it is recommended to process batches of 7000-8000 photos max. to avoid a crash):
... on macOS
- Download ExifTool https://exiftool.org/index.html (macOS Package).
- Install the application by allowing it to open first if necessary:
- Open Script Editor (located in your Applications > Utilities folder):
- Click on New document.
- Copy and paste the long script provided below into the Script Editor window.
- Click on Run to start the script, a window opens:
- Select the folder to analyze.
- Let the script run, it will modify the dates or write errors in a file
errors.txt
on the desktop.
The script to copy and paste in full:
-- replace file date with EXIF creation date or date from name after the first dash -
tell application "Finder"
set FolderPath to choose folder with prompt "Select the folder containing the files to update"
my processFolder(FolderPath)
end tell
on processFolder(aFolder)
tell application "Finder"
-- process files:
set fileList to files of aFolder
repeat with eachFile in fileList
-- process a single file
set theFile to eachFile
set AppleScript's text item delimiters to {""}
set fileName to name of eachFile --get the file name
set eachFile to eachFile as string --file path
set hasDate to true --initialize date found flag
try
--get date if available
set photoDate to do shell script "/usr/local/bin/exiftool -DateTimeOriginal " & quoted form of POSIX path of eachFile
if photoDate is "" then set photoDate to do shell script "/usr/local/bin/exiftool -CreationDate " & quoted form of POSIX path of eachFile
if photoDate is "" then set photoDate to do shell script "/usr/local/bin/exiftool -CreateDate " & quoted form of POSIX path of eachFile
if photoDate is "" then
set hasDate to false --check if date was found
end if
on error
set hasDate to false -- error retrieving date
set photoDate to ""
end try
if length of photoDate > 20 then
--format extracted date
set x to (length of photoDate) - 33
set OriginalDate to text -x thru -1 of photoDate
set formattedDate to text 1 thru 5 of OriginalDate
set theYear to formattedDate
set formattedDate to formattedDate & text 7 thru 8 of OriginalDate
set theMonth to text 7 thru 8 of OriginalDate
set formattedDate to formattedDate & text 10 thru 11 of OriginalDate
set theDay to text 10 thru 11 of OriginalDate
set formattedDate to formattedDate & text 13 thru 14 of OriginalDate
set theHour to text 13 thru 14 of OriginalDate
set formattedDate to formattedDate & text 16 thru 17 of OriginalDate
set theMinute to text 16 thru 17 of OriginalDate
set formattedDate to formattedDate & "." & text 19 thru 20 of OriginalDate
set theSecond to text 19 thru 20 of OriginalDate
set newName to theYear & "-" & theMonth & "-" & theDay & " " & theHour & "." & theMinute & "." & theSecond
set testValue to formattedDate as string --check if found date is 000
if testValue is " 000000000000.00" then
set hasDate to false
else
-- set file date to original EXIF date and write to log
do shell script "touch -t " & formattedDate & " " & quoted form of POSIX path of eachFile
set logFile to open for access ((path to desktop folder as text) & "Date Found.txt") as text with write permission
write "Original date found for file: " & OriginalDate & " " & eachFile & return to logFile starting at eof
close access logFile
end if
end if
if hasDate is false then
-- get date from file name after first dash
set nb to ""
set nameDate to ""
set fileName to fileName as string
set savedDelimiters to AppleScript's text item delimiters --save delimiters
set AppleScript's text item delimiters to {"-"} --split on "-"
set nb to offset of "-" in fileName
if nb is not 0 then
set AppleScript's text item delimiters to savedDelimiters --restore delimiters
set nameDate to characters (nb + 1) thru (nb + 8) of fileName as string
set nameDate to nameDate & "1200.00"
set cmd1 to "/usr/local/bin/exiftool -datetimeoriginal=" & nameDate & " " & quoted form of POSIX path of eachFile
set cmd2 to "/usr/local/bin/exiftool -createdate=" & nameDate & " " & quoted form of POSIX path of eachFile
end if
try
-- write date from name to EXIF
do shell script cmd1
do shell script cmd2
do shell script "touch -t " & nameDate & " " & quoted form of POSIX path of eachFile
do shell script "rm " & quoted form of POSIX path of (eachFile & "_original")
on error
-- if date from name is invalid, log the error
set logFile to open for access ((path to desktop folder as text) & "Date Error.txt") as text with write permission
write "No valid date found in file name: " & eachFile & return to logFile starting at eof
close access logFile
end try
end if
end repeat
-- process folders:
set folderList to folders of aFolder
repeat with eachSubfolder in folderList
-- process a subfolder
my processFolder(eachSubfolder)
end repeat
end tell
end processFolder
tell application "Finder"
display dialog "Done! All files processed." buttons {"Close"}
end tell
… on Windows
- Download ExifTool https://exiftool.org/index.html (Windows executable)
- Place it in an accessible folder (for example
C:\ExifTool
). - Rename
exiftool(-k).exe
toexiftool.exe
. - Note its path (for example
C:\ExifTool\exiftool.exe
). - Copy and paste the long script below into a text file, such as Notepad, on your computer.
- Modify the path specified in the file with the one noted in step 4 if necessary.
- Save it with the extension
.ps1
, for exampleUpdateExifDates.ps1
. - Right-click on the
.ps1
file to run it with PowerShell (a command-line interpreter and scripting environment, pre-installed on modern versions of Windows). - Select the folder to analyze.
- Let the script run, it will modify the dates or write errors in a file
DateError.txt
on the desktop.
PowerShell may block scripts. To allow their execution (if necessary), open PowerShell as an administrator and type Set-ExecutionPolicy RemoteSigned
.
The script to copy and paste entirely:
# === Configuration ===
$exifToolPath = "C:\ExifTool\exiftool.exe"
$desktop = [Environment]::GetFolderPath("Desktop")
$logFound = Join-Path $desktop "DateFound.txt"
$logError = Join-Path $desktop "DateError.txt"
# === Folder Selection Dialog ===
$folder = (New-Object -ComObject Shell.Application).BrowseForFolder(0, "Select the folder to process", 0).Self.Path
function Process-Folder {
param ([string]$path)
Get-ChildItem -Path $path -Recurse -File | ForEach-Object {
$file = $_
$filePath = $file.FullName
$fileName = $file.Name
$hasDate = $true
# Try reading EXIF date
$photoDate = & $exifToolPath -DateTimeOriginal "$filePath"
if (-not $photoDate) { $photoDate = & $exifToolPath -CreateDate "$filePath" }
if (-not $photoDate) { $hasDate = $false }
if ($hasDate -and $photoDate -match "\d{4}:\d{2}:\d{2} \d{2}:\d{2}:\d{2}") {
$dateString = $matches[0] -replace "[:]", "", 1, 2 -replace "[:]", "", 1, 1 -replace " ", ""
$formattedDate = $dateString.Substring(0, 12) + "." + $dateString.Substring(12, 2)
try {
$newDate = [datetime]::ParseExact($photoDate.Trim(), "yyyy:MM:dd HH:mm:ss", $null)
[System.IO.File]::SetCreationTime($filePath, $newDate)
[System.IO.File]::SetLastWriteTime($filePath, $newDate)
Add-Content -Path $logFound -Value "EXIF date set for: $fileName → $photoDate"
} catch {
$hasDate = $false
}
}
if (-not $hasDate) {
if ($fileName -match "-(\d{8})") {
$nameDate = $matches[1] + "1200.00"
try {
& $exifToolPath "-datetimeoriginal=$nameDate" "$filePath"
& $exifToolPath "-createdate=$nameDate" "$filePath"
$touchDate = $nameDate.Substring(0,12) + "." + $nameDate.Substring(12,2)
$newDate = [datetime]::ParseExact($touchDate, "yyyyMMddHHmm.ss", $null)
[System.IO.File]::SetCreationTime($filePath, $newDate)
[System.IO.File]::SetLastWriteTime($filePath, $newDate)
Add-Content -Path $logFound -Value "Date from filename set for: $fileName → $newDate"
} catch {
Add-Content -Path $logError -Value "Invalid date in filename: $fileName"
}
} else {
Add-Content -Path $logError -Value "No valid date found for: $fileName"
}
}
}
}
# Execute processing
Process-Folder -path $folder
[System.Windows.Forms.MessageBox]::Show("Done! All files processed.")
3. Import the photos to kDrive
Once your photos are ready, if there aren't too many of them (a few thousand items) and your Internet connection is suitable, you can simply open the Web app kDrive (online service kdrive.infomaniak.com) and choose to import the folder containing your photos to the desired location:
- Click here to access the Web app kDrive Infomaniak (online service kdrive.infomaniak.com).
- Navigate to the location that will host your photos.
- Click on the ‍ New button at the top left.
- Click on Import a folder.
- Select the folder containing your photos on your computer.
- Wait until your data has been fully imported (the activity log scrolls at the bottom right):
Otherwise, if you are synchronizing your data using the desktop app, simply place your photos in the folder structure of your kDrive folder on your computer. Synchronization will begin, and your photos will be securely sent to the Infomaniak servers.
4. Access your photos from your devices
You can now access your photos on your various connected devices to kDrive (until they synchronize if it is the desktop app kDrive).
On the Web app kDrive (online service kdrive.infomaniak.com), you can change the layout to better view your pictures with an enlarged display of thumbnails: