Score Sort
Rank game, movie, or TV files and first-level folders by Metacritic scores.
For games with a platform selected or inferred, Score Sort first uses
Metacritic's all-time platform catalog, then optionally performs deeper product
page lookups with --advanced.
Platform catalogs and filename matches are cached system-wide:
%LOCALAPPDATA%\score-sort\metacritic_platforms.json
On macOS/Linux:
${XDG_CACHE_HOME:-~/.cache}/score-sort/metacritic_platforms.json
Setup
uv run score-sort --help
uv run python -m unittest discover -s tests
Usage
Rank a folder:
uv run score-sort "D:\sorted-roms\Nintendo - Nintendo DS (Decrypted)"
Force a fresh platform catalog lookup:
uv run score-sort "D:\sorted-roms\Nintendo - Nintendo DS (Decrypted)" --refresh
Sort by low score first, by name, or by reverse name:
uv run score-sort "D:\Games\Nintendo Switch" --sort score --direction asc
uv run score-sort "D:\Games\Nintendo Switch" --sort name
uv run score-sort "D:\Games\Nintendo Switch" --sort name --direction desc
Filter to a score range:
uv run score-sort "D:\sorted-roms\Nintendo - Nintendo DS (Decrypted)" --range "1-50"
uv run score-sort "D:\sorted-roms\Nintendo - Nintendo DS (Decrypted)" --range ">70"
uv run score-sort "D:\sorted-roms\Nintendo - Nintendo DS (Decrypted)" --range "<=40"
Override detection when needed:
uv run score-sort "D:\Media\Movies" --kind movie
uv run score-sort "D:\Media\TV Shows" --kind tv
uv run score-sort "D:\Games\PSX" --kind game --platform ps1
Use parallel lookup workers and advanced Metacritic product-page enrichment:
uv run score-sort "D:\sorted-roms\Nintendo - Nintendo DS (Decrypted)" --workers 6 --advanced
CLI
The CLI intentionally keeps a small surface:
folder
--refresh
--sort {score,name}
--direction {asc,desc}
--range RANGE
--kind {game,movie,tv}
--platform PLATFORM
--workers WORKERS
--advanced
First-level child folders are scanned automatically alongside known media file extensions, so there is no separate directory-scanning flag.
Project Structure
src/score_sort/
cli.py command-line parsing and orchestration
core.py rating models, title matching, Metacritic parsers, cache helpers
__main__.py enables python -m score_sort
Notes
Context detection walks up from the scanned folder through its parents. It
recognizes media folders such as Movies, TV Shows, Games, and ROMs, plus
common platform names like ds, ps3, psx, gba, and longer folder names
such as Nintendo - Nintendo DS (Decrypted).
Filename cleaning strips known ROM/media extensions and compound container
suffixes such as .nkit.iso, .xiso.iso, and .nkit.rvz before matching.
Supported Metacritic platform slugs include 3ds, dreamcast,
game-boy-advance, gamecube, meta-quest, mobile, nintendo-64,
nintendo-ds, nintendo-switch, nintendo-switch-2, pc, ps-vita, ps1,
ps2, ps3, ps4, ps5, psp, wii, wii-u, xbox, xbox-360,
xbox-one, and xbox-series-x.
Metadata
Release files for score-sort 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| score_sort-0.1.0.tar.gz | 43.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| score_sort-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 72.6 kB
Release files / score_sort-0.1.0.tar.gz
| Download URL | score_sort-0.1.0.tar.gz |
|---|---|
| Size | 43.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dae8b8d67ca77ffb5211a514e1b44aeccd002d8dbe89cf213a08dc8944b51a9a
|
|
BLAKE2b-256 checksum How to use checksums |
07d1d8afd8c60c1c953534def10bb2126a7e7a0f3621ab480ab00d711645c6dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.7
|
Release files / score_sort-0.1.0-py3-none-any.whl
| Download URL | score_sort-0.1.0-py3-none-any.whl |
|---|---|
| Size | 29.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9626644354afe172155abd929fc98654bc0f0b6bd4c438d9e2939c88c80d067d
|
|
BLAKE2b-256 checksum How to use checksums |
8abffff2c3ce3b68857dc5a485b86f682e93b905660dc3a8cd980a4c973d20c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.7
|
Security for score-sort 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.