release-lint

Drop your tracks and cover art. Find out exactly what your distributor will reject — before you spend a week waiting for the rejection email.

🔒 Runs entirely in your browser — your files are never uploaded
Drop your release folder here
or tap to choose files — WAV, FLAC, AIFF, MP3, M4A, JPEG, PNG

release-lint Pro — $19 once, yours forever

The free checker handles one distributor and up to 4 files. Pro is for shipping a whole release:

Unlock Pro — $19
Already bought? Enter the receipt number from your Stripe receipt (looks like 2451-1234):
✓ Pro unlocked on this device. All profiles, unlimited files, release checks and report export are on.
What it actually checks, and why each one matters

Audio

Container (WAV/FLAC/AIFF/MP3/M4A) against what the distributor accepts · 32-bit float WAVs (the single most common silent rejection — most DAWs export float by default) · sample rate and bit depth · mono vs stereo · truncated files whose header claims more audio than the file contains · MP3 bitrate · suspiciously short tracks.

Cover art

Exact pixel dimensions and squareness · minimum and maximum size per distributor · CMYK JPEGs (exported from Photoshop's print presets — rejected or colour-shifted) · alpha channels in PNGs · progressive JPEGs · indexed-colour and 16-bit PNGs · file size limits.

How

It parses the actual file headers — RIFF chunks, FLAC STREAMINFO, AIFF COMM, MPEG frame headers, JPEG SOF markers, PNG IHDR — byte by byte, in your browser. No upload, no server, no account. Same engine as the release-lint CLI.

Honest limits

It reads headers, not audio content. It won't catch clipping, DC offset, loudness or silence at the top of a track. Distributor specs change; these profiles reflect published requirements and err toward the strict side so you don't get rejected.

Distributor spec cheat-sheet

The requirements these checks enforce. Strict side on purpose — a file that passes the strictest column passes everywhere.

  DistroKid Apple Music Spotify Bandcamp
Audio formats WAV, FLAC, AIFF, MP3, M4A WAV, FLAC, AIFF WAV, FLAC, AIFF WAV, FLAC, AIFF
Bit depth 16 or 24-bit integer PCM. 32-bit float is rejected everywhere.
Sample rate 44.1 kHz standard, up to 192 kHz 44.1 or 48 kHz, up to 192 kHz 44.1 kHz standard, up to 96 kHz 44.1 kHz standard, up to 192 kHz
Cover art size 3000×3000 min, square 3000×3000 min, square 3000×3000 min, square 1400×1400 min, square
Art file size 20 MB max no hard cap no hard cap 10 MB max
Art colour RGB JPEG or PNG. CMYK JPEGs are rejected everywhere — Photoshop's print presets export CMYK by default.

Why releases get rejected

Why did DistroKid reject my song?

By far the most common cause is a 32-bit float WAV. Ableton, Logic, FL Studio and Reaper all offer 32-bit float as an export option and several default to it. The file plays perfectly on your machine, so nothing looks wrong — it just fails on ingest, or gets silently converted with a level change. Export 24-bit (or 16-bit) integer PCM instead. The second most common cause is cover art that is CMYK or under 3000×3000.

What sample rate and bit depth should I upload?

44.1 kHz / 24-bit is the safe answer for streaming everywhere. 44.1 kHz is the streaming standard, so anything else gets sample-rate converted somewhere in the chain — which is fine when done well, but it is one more thing that can go wrong. Never upload 32-bit float.

What size does Spotify cover art need to be?

Perfectly square, minimum 3000×3000 pixels, RGB JPEG or PNG. Spotify ingests art through your distributor, so the distributor's limits apply too. 3000×3000 RGB JPEG clears every major platform at once.

Why was my cover art rejected when it looks fine?

Usually the colour profile. A JPEG saved from a Photoshop print preset is CMYK, which every distributor rejects — and it previews normally on your own screen, so there is no visual clue. Other invisible causes: an alpha channel in a PNG, a progressive-encoded JPEG, or an indexed-colour PNG. Convert to RGB and re-save as a baseline JPEG.

Are my files uploaded anywhere?

No. Every check runs in your browser — the page reads the file headers locally and never makes a network request with your data. There is no server to upload to and no account to create. You can load the page, disconnect from the internet, and it still works.