ShuttleCheck
Check media filenames, folder structure and deliverables against a written convention. Nothing in this package renames, moves or deletes anything.
On a production the naming convention is a PDF or a message in a chat, and every vendor on the job breaks it. Nobody finds out until a conform fails in post, or a lab rejects a delivery at four in the morning.
pip install shuttlecheck
shuttlecheck ui
Point it at a job you have already finished. It works out the convention you are already using, then shows you every file that does not follow it.
It reads the convention off your own files
Nobody can describe their naming convention in the abstract, and nobody should
have to. Point init at a finished job and it recovers the fields, tells you
how confident it is in each one, and flags anything it had to guess at.
FIELDS RECOVERED
{project} constant 100% NRD24
{day} integer 90% DAY1, DAY2
{stage} enum 80% HALLA, HALLB
{session} integer 90% SES001, SES002
{title} slug 85% opening-remarks, keynote
It handles conventions that disagree with themselves — several accepted forms per field, optional elements, free-text titles containing the separator — because real ones do.
Then it tells you what breaks it
SHUTTLECHECK CONFORMANCE REPORT
files scanned 412
conforming 398
errors 9 ingest will fail
warnings 5 inconsistent, will work
ERROR filename-mismatch (6)
D02/MAIN/MASTERS/AUT26_D02_MAINSTAGE_S114_v01.mov
the stage field does not match what the spec allows
Findings name the field at fault, not just the file. Errors mean an ingest will reject it; warnings mean it is inconsistent but will work. The two are never conflated, because a noisy report does not get read.
What it checks
| Names and folders | Against a pattern, with the offending field identified |
| Codec and container | Read from the file, not from the filename's claim |
| Resolution, frame rate, scan | Including 29.97 handled as 30000/1001 |
| Audio | Channel count, layout, sample rate, bit depth |
| Sidecars | Captions, checksums, metadata a deliverable must carry |
| Packages | Whether a session is short a master, a proxy, a cutdown |
| Portability | Illegal characters, reserved names, path length, case collisions |
| Unicode | Names that compare equal on one platform and not another |
Media inspection uses ffprobe when it is on your PATH. When it is not, those
checks are reported as skipped — never as passed. A silent skip is how a
conformance tool starts lying.
For live events, the running order does the work
An event agenda is structured data that exists weeks before anyone turns a camera on. Joined against time-of-day timecode, every recording names itself — stage, session, speaker, sponsor — with no inference of any kind.
It will also tell you when a filename is well-formed and still wrong: S007
recorded during S011 is a valid shape carrying a false claim, and only the
running order knows.
Checking a drive that arrived
If a drive was sealed with a convention on it, one command with no arguments checks both that it arrived intact and that the names conform:
shuttlecheck verify /Volumes/SHUTTLE01
No spec to be told about, no account, no connection.
What this package will not do
It will not rename, move or delete anything. That boundary is the point: it is the command a stranger will run on a live job, because running it cannot cost them anything.
Conforming files, the reversible journal, sealing drives and per-vendor specs are licensed separately as ShuttleCheck Pro. Asking for one of those commands here prints an explanation rather than an error.
Licence
Free to install and use. Not open source: no right to redistribute or modify. See https://mvrk.systems/shuttlecheck.
Made by MVRK Systems.
Metadata
Release files for shuttlecheck 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 | |
|---|---|---|---|
| shuttlecheck-0.1.0.tar.gz | 85.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shuttlecheck-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 155.9 kB
Release files / shuttlecheck-0.1.0.tar.gz
| Download URL | shuttlecheck-0.1.0.tar.gz |
|---|---|
| Size | 85.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0e244d5770a8aa086ac2bc275eb7811434f01348e200bdecca19a98833a86e02
|
|
BLAKE2b-256 checksum How to use checksums |
94d6e251eb180593222cfe81a30696804c3c6669d51336347293533154e85430
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 8, 2026.
Transparency logRelease files / shuttlecheck-0.1.0-py3-none-any.whl
| Download URL | shuttlecheck-0.1.0-py3-none-any.whl |
|---|---|
| Size | 70.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6fc4d654c2969a7841107d2202ac33effdc0655ae17e7f99438dc467cf8ecc27
|
|
BLAKE2b-256 checksum How to use checksums |
222bd7ea4cecfc102d5dfa6d07a3f729c411c05e9b47ff74cb533fbf188001ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 8, 2026.
Transparency log