Download All images from iCloud public shared album

Dec 8, 2023·

1 min read

Download All images from iCloud public shared album

Get urls with help of this repo:

https://github.com/ghostops/ICloud-Shared-Album

let urls = res.photos.map(p=>{
    let der = p.derivatives;
    let lastKey = Object.keys(der).pop();
    return der[lastKey].url;
});

https://www.codepel.com/vanilla-javascript/javascript-download-multiple-files/

function downloadAll() {
  for (var i = 0; i < urls.length; i++) {
    let fileName = urls[i]?.split('/')[5].split('?')[0];
    forceDownload(urls[i], fileName);
  }
}
function forceDownload(url, fileName){
    var xhr = new XMLHttpRequest();
    xhr.open("GET", url, true);
    xhr.responseType = "blob";
    xhr.onload = function(){
        var urlCreator = window.URL || window.webkitURL;
        var imageUrl = urlCreator.createObjectURL(this.response);
        var tag = document.createElement('a');
        tag.href = imageUrl;
        tag.download = fileName;
        document.body.appendChild(tag);
        tag.click();
        document.body.removeChild(tag);
    }
    xhr.send();
}