Jump to content

iCloud Windows: Download photos automatically


Recommended Posts

All, sorry for the newbie question.

iCloud for Windows (the software) shows you all photos synched to iCloud in a folder, together with a little icon for "available in iCloud, but not downloaded yet", "synched" ( = there is an actual file with the photo on my pc), and others. To download the photos, a right click -> menu selection is required.

I'm looking for a way to automatically download all photos/videos without any interaction - the manual download is fine for one-time use, but not for this. Once a day or something like this would be fine.

After that, all photos should be copied into a second folder, so if photos/videos get deleted on the iPhone, which will also delete them in iCloud, they are not lost. That is the easy part 🙂

My question: Is that possible? I did not even download AutoIT yet, but don't want to spend the time if you experts say "doesn't make sense".

Question 2: Has anybody done that yet or would be willing to provide me a script (I would pay, of course)?

Thank you,

Christoph

Link to comment
Share on other sites

Hi @CvL (Christoph) 👋 ,

I never used iCloud, but I had a quick look on some google search entries and I guess it should be feasible.

How about your programming/coding skills? There are already iCloud (API'ish) solutions in Python or Node.js. Maybe you will have a look at these.
At my quick search I saw no official supported API which could be used, so the way to do in in AutoIt would be by automated tasks which have to be implemented.

If there is a API, you could use WinHttp.au3 for example => like I mentioned - only in case.
I hope this will give you at least some ideas to thought about it.

Best regards
Sven

Stay innovative!

Spoiler

🌍 Au3Forums

🎲 AutoIt (en) Cheat Sheet

📊 AutoIt limits/defaults

💎 Code Katas: [...] (comming soon)

🎭 Collection of GitHub users with AutoIt projects

🐞 False-Positives

🔮 Me on GitHub

💬 Opinion about new forum sub category

📑 UDF wiki list

✂ VSCode-AutoItSnippets

📑 WebDriver FAQs

👨‍🏫 WebDriver Tutorial (coming soon)

Link to comment
Share on other sites

  • Developers

I assume the OP wants to sync the files from the cache structure from the Windows iCloud client into another directory, not build his own iCloud client.

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Link to comment
Share on other sites

Ah, that's a good point @Jos. Maybe I did not understand this correctly. Let's see what he will be saying 🤝 .

Best regards
Sven

Edited by SOLVE-SMART

Stay innovative!

Spoiler

🌍 Au3Forums

🎲 AutoIt (en) Cheat Sheet

📊 AutoIt limits/defaults

💎 Code Katas: [...] (comming soon)

🎭 Collection of GitHub users with AutoIt projects

🐞 False-Positives

🔮 Me on GitHub

💬 Opinion about new forum sub category

📑 UDF wiki list

✂ VSCode-AutoItSnippets

📑 WebDriver FAQs

👨‍🏫 WebDriver Tutorial (coming soon)

Link to comment
Share on other sites

Posted (edited)

All, thank you for your quick replies and sorry not to answer earlier, I didn't realize I had to manually turn on the notification emails.

I don't care about the "how", all I want is to have full copies of all photos/videos of my wife's iPhone in a folder on a Windows pc. No backwards sync (if something is done with the files on the Windows pc, it doesn't matter) and no folder sync as in "if the file is deleted on the iPhone, it should be deleted on the pc as well".

I don't see any feasable way to access iCloud on a Windows pc without the iCloud client, but maybe there is one. To answer the question: I don't care about the iCloud client, but that's the only way I know how to get the files on a Windows pc at all (but not automated).

Does it make my question clearer?

Christoph

Edited by CvL
Link to comment
Share on other sites

  • Moderators

Wow, that has the mind racing... What's the wife been doing that we need her photos!  

Anyway... You should be able to do it a couple of different ways.  icloud.com with one of the winhttp udfs on the forum or you should be able to import them with google app/desktop ... of course you'll need the apple id and password.

I'd probably use the google desktop option... as I could access the drive directly.  
Instructions online show:
-Sign in with your Apple ID at privacy.apple.com.
-Select Request to transfer a copy of your data.
-To start the transfer, sign in with your Google Account.
-To finish your request, follow the on-screen instructions.

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Link to comment
Share on other sites

@SmOke_N's method has merit.

The web ui won't allow downloads over 1000 items.


If you install the iCloud control app, you can set up sync. It would be two way however, but if you monitor the downloads (%username%\Pictures\iCloud Photos\photos), you can re-save all of the items in another folder on the PC. You'll end up with duplicates but the deletions from the cloud should be prevented.

Link to comment
Share on other sites

in the meantime, a helpful user has created a script that essentially mimics human behaviour and does the job, but indeed it stops at 1000 items.

So, next weekend I'll have to look into your suggestion...

Thank you again,

Christoph

Link to comment
Share on other sites

Could you @CvL share the code or at least the functional steps which were provided by your "helpful user"?
This would help others too, to know about other ways/approaches than these that are already suggested 🤝 .

Best regards and thanks,
Sven

Stay innovative!

Spoiler

🌍 Au3Forums

🎲 AutoIt (en) Cheat Sheet

📊 AutoIt limits/defaults

💎 Code Katas: [...] (comming soon)

🎭 Collection of GitHub users with AutoIt projects

🐞 False-Positives

🔮 Me on GitHub

💬 Opinion about new forum sub category

📑 UDF wiki list

✂ VSCode-AutoItSnippets

📑 WebDriver FAQs

👨‍🏫 WebDriver Tutorial (coming soon)

Link to comment
Share on other sites

  • 2 weeks later...

All, sorry for the long delay, work took over. The script is:

#include <WinAPIShellEx.au3>

Local $PhotosPath = @UserProfileDir & "\Pictures\iCloud Photos\Photos\"
Local $PhotosPathBackup = @UserProfileDir & "\Pictures\iCloudPhotosBackUp\"
If not FileExists($PhotosPathBackup) Then DirCreate($PhotosPathBackup)
ShellExecute($PhotosPath)


Sleep(500)
If @UserName = "Raziel" Then
    Send("^e")
Else
    Send("^a")
EndIf
Sleep(500)
Send("{LSHIFT}+{F10}")
Sleep(200)
Send("{DOWN 14}")
Sleep(100)
Send("{ENTER}")

Sleep(30000) ;one second just for testing  change to (1000*60*30) for wait 30 minutes

;some bug here it seems to be always overwrite file
;~ _WinAPI_ShellFileOperation( $PhotosPath & "*.*", $PhotosPathBackup, $FO_COPY,BitOR( $FOF_NOCONFIRMMKDIR, $FOF_NOCONFIRMATION , $FOF_NOERRORUI, $FOF_NO_UI))

Local $hSearch = FileFindFirstFile($PhotosPath & "*.*")
While 1
   $sFileName = FileFindNextFile($hSearch)
   If @error Then ExitLoop
   If not FileExists($PhotosPathBackup & $sFileName) Then FileCopy($PhotosPath & $sFileName, $PhotosPathBackup)
WEnd
FileClose($hSearch)
MsgBox(0,"Information","Process Finsihed" & @CRLF & "Script will be closed in 5 Seconds...",5)

This works in principle, but - for whatever reason, not all photos are downloaded, and clicking the menu item "keep on computer" toggles the command, so every other time it un-sets what I want to achieve. But it's the closest I have. Thanks to @Danyfirex

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...