Author Topic: How to download all of my owned substances in bulk  (Read 631 times)

Hi, I have acquired over 240 substance files over my subscription period so far and since I've recently had to do a windows reinstall, all my substance files are now gone from my hard drive.
I would like to re-download everything from Substance Source, however I really don't want to have to do it manually, file-by-file. Is there a bulk download option I can use? Thanks.

Hi @seko111

Unfortunately it is not possible to download all your files at once given the way we curently distribute the content to users.
I am sorry about the trouble this causes you!
PO @ Allegorithmic

Unfortunately that sucks!
Frustrated user.
("User" is to be taken lightly as Substance doesn't work)

Hey,

Old topic, but I created a work around for this issue. The following fix will autodownload the SBS and SBSAR files from all of your assets into your chrome download folder.

Make sure you are using chrome as your browser, open your 'my assets' page, scroll allllll the way down to the bottom of the page so it loads all of your assets, press f12 to open the developer menu, go to the console, paste the code located at the end of this post into your console and press enter. Leave your browser for as long as it takes to download all of your files, and I recommend not touching it. You might also need to add the following flag to your exe shortcut to ensure that chrome allows a lot of downloads without blocking it --disable-ipc-flooding-protection . Also, this method relies on properly timing your downloads and the page switching, so if your internet connection or pc can not keep up, you might need to modify the times located in the variables in the top of the code.

The code:
Code: [Select]
var thumbnail = document.getElementsByClassName("asset-thumbnail-preset__children");
var maxPages = thumbnail.length;
console.log("Detected " + thumbnail.length + " thumbnails to be downloaded from");
var currentpage = 0;
var initialwait = 2200;
var waitbetweendownloads = 1500;
var waitbeforeloadnewpage = 3000;
// start first download
openpage(currentpage);

function openpage(i) {
console.log("Running Open page " + i);
    thumbnail[i].click();
downloadall();
}


function downloadall()
{
setTimeout(function() {
var ele = document.getElementsByClassName("spectrum-Button spectrum-Button--cta sc-btzYZH eeBwle");
var downloadnum;
console.log("Sub page download button elements = " + ele.length);
for (downloadnum = 0; downloadnum < ele.length; downloadnum++)
{
    console.log("subpage loop number " + downloadnum);
downloadsingle(ele[downloadnum], downloadnum, ele.length);
}
}, initialwait);
}

function downloadsingle(button, iter, fileamount)
{
setTimeout(function() {
if(iter > 0)
   {
           console.log("DOWNLOADING File Number " + iter);
       button.click();
   if(iter == fileamount - 1)
           {
               
               currentpage++;
               if(currentpage <= maxPages)
                   {
                       console.log("about to open new page after wait");

                       setTimeout(function(){
                           openpage(currentpage);
                       }, waitbeforeloadnewpage);                        
                   }
               if(currentpage > maxPages)
                   {
                       console.log("All Finished!!");
                   }
           }
   }
}, waitbetweendownloads * iter);
}


Also, if there are any Allegorithmic(or Adobe) people reading this: This was super annoying to spend my time to find a solution and I hope that you guys listen to the community and start adding obvious features like this.