Automatic parallel download of osu! beatmap packs from the official source. No more relying on 3rd party mirrors or outdated lists.
All commands are run in the main AutoBeatPack folder.
- Python >=3.9 (3.11-3.12 tested)
- Create virtual environment
py -3.12 -m venv .venv
(change3.12
to your Python version)
- Activate virtual environment
- PowerShell:
.venv\Scripts\Activate.ps1
- Command Prompt:
.venv\Scripts\activate.bat
- macOS / Linux:
source myvenv/bin/activate
- PowerShell:
- Install requirements
py -m pip install -r requirements.txt
The API key is used to get the latest list of beatmap packs from the osu! website every time the script is run.
- Go to osu! account settings and click "New OAuth Application"
- Enter the following values and then click "Register application":
- Application name:
AutoBeatPack
- Application Callback URLs:
http://localhost:7272
- Application name:
- Make a file named
api_keys.txt
in the main AutoBeatPack folder and paste the values:- Client ID on the first line
- Client Secret on the second line
- Activate virtual environment
- PowerShell:
.venv\Scripts\Activate.ps1
- Command Prompt:
.venv\Scripts\activate.bat
- macOS / Linux:
source myvenv/bin/activate
- PowerShell:
- Run script
py download.py
This script has several config profiles provided in config.txt
for quick usage. All the values can be edited and new profiles can be created. A profile is used by entering its name when prompted by the script.
- Number of the first pack to be downloaded
- Use a whole number between 1 and
LastPack
- Default:
1
- Number of the last pack to be downloaded
- Use a whole number greater than 1
- Default:
9999
- Maximum number of beatmaps to download at once
- Too high a number will cause all connections to drop (anti-spam), 1 to 10 recommended
- Default:
3
- Location to store downloaded beatmap packs
- Relative to the main AutoBeatPack folder OR anywhere if a full absolute path is given.
- Default:
beatpacks
- Beatmap pack type
- Choose by name from BeatmapPackType
- Default:
standard
- Game mode:
osu!
,osu!taiko
,osu!catch
,osu!mania
,loved
- Applies when PackCategory is set to
standard
. Modeloved
contains old Loved packs before the start of Project Loved. - Default:
osu!
- Add a section to
config.txt
starting with the name of the profile in square brackets:[CoolProfileName]
- Underneath, copy and edit variables you wish to change from the
DEFAULT
profile. Any missing variables will inherit its value fromDEFAULT
automatically.[CoolProfileName] StartPack = 750 BatchSize = 6 # This profile downloads the 750th and onward standard osu! beatmap pack # And does it groups of 6
- Save your changes before running
download.py
. Enter your profile name when prompted, without square brackets.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- TL;DR;NAL: Do whatever you want with this, as long as you allow others to do the same.
- Post an issue.
- Make a pull request if you're extra cool.
- Post on my support server.