Sketchfab client
Project description
Sketchfab API Client
Getting started
Install the module:
pip3 install sketchfab
This code lets you download all your models with their directory
import os
import sketchfab
sfc = sketchfab.Client('YOUR-API-KEY')
for c in sfc.collections():
print("Collection:", c)
col_dir = os.path.join("download", c.name)
os.makedirs(col_dir, exist_ok=True)
for m in c.models():
model_dir = os.path.join(col_dir, m.name)
print(f" Model: {m.name} ({model_dir})")
if not os.path.exists(model_dir):
os.rename(m.download_to_dir(), model_dir)
Which will give you something like that:
Collection: Collection{empty collection}
Collection: Collection{housing-updates}
Model: tableKitchen80x200 (download/housing-updates/tableKitchen80x200)
Model: kitchenModSink120x65x210 (download/housing-updates/kitchenModSink120x65x210)
Model: kitchenModSink60x65x90 (download/housing-updates/kitchenModSink60x65x90)
Model: kitchenModFridge60x65x210 (download/housing-updates/kitchenModFridge60x65x210)
Model: kitchenModCorner65x65x210 (download/housing-updates/kitchenModCorner65x65x210)
Model: kitchenModBasic10x65x90 (download/housing-updates/kitchenModBasic10x65x90)
Model: kitchenModWasher60x65x210 (download/housing-updates/kitchenModWasher60x65x210)
Model: kitchenModSink60x65x210 (download/housing-updates/kitchenModSink60x65x210)
Model: kitchenModBasic20x65x210 (download/housing-updates/kitchenModBasic20x65x210)
Model: washbasin120x60 (download/housing-updates/washbasin120x60)
Model: kitchenModWasher60x65x90 (download/housing-updates/kitchenModWasher60x65x90)
Model: bedDouble140x200-2 (download/housing-updates/bedDouble140x200-2)
Model: simpleBed90x200 (download/housing-updates/simpleBed90x200)
Model: wcFloor70x40 (download/housing-updates/wcFloor70x40)
Model: kitchenModBasic60x65x90 (download/housing-updates/kitchenModBasic60x65x90)
Model: kitchenModDishWasher60x65x90 (download/housing-updates/kitchenModDishWasher60x65x90)
Model: kitchenModSink120x65x90 (download/housing-updates/kitchenModSink120x65x90)
Model: kitchenModStove60x65x210 (download/housing-updates/kitchenModStove60x65x210)
Model: kitchenModStove60x65x90 (download/housing-updates/kitchenModStove60x65x90)
Model: washbasin60x60 (download/housing-updates/washbasin60x60)
Model: tableKitchen80x140 (download/housing-updates/tableKitchen80x140)
Model: shower90x90 (download/housing-updates/shower90x90)
Model: kitchenModDishWasher60x65x210 (download/housing-updates/kitchenModDishWasher60x65x210)
Model: kitchenModBasic10x65x210 (download/housing-updates/kitchenModBasic10x65x210)
Why
- I couldn't find one
- The sample codes from sketchfab website are pretty much unuseable
Choices
- The API is designed to be as simple as possible to use
Known issues
-
The code might not be the best. I'm definitely interested by any feedback you can provide me on that.
-
The official swagger-based documentation is not respecting the API behavior. As such you might find that:
- The library enforces some strange rules (like passing a model when creating a model)
- The library doesn't properly use the API (like listing the models of a collection through search)
In both case it was by trial and error that I discovered how to use the API. If you find better ways to do it I'm interested.
-
The CLI is pretty much useless at this stage
Missing APIs
You can submit pull-requests or ask me to implement any feature that you need and might be missing.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sketchfab-0.0.2.tar.gz
(5.8 kB
view hashes)
Built Distribution
Close
Hashes for sketchfab-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a2cfdfb53c00fd4542a22ad8dae62745e663b297cef89d1b1d8ec2a1e93a0df |
|
MD5 | 40b94456e50b50d2b050bd187614dbd5 |
|
BLAKE2b-256 | a7ac26b28582a903db1f114497c4c9a9d342e33757c1627b82ee5d6d9c4f87bf |