A collection of Python scripts to facilitate claiming and downloading the entire Quixel Megascans collection before it becomes fully paid in 2025.
The most reliable and easy way to get your Quixel token in Firefox I've found:
auth
cookie in the main window.token
(not refreshToken
) in the Parsed Value section in the right sidebar.Similar to the Firefox instructions:
auth
cookie in the main window.Each script (except get_all_basic_asset_metadata.py) requires a file called asset_metadata.json
to be present alongside them.
This file is initially created using get_all_basic_asset_metadata.py with the basic, barebones metadata (name and asset ID) for each asset from Quixel.
Then, using get_all_complete_asset_metadata.py, the full metadata for each asset is requested and saved to asset_metadata.json
- when this process finishes, the file is about 1.5GB in size.
For convenience, I've compressed the basic and complete stages of asset_metadata.json
into separate .tar.zst files. Zstandard compression is pretty awesome, so I'm able to just provide these in the repository with zero compromises.
If you're on Windows, something like 7-Zip-zstd should be able to decompress these.
I'd wager most people who are here are most interested in mass-claiming all assets to their Quixel account. To do this, run claim_all_assets.py with either a basic or complete asset_metadata.json
file present. There is no difference in functionality.
If you want to download all Quixel assets, run download_all_assets.py with a complete asset_metadata.json
file in the directory you want to download assets to. It will not work with basic metadata.
tqdm
to rich
to support things like a fancy spinner during checksum calculation and rich text.I initially developed these scripts in a private branch while I did silly things like committing my Quixel tokens to the branch. I also wanted to get these scripts in a decent enough state before releasing them, which did take a bit.
Please note that these scripts have been developed with an emphasis on archival purposes, so scripts like download_all_assets.py may not do what you want/expect at first. That script is straight and to the point - it downloads all assets to a single directory, and doesn't bother with things like asset categories. There is also (intentionally) no limit on retries.
A few assets have been removed from Quixel since I initially created these scripts. If you still have these assets in your asset_metadata.json
file, you can use the remove_asset_from_metadata.py script to remove them. The latest versions of the basic and complete stages of asset_metadata.json
do not have these assets. My thanks to @DR-Mello for getting me the IDs for the last 4 removed assets.
xgkmfcya
wfgpebvaw
we2rbizaw
vktudjsaw
vktffapaw