How to match your podcast to apple podcasts' -16 lufs standard
- Step 1Drop the episode — Drop the edited episode (WAV is ideal; MP3/M4A also work). FFmpeg reads it in-browser. Process the final mixdown so the -16 measurement reflects the published audio.
- Step 2Select Apple Podcasts (-16 LUFS) — Choose Apple Podcasts (-16 LUFS) in the Loudness target dropdown — that's
loudnorm=I=-16:TP=-1:LRA=11, matching Apple's reference. (The other presets target -14 or -23.) - Step 3Choose output format — MP3 at 192 kbps is the typical podcast deliverable; pick WAV/FLAC if you'll add chapters or dynamic ads afterward. No separate bitrate control — MP3/M4A export at 192 kbps.
- Step 4Run the two-pass match — Click run. Pass one measures the episode; pass two corrects it to -16 with the -1 dBTP limit. An hour-long episode processes in seconds to tens of seconds depending on CPU.
- Step 5Audit the starting loudness — The report shows the episode's source Integrated LUFS, Range, True peak and Threshold — e.g. -12 LUFS reveals an episode that was too hot. Note these to audit feed consistency.
- Step 6Repeat per episode and publish — Run every episode through the same -16 preset for a uniform feed. Watch for the Dynamic-mode notice on highly dynamic episodes (see edge cases), then download and upload to Apple Podcasts Connect / your host.
Apple Podcasts vs other targets
Why -16 for Apple, and where the other presets fit. Filters from lib/audio/audio-engine.ts.
| Preset (UI label) | Target | True peak | Notes |
|---|---|---|---|
| Apple Podcasts (-16 LUFS) | -16 LUFS | -1 dBTP | Matches Apple's playback reference |
| Spotify / YouTube (-14 LUFS) | -14 LUFS | -1 dBTP | 2 LU louder; Spotify will pull a -16 file slightly up |
| Amazon Music (-14 LUFS, -2 TP) | -14 LUFS | -2 dBTP | Music-oriented, stricter peak ceiling |
| EBU R128 broadcast (-23 LUFS) | -23 LUFS | -1 dBTP | Radio syndication, not podcast apps |
How podcast apps treat a -16 LUFS master
Master once to -16 and most apps deliver it cleanly; the louder-targeting apps nudge it up a touch.
| App | Playback target | Effect on a -16 master |
|---|---|---|
| Apple Podcasts | ~-16 LUFS | Plays as-is — perfect match |
| Spotify (podcasts) | ~-14 LUFS | Turned up ~2 dB toward -14 |
| Overcast / Pocket Casts | App-managed | Apps may apply their own levelling on top |
| No-normalisation player | n/a | Plays your -16 master directly |
Output formats for an Apple Podcasts feed
Encoder selected from the output extension; MP3 192 kbps is the standard deliverable.
| Format | Encoder | Bitrate | Use for |
|---|---|---|---|
| MP3 | libmp3lame | 192 kbps | Standard podcast host upload |
| M4A (AAC) | aac | 192 kbps | AAC delivery / Apple ecosystem |
| WAV | pcm_s16le | uncompressed | Pre-publish editing (chapters/ads) |
| FLAC | flac | lossless | Lossless master archive |
Cookbook
Feed-standardisation scenarios. Report figures are SOURCE measurements (the episode before correction); every episode is brought to -16.
Episode mastered too hot at -12 LUFS
An over-cooked episode at -12 LUFS gets pulled down to -16. Doing it yourself means Apple doesn't have to, and your dynamics stay intact.
Source report: Integrated : -12.1 LUFS Range : 6.3 LU True peak : -0.5 dBTP Preset: Apple Podcasts (-16 LUFS) -> -3.9 dB Result: -16 LUFS, peaks pulled under -1 dBTP.
Episode too quiet at -21 LUFS
An under-recorded episode boosted to -16. Same preset, opposite direction — the feed stays uniform.
Source report: Integrated : -21.0 LUFS Range : 8.0 LU Preset: Apple Podcasts (-16 LUFS) -> +5 dB Result: -16 LUFS. Check noise floor after the boost; if hiss is audible, denoise first: /audio-tools/ai-noise-reducer
Standardising an inconsistent back-catalogue
Older episodes were mastered by ear and vary widely. Re-run each through the -16 preset for a uniform feed.
Ep 10 source: -13 LUFS -> -3 dB Ep 11 source: -18 LUFS -> +2 dB Ep 12 source: -22 LUFS -> +6 dB All re-exported at -16 LUFS, MP3 192k -> listeners never adjust volume between episodes.
Highly dynamic narrative episode hits dynamic mode
A documentary-style episode with whispered and loud sections has a wide LRA, triggering the Dynamic-mode notice. Level first for a clean -16 match.
Source report: Range = 16.0 LU (> LRA 11)
-> Dynamic-mode banner; output may sit off -16.
Step 1: speech-leveler to tame the swings
/audio-tools/speech-leveler
Step 2: Apple Podcasts (-16) -> clean linear -16.Two-host show with mismatched mic levels
If hosts were recorded at different levels, level the tracks before mixdown, then normalise the final mix to -16 so both sit right.
Pre-mix: balance host A vs host B with compression/leveling
/audio-tools/audio-compressor
Mixdown -> loudness-normalizer, Apple Podcasts (-16)
Result: balanced mix at the Apple standard.Edge cases and what actually happens
Highly dynamic episode triggers dynamic mode
By designNarrative or music-heavy episodes with a loudness range wider than 11 LU make FFmpeg switch to per-window dynamic correction; a yellow Dynamic mode banner appears and the result may sit slightly off -16. For a true linear match, reduce dynamics first with the speech-leveler or audio-compressor, then re-normalise.
-16 master sounds quieter than a friend's -14 podcast
Expected-16 LUFS is 2 LU quieter than -14 by design. On Apple Podcasts both play at the same level because Apple normalises to ~-16. If you mostly publish to Spotify (which targets -14), consider the Spotify/YouTube preset instead — but -16 is the safe cross-platform podcast standard.
Report shows the starting loudness, not -16
ExpectedThe report is the source measurement (e.g. -12 or -21), which is exactly what you want for auditing feed consistency. Re-drop the normalised output to confirm it now reads ~-16 LUFS.
Re-normalising an already-published MP3
Quality lossPulling old published MP3s back to -16 re-encodes them through libmp3lame at 192 kbps — a second lossy generation. For spoken word the loss is minor, but if you still have the WAV masters, normalise those for the cleanest result.
Dynamic ads inserted after normalising
Mismatch riskIf your host injects dynamic ads at a different loudness, your -16 episode and the ad won't match. Normalise the episode body to -16 and ensure ad creatives are also -16 LUFS, or the listener hears a jump. The normalizer can't control host-side ad insertion.
Video podcast dropped
Audio onlyThe tool accepts video but outputs audio only. For a video podcast, extract audio with video-to-mp3, normalise to -16, then re-mux in your editor — the audio file alone won't carry the picture.
Want a target between -16 and -14
Not availableOnly the four presets exist — no custom LUFS field. For Apple Podcasts, -16 is the correct standard, so the preset matches the real target. If you publish primarily to Spotify, use the -14 preset instead.
Clipped source can't be saved
Cannot fixIf an episode was recorded clipped, normalising to -16 changes the level but can't restore destroyed peaks; the distortion remains. Re-record at lower gain. Normalisation prevents clipping when adjusting, but won't undo prior clipping.
File over the tier limit
RejectedAudio limits: 50 MB / 30 min (Free), 200 MB / 120 min (Pro), 100 GB / unlimited (Pro + Media / Developer). loudness-normalizer is a Pro + Media tool. Long episodes can hit the duration cap on lower tiers — split with audio-splitter or upgrade.
Frequently asked questions
What loudness does Apple Podcasts use?
Apple Podcasts normalises playback to roughly -16 LUFS. Master each episode to -16 LUFS integrated with a -1 dBTP true-peak ceiling — the Apple Podcasts preset here does exactly that (loudnorm=I=-16:TP=-1:LRA=11) — and your show plays back at the same level as other well-mastered podcasts.
How do I match all my episodes to the same loudness?
Run every episode through the same Apple Podcasts (-16 LUFS) preset. Because the target is fixed, a -12 LUFS episode and a -21 LUFS episode both end at -16, so the feed is uniform and listeners never adjust the volume between episodes.
Should I master to -16 or -14 for podcasts?
-16 LUFS is the standard cross-platform podcast target (it matches Apple Podcasts and plays fine on Spotify, which nudges it up to -14). If your show is published primarily on Spotify or is music-heavy, the -14 Spotify/YouTube preset is reasonable, but -16 is the safe default for most feeds.
Will Apple change my loudness even if I master to -16?
If you deliver -16 LUFS, Apple's normalisation has essentially nothing to do — it's already at the reference. Deliver something far from -16 and Apple adjusts it on playback, which is exactly the inconsistency you avoid by mastering to -16 yourself.
Why does the report show -12, not -16?
The report is the source loudness — how the episode came in before correction. -12 means it was mastered too hot. To confirm the output hit -16, re-drop the normalised file and read its new source measurement.
Is my episode audio uploaded?
No. Everything runs in your browser via FFmpeg 8.1 WebAssembly — processed on your CPU and offered as a download. Nothing reaches a server, so raw and unreleased episodes stay private.
What's the Dynamic-mode warning on my narrative episode?
Narrative episodes with big quiet-to-loud swings have a wide loudness range (LRA). When it exceeds 11 LU, FFmpeg uses dynamic correction and warns you; the result may sit slightly off -16. Level the episode first with the speech-leveler for a clean linear -16 pass.
Can I normalise a video podcast's audio to -16?
Yes — drop the video, but the output is audio only. Extract audio with video-to-mp3, normalise to -16, then re-mux into the video in your editor to keep the picture in sync.
Does normalising fix two hosts at different volumes?
Not by itself — normalisation sets the overall episode loudness, not the balance between hosts. Balance the host tracks first with the audio-compressor or by leveling each track, then normalise the final mix to -16.
Should I export MP3 or keep WAV?
MP3 at 192 kbps is the standard podcast upload and what this tool produces. If you still need to add chapters or dynamic ad markers, export WAV/FLAC, finish editing, then encode MP3 at the end to avoid stacking lossy generations.
What about ads at a different loudness?
If your host inserts dynamic ads, normalise your episode body to -16 and make sure the ad creatives are also -16 LUFS — otherwise listeners hear a jump at the ad break. The normalizer controls your episode, not host-side ad insertion.
How long an episode can I process?
Duration limits are 30 min (Free), 120 min (Pro), unlimited (Pro + Media / Developer). loudness-normalizer requires Pro + Media. For longer shows on a capped tier, split with audio-splitter first.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.