-
Notifications
You must be signed in to change notification settings - Fork 0
Usage
Run osu-collect in a terminal. The app opens on the get maps tab with the collection field focused: paste an osu!collector link, pick a folder, activate the download button. Press ? anywhere for the key reference (Keybindings).
The source row at the top switches between three ways to get maps. Cycle it with space / ↵, or jump straight to one with 1-3.
| Source | What it does |
|---|---|
collection |
Downloads a whole osu!collector collection by URL or ID |
find |
Searches maps by criteria, no collection needed → Finding maps |
update |
Re-checks downloaded collections and fetches only what's missing → Updating collections |
Every source shares the same download section (mirrors, directory, threads, overwrite, video); run settings persist across a source switch.
| Field | What it does |
|---|---|
| Collection URL or ID | Accepts https://osucollector.com/collections/{id} or a bare ID. Resolves as you type and remembers recent collections. Required for the collection source.
|
| Download directory | Defaults to the last used folder. tab completes filesystem paths during editing. |
| Threads | Parallel downloads, defaulting to your CPU core count; 20 or fewer avoids rate limiting. Adjust with + / -. |
| Overwrite existing | Off (default) verifies and skips maps already on disk; on skips the recheck and redownloads every map. |
| Video | Includes beatmap videos (on by default); off downloads video-free where the mirror supports it. |
Custom mirror URLs and the built-in mirror toggles live on the config tab → Mirrors.
Before a run starts, maps already in your osu! library (stable osu!.db or the lazer client database) are skipped instead of re-fetched; they still land in the generated collection.db. Turn this off with download.skip_already_imported (Configuration).
Every download is MD5-hashed as it streams and checked for a valid archive shape before it lands (Configuration); a bad file is deleted on the spot and the map goes to the failures list below.
Every run lives on the downloads tab: active runs first, then finished ones, then past runs restored from disk. History survives restarts, cancelled runs included. A new download switches to this tab by default; turn off display.jump_to_downloads to stay where you are.
Delete a finished run or a past history entry from the list with d (an active run can't be deleted; cancel it with q first). It asks to confirm; space ticks "don't ask again" and skips the prompt from then on (re-enable via display.confirm_delete_history, Configuration).
Open a run with ↵ to see live per-map progress, download speed, ETA, rate-limit countdowns per map, plus a failure summary with reasons. Its keys are in Keybindings.
Failures persist per collection between runs. Three ways to retry them:
- press r inside the open run,
- accept the prompt on your next download of that collection (
download.retry_failed_on_download=ask/yes/no), - let rate-limited maps re-queue themselves after the auto-defer delay (Mirrors).
Getting started
Guides
Reference