Skip to main content

dashlib

A Python library that makes sending requests to the Geometry Dash servers and reading the responses easier. Special thanks to WylieMaster and everybody else contributed to the GDDocs as it was the only source of information for the endpoints.
Library Documentation

Implemented features

  • Level downloading.\
  • Level uploading. \
  • Level searching. \
  • GDLevel class (because the kind of level objects the server returns are unreadable)
  • User info fetching (using account ID).\
  • User class GDUser
  • Commenting\
  • Posting\
  • Deleting comments\
  • Deleting posts\
  • User comment history fetching\
  • User post fetching\
  • Level comment fetching\
  • Liking/disliking\

Features to implement

  • Getting users by Player ID\
  • Leaderboard fetching\
  • Level Leaderboard fetching\
  • Icon image generation\
  • Icon kit object

How to use

Installing

Use the following command to install this library-

python -m pip install dashlib

Level Downloading

Use the downloadLevel() function to download levels. Example code-

from dashlib import *
retray=downloadLevel(6508283) #1.5 seconds
print(retray.levelName) #ReTraY
print(retray.levelID) #6508283
print(retray.password) #1532211
print(retray.stars) #2

Alternatively, use fetchLevel() or fetchLevels as these are faster, but the level string (the data for the level),password,upload and update date, and the low detail mode status is not available.

from dashlib import *
retray=fetchLevel(6508283) #0.5 seconds
some_levels=fetchLevels([128,6508283,4454123]) #still 0.5s as this is in a single request.
print(retray.levelName) #ReTraY
print(some_levels[0].levelName,some_levels[1].levelName,some_levels[2].levelName) #1st level, ReTraY, Sonar

Level Searching

Use the searchForLevels() function to search for levels. Example code-

res=searchForLevels(type=TYPE_SEARCH,page=0,query="bloodbath",difficultyFilter=FILTER_DEMON,demonFilter=DEMONFILTER_EXTREME)
print(res[0].levelName) #Bloodbath
print(res[0].levelID) #res[0].levelID

Parameters


type: Use TYPE_SEARCH,TYPE_MOSTDOWNLOAD,TYPE_MOSTLIKE,etc constants to set the type of the search,
page: The page number.
query: For TYPE_SEARCH, this is the search query,
For TYPE_USERSLEVELS, this is the user ID of the user's levels to search,
For TYPE_LISTOFID, this is a comma seperated list of level IDs
difficultyFilter: Use FILTER_NA and FILTER_EASY to FILTER_DEMON or None(default) to filter the difficulty
demonFilter: If difficultyFilter is FILTER_DEMON, then use DEMONFILTER_EASY,DEMONFILTER_MEDIUM,...,DEMONFILTER_EXTREME to filter which kind of demon to search, or use None(default).
length: Use LENGTH_TINY to LENGTH_XL and LENGTH_PLAT to filter by level length, or use None (default).
uncompleted,completed,featured,original,twoPlayer,coins,epic,legendary,mythic,noStar,star:
If any of these are True, filters by levels that have the respective property. If False, does not apply that filter.
(so if completed=False it will show BOTH the levels that are completed and those that are not.)
completedLevelIDs: If using uncompleted or completed=True, this list specifies which level IDs are completed. Otherwise, it does not matter.
followedUsers: If type=TYPE_FOLLOWED, this is a list of user IDs that are followed.\

User info fetching

You can get user info using the getUserInfo() function. Example-\

from dashlib import *
user=getUserInfo(14134) #AeonAir's account ID.
print(user.username) #AeonAir
print(user.diamonds) #45396 (however many diamonds he has)
print(user.secretCoins) #164
print(user.stars) #40840
print(user.moons) #456

Credits and resources

Special thanks to the people who maintain and have contributed to the GDDocs. This was pretty much the only source of information.
Also thanks to Colon for making GDBrowser. I did not want to open geometry dash every time I wanted to check something. (and it also would have lagged my potato laptop)

Metadata

Release files for dashlib 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dashlib 0.2
File Size Uploaded
dashlib-0.2.tar.gz 15.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dashlib 0.2
File Interpreter ABI Platform
dashlib-0.2-py3-none-any.whl Python 3 none any Details

Total release size: 29.9 kB

Release files / dashlib-0.2.tar.gz

Download URL dashlib-0.2.tar.gz
Size 15.6 kB
Tags Source
SHA-256 checksum
How to use checksums
59ff932de5c9d308cdea0f5061dc2e54fd5049deae7067353bafc5b5d5634e50
BLAKE2b-256 checksum
How to use checksums
c7e170fc9fd9adbd445fe0a91c966c329979296d7a7efc5aeb7c5d766faf9949
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.10

Release files / dashlib-0.2-py3-none-any.whl

Download URL dashlib-0.2-py3-none-any.whl
Size 14.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79416f46f1760b6ac466234c4b204ac4f673bf9f4bf8ad0ed17581676b357ecc
BLAKE2b-256 checksum
How to use checksums
bc600cfd45e47bcf25323ff80e9a4bf1b0dbabf0e9d15550f942113950cf8d6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.10

Release history Release notifications | RSS feed

This release

0.2 This release

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page