recently there has been an uptick on accounts being banned so be smart and don't lose all your work!

// script for exporting all your stuff
if (!location.href.endsWith("projects")) { location.href = "/projects" }
else {
  const projects = document.querySelectorAll(".ui-projects-table-project-name");
  function addListener(selector, page) {
    return new Promise(resolve => {
      const doc = page || document;
      if (doc.querySelector(selector)) {
        return resolve(doc.querySelector(selector));
      }
      const observer = new MutationObserver(mutations => {
        if (doc.querySelector(selector)) {
          resolve(doc.querySelector(selector));
          observer.disconnect();
        }
      });
      observer.observe(doc.body, {
        childList: true,
        subtree: true
      });
    });
  }
  function loadProjects(index) {
    if (projects[index].href.match(/.*?(app|game)lab/g) === null) { return loadProjects(++index) }
    let win = window.open(projects[index]);
    win.addEventListener("load", () => {
      let doc = win.document;
      addListener(".project_share", doc).then(element => {
        setTimeout(() => {
          element.click();
        }, 50)
        addListener("div#project-share > div > div > a", doc).then(element => {
          element.click();
          addListener("div#project-share > div > div > div > button", doc).then(element => {
            element.click();
            const observer = new MutationObserver(() => {
              observer.disconnect();
              setTimeout(() => {
                win.close();
                index += 1;
                if (index < projects.length) {
                  loadProjects(index);
                }
              }, 3e3)
            })
            observer.observe(doc.querySelector("div#project-share > div > div > div > button > div"), {
              childList: true
            })
          })
        })
      })
    })
  }
  loadProjects(0);
}

your deployment area will look like this where you inject the payload into the console, if not it will redirect you to this page in which you'll have to execute the script again for it to work

all you have to do after this is extract the zips after it has finished exporting all your projects which you can automate if necessary I'll link a quick py script i made for it though your more then welcome to make your own

import os;
import zipfile;
directory = r'%s' %input("Do you have a specific directory you want this extracted to (if not press enter): ");
if directory == "": directory = r'%s' %os.path.dirname(__file__)
if os.path.isdir(directory):
    files = os.listdir(directory);
    print(files);
    for file in files:
        if file.endswith(".zip"):
            path = r'%s' %os.path.join(directory, file);
            print(path);
            try:
                with zipfile.ZipFile(path, 'r') as content:
                    content.extractall(f"{directory}\\");
                os.remove(path);
                print(file);
            except:
                print(f"file {file} failed");
input("")

tldr; use the first script if you want your projects,
use the second if you want them unzipped

also it may be good idea to keep this post pinned for future people who do wish to keep there projects since CDO does not off any native support for backing up all your projects

    cdo native support is called making an alt account

    but nonetheless this is cool and probably has its advantages

      ackvonhuelio yea that's technically possible but you'd need a different application for it and scrape the project directory of your main account and retitle the remix and run it through that way which is possible with modification but i meant like no native support for a(n) export all button (which is essentially what this does and allows users who'd like to take there project somewhere else the ability to do so.... like per say if you want a good looking profile on a CDN for others to view) the main reason i did this is because i know i own the project now fully and don't have to worry about them continually hosting it for me especially if they deleted an account for having the project

      Varrience So if my account was deleted, how would I use these backups to recreate all my projects? Is there a way to import them into a new project, or do I have to copy the code from the extracted files and paste it in?

        Binary_Coder unfortunately at that point it's to late.... even the links if you had any to the project can't be accessed because when an account is removed so are the files from the API
        this post was mainly made for those to take precaution from now on and use this to ensure they'll never lose it again

        2 months later

        Chat