Skip to main content

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)

Source distribution for score-sort 0.1.0
File Size Uploaded Provenance
score_sort-0.1.0.tar.gz 43.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for score-sort 0.1.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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