RBLXImageUpload enables you to bulk upload .png, .jpg and .jpeg files using secure OpenCloud API keys with a simple Python script.
- Bulk upload
.png,.jpg,.jpegimages from a folder - Automatically polls operation URLs until asset ID is ready
- Retries polling if metadata isn’t ready yet (with backoff)
- Failed polls saved for later retry
- Another script for retrying failed polls
- Python 3.8+
- Roblox Open Cloud API key (with asset read, write permissions)
requestsPython package (pip install requests)
First, you'll need to create some credentials so that the uploader can upload in your name:
- Generate an API key from your creator dashboard. Ensure you view the page from the group/user you want to upload to.
- Set the key settings to your needs, but make sure to add the
assetsAPI System, assigning it both thereadandwriteoperations. - Generate the API key and copy the secret somewhere safe.
Now that you have the key, make sure Python and the requests package are both installed (reopen the command prompt after installing).
- Download upload.py
- Open the script in any editor or notepad
- Modify the following variables (you can leave the last three as default):
API_KEY = "your-api-key"
CREATOR_TYPE = "group" # group or user, check under who you were creating the key
CREATOR_ID = "your-id-here" # your group or user ID, find it in Roblox URLs
UPLOAD_FOLDER = r"path-to-your-folder" # enter the path to the folder that contains your assets to upload
ASSET_NAME_PREFIX = "AutoUploaded_" # leave blank to retain the original filename
OUTPUT_FILE = os.path.basename(os.path.normpath(UPLOAD_FOLDER)) + ".json" # you can change this to a custom path, by default it creates a json with the filename of UPLOAD_FOLDER inside your user folder
FAILED_POLL_FILE = r"failed_polls.json" # omitting the path will save the file in your user folder- Save the script and open the command prompt, typing in and running
python path-to-uploader.pyAfter the script finishes uploading, you can retrieve your asset IDs from the OUTPUT_FILE you've set before
If some asset polls failed (e.g., due to API latency), download the retry script, fill in constants like before, and run:
python path-to-reuploader.pyIf there are still some failed uploads after retrying without errors from incompatible files, wait a bit and try again later, as it's a common occurrence in bulk uploading for Roblox's backend to hold up files for further processing.
{
"Amanda": "84072324915477",
"Bob": "84072324916455"
}Pull requests and suggestions welcome! For now, these scripts only handle image uploading, but they can be easily modified for uploading all types of assets, listed on these Open Cloud docs.