Skip to main content

I was able to figure out a workaround for this. It will force the underlying structure to select all of the photos on the page and allow you to click the download selected photos button. It will download them all separately as if you had selected all of the photos by hand (but without RSI).

You need to use Chrome dev tools. I am sure you can do it with other browsers, I just haven't tried. The following steps are involved, and I would appreciate if someone can tell me how to get the "this" value for the object I need in a simpler fashion (steps 4-10).

Here's the steps:

  1. Make sure chrome dev tools is closed.

  2. Go to photos in iCloud, then All Photos

  3. Right click any photo on the page and select Inspect.

  4. Click Sources tab at the top of dev tools.

  5. In network hierarchy on left, open photos, www.icloud.com, applications/photos, 1807Hotfix1/en-us, main.js

  6. Click braces {} at bottom of the sources window to format the code.

  7. Search for case m$408$0r.a.TOGGLE: (should be around line 4170625845)

  8. Set a breakpoint on the line above which is a switch statement.

  9. Click on any photo in the main window.

  10. Go back to dev tools and see the scope window (below source for me).

  11. Right click on "this" variable and choose Store as Global Variable.

  12. Look in the console. Should see something like temp1 which is set to this.

  13. Remove the breakpoint in the source window.

  14. Click the Resume Script Execution button in main window.

  15. Go to the console, and type the following and press enter:

    temp1.selectAll()

  16. Nothing appears to have changed, but it has underneath.

  17. Now click the download selected items button at the top.

  18. You will now see a bunch of downloads happening.

I was able to figure out a workaround for this. It will force the underlying structure to select all of the photos on the page and allow you to click the download selected photos button. It will download them all separately as if you had selected all of the photos by hand (but without RSI).

You need to use Chrome dev tools. I am sure you can do it with other browsers, I just haven't tried. The following steps are involved, and I would appreciate if someone can tell me how to get the "this" value for the object I need in a simpler fashion (steps 4-10).

Here's the steps:

  1. Make sure chrome dev tools is closed.

  2. Go to photos in iCloud, then All Photos

  3. Right click any photo on the page and select Inspect.

  4. Click Sources tab at the top of dev tools.

  5. Click braces {} at bottom of the sources window to format the code.

  6. Search for case m$408$0.TOGGLE (should be around line 41706)

  7. Set a breakpoint on the line above which is a switch statement.

  8. Click on any photo in the main window.

  9. Go back to dev tools and see the scope window (below source for me).

  10. Right click on "this" variable and choose Store as Global Variable.

  11. Look in the console. Should see something like temp1 which is set to this.

  12. Remove the breakpoint in the source window.

  13. Click the Resume Script Execution button in main window.

  14. Go to the console, and type the following and press enter:

    temp1.selectAll()

  15. Nothing appears to have changed, but it has underneath.

  16. Now click the download selected items button at the top.

  17. You will now see a bunch of downloads happening.

I was able to figure out a workaround for this. It will force the underlying structure to select all of the photos on the page and allow you to click the download selected photos button. It will download them all separately as if you had selected all of the photos by hand (but without RSI).

You need to use Chrome dev tools. I am sure you can do it with other browsers, I just haven't tried. The following steps are involved, and I would appreciate if someone can tell me how to get the "this" value for the object I need in a simpler fashion (steps 4-10).

Here's the steps:

  1. Make sure chrome dev tools is closed.

  2. Go to photos in iCloud, then All Photos

  3. Right click any photo on the page and select Inspect.

  4. Click Sources tab at the top of dev tools.

  5. In network hierarchy on left, open photos, www.icloud.com, applications/photos, 1807Hotfix1/en-us, main.js

  6. Click braces {} at bottom of the sources window to format the code.

  7. Search for case r.a.TOGGLE: (should be around line 25845)

  8. Set a breakpoint on the line above which is a switch statement.

  9. Click on any photo in the main window.

  10. Go back to dev tools and see the scope window (below source for me).

  11. Right click on "this" variable and choose Store as Global Variable.

  12. Look in the console. Should see something like temp1 which is set to this.

  13. Remove the breakpoint in the source window.

  14. Click the Resume Script Execution button in main window.

  15. Go to the console, and type the following and press enter:

    temp1.selectAll()

  16. Nothing appears to have changed, but it has underneath.

  17. Now click the download selected items button at the top.

  18. You will now see a bunch of downloads happening.

Source Link

I was able to figure out a workaround for this. It will force the underlying structure to select all of the photos on the page and allow you to click the download selected photos button. It will download them all separately as if you had selected all of the photos by hand (but without RSI).

You need to use Chrome dev tools. I am sure you can do it with other browsers, I just haven't tried. The following steps are involved, and I would appreciate if someone can tell me how to get the "this" value for the object I need in a simpler fashion (steps 4-10).

Here's the steps:

  1. Make sure chrome dev tools is closed.

  2. Go to photos in iCloud, then All Photos

  3. Right click any photo on the page and select Inspect.

  4. Click Sources tab at the top of dev tools.

  5. Click braces {} at bottom of the sources window to format the code.

  6. Search for case m$408$0.TOGGLE (should be around line 41706)

  7. Set a breakpoint on the line above which is a switch statement.

  8. Click on any photo in the main window.

  9. Go back to dev tools and see the scope window (below source for me).

  10. Right click on "this" variable and choose Store as Global Variable.

  11. Look in the console. Should see something like temp1 which is set to this.

  12. Remove the breakpoint in the source window.

  13. Click the Resume Script Execution button in main window.

  14. Go to the console, and type the following and press enter:

    temp1.selectAll()

  15. Nothing appears to have changed, but it has underneath.

  16. Now click the download selected items button at the top.

  17. You will now see a bunch of downloads happening.