Profanity filter

One recording.
A clean version
and an uncensored one.

Sapari detects profanity in your audio and captions, then lets you bleep, mute, or censor each independently. Ship the clean cut to YouTube and the uncensored to Patreon from the same timeline.

Start free trial

7 days · 30 AI minutes · No credit card

Detected
3 hits

THIS IS FUCKING UNREAL

Audio
BLEEP
Captions
PARTIAL

THIS IS F*****G UNREAL

Captions
FULL

THIS IS ******* UNREAL

The problem

Swearing is part
of how creators talk.

Doing this manually means finding each word, bleeping the audio, censoring the caption. For a ranty podcaster, that's hundreds of edits per episode.

Sapari detects profanity automatically and applies the treatment you pick.

Where it's a problem
YouTube

Penalizes profanity in the first 30 seconds for monetization.

TikTok

Flags explicit content, lowers reach.

LinkedIn

Tolerance is roughly zero.

Brand deals

Usually have explicit "no profanity" clauses.

Family content

Ship a clean version alongside the original.

How it works

Detect.
Classify.
Apply.

01 · Detect

Dictionary tokens

Across four languages with Unicode normalization, so leet-spelled or accented variants also match.

02 · Classify

Red card

Each detected token shows up on the timeline as a red edit card.

03 · Apply

Independent modes

You pick audio and caption modes independently.

Two modes, independent

Audio × Captions.

Audio
Off

Leave audio unchanged.

Mute

Silence the audio for the word's duration.

Bleep

Replace with a 1kHz tone matched to the word's duration. Classic censorship beep.

Captions
Off

Caption the word as spoken.

Partial

Censor mid-word. "f**k"

Full

Censor entirely. "****"

Combinations creators actually use
Bleep + Partial

Podcast: cleaner audio, visible but softened text.

Mute + Full

Silent cuts in audio, captions obscured entirely.

Off + Partial

Audio raw, captions soften for screenshots.

Languages

Four supported.

English
Spanish
Portuguese
French

Additional languages on the roadmap.

Review

Red cards.
Same pattern.

Profanity 02:14 · 0.4s

"…this is **** unreal…"

Detector flagged a name, place, or homograph? Dismiss the card. Missed one? Mark a manual edit with the censor action.

Before you ask

Common questions.

Is the dictionary customizable? +

Built-in dictionaries are fixed today. Custom blocklists (your own terms, allowlist false positives) are on the roadmap.

What if a word isn't profanity in my context? +

Dismiss the card and that specific instance stays uncensored.

Can I export a clean and uncensored version from the same project? +

Yes. Save two drafts with different profanity settings and export each separately. Both pull from the same analysis.

Does the bleep replace the entire word's duration? +

Yes. The bleep tone is trimmed to match the word's exact start and end, so lip-sync stays tight in caption-forward video.

How accurate is detection? +

For common profanity in supported languages, very high. For creative or obfuscated spellings, less reliable. Unicode normalization catches most common substitutions.

Ship two versions
from one timeline.

7 days. 30 AI minutes. No credit card.

Start free trial