Go to file
2024-09-17 07:11:43 -07:00
src/saberlist Ensure each playlist is unique by storing a record of previously used songs. 2024-09-17 07:11:43 -07:00
tests Add Beatleader class, tests, and a fun playlist builder. 2024-09-16 22:35:20 -07:00
.gitignore Ensure each playlist is unique by storing a record of previously used songs. 2024-09-17 07:11:43 -07:00
BEATLEADER.md Add Beatleader class, tests, and a fun playlist builder. 2024-09-16 22:35:20 -07:00
LICENSE Initialize repo for beat saber playlist tool. 2024-05-27 23:08:33 -07:00
pyproject.toml Add Beatleader class, tests, and a fun playlist builder. 2024-09-16 22:35:20 -07:00
README.md Add Beatleader class, tests, and a fun playlist builder. 2024-09-16 22:35:20 -07:00

playlist helper

TODO: use https://github.com/megamaz/beatsaver-python

Usage

pipx install pleb-saberlist
player_scores_by_stars 
leaderboard_songs_by_stars 

Examples

leaderboard_songs_by_stars 
Enter the minimum starlevel to include on the playlist (Default: 6.0): 6.2
Enter the maximum starlevel to include on the playlist (Default: 6.3): 
Enter the filename for the playlist (Default: SS Leaderboard 6.2★): 
2024-07-09 16:06:13 DEBUG: Using selector: EpollSelector
2024-07-09 16:06:13 INFO: Fetching page 1/-1 of leaderboards
2024-07-09 16:06:13 INFO: Got 14 songs from leaderboard page 1
2024-07-09 16:06:13 INFO: Fetching page 2/3 of leaderboards
2024-07-09 16:06:14 INFO: Got 14 songs from leaderboard page 2
2024-07-09 16:06:14 INFO: Fetching page 3/3 of leaderboards
2024-07-09 16:06:14 INFO: Got 3 songs from leaderboard page 3
2024-07-09 16:06:14 INFO: Playlist written to SS Leaderboard 6.2★.bplist

Player songs by stars:

player_scores_by_stars 
2024-07-09 16:07:04 DEBUG: Using selector: EpollSelector
Enter the playerid (Default: 76561199407393962): 
Enter the minimum starlevel to include on the playlist (Default: 5): 
Enter the maximum starlevel to include on the playlist (Default: 6.0): 5.5
Enter the filename for the playlist (Default: Replay SS 5.0★): 
2024-07-09 16:07:14 INFO: Fetching page 1/-1 of player scores
2024-07-09 16:07:15 INFO: Got 100 scores from page 1
...
2024-07-09 16:07:19 INFO: Fetching page 8/9 of player scores
2024-07-09 16:07:20 INFO: Got 96 scores from page 8
2024-07-09 16:07:20 INFO: Playlist written to Replay SS 5.0★.bplist

Development

Clone the repo and install dependencies into a local virtual environment:

pip install --upgrade pip
pip install --editable .

Resources

Tips

Count results

jq '.songs | length' < playlist.bplist

Avoid printing covers in console.

jq 'del(.image)' < playlist.bplist

Find the most common mappers the player has played:

jq -r '.songs[].levelAuthorName' *.bplist | sort | uniq -c | sort -rn | head -n 10