Skip to content

Cens-arr

Cens-arr
  • Home
  • Shows
  • Movies
  • Upcoming
  • Queue
  • Censored
  • Settings

Home

What landed lately, and what censoring has cost so far.

Episodes that just landed

Films that just landed

Shows

Movies

Upcoming

Sonarr's calendar. Switch on Censor new episodes for a show and each episode is censored as it downloads.

Queue

One file at a time, in this order.

Censored

Every file with a censored track right now, and what the extra tracks cost in disk.

Remove every censored track

Takes the censored track out of every file. The original audio is never touched, but putting them back means censoring everything again.

Settings

In the order things need doing. Nothing is written until you save.

  • Your library
  • What gets silenced
  • Listening
  • Muting
  • Second opinion
  • Media server
  • Advanced
  • Who can use this

1Your library

Where the list of shows comes from. Films always come from your media server (Media server, below). Read-only: Cens-arr never changes anything in either.

Library source

Sonarr shows

Sonarr → Settings → General.

Can Cens-arr open the files?

Your library says where each file is and Cens-arr opens that exact path, so mount the media into this container at the paths the library reports.

2What gets silenced

Four lists, each switchable. Matching is whole-word, so “class” and “cockpit” are never caught by the words inside them. A phrase mutes only its profane word: “oh my god” silences “god” and leaves “oh my”.

Word lists

Always silence

Words this household does not want, on top of the lists.

Never silence

A name or word that keeps getting caught. Wins over every list.

Exceptions for one show or film

Never silenced in that show or film only, so a character called Dick keeps his name without the insult going unmuted everywhere else. Added from a job's details: That was wrong → Never mute … in this show.

3Listening

Run the speech model here, or hand the audio to a Whisper server you already have.

Where Whisper runs

The server must return word-level timestamps. Cens-arr mutes half a second around one word; with line timings it would blank four seconds to catch one syllable. The test checks for this.

Audio goes over as 16 kHz mono WAV, about 85 MB for a 45-minute episode. Keep it on your own network.

Off is recommended. On one 43-minute episode it skipped 19 real swears and saved no time.

Why only medium.en?

It is what everything here was tuned against. large-v3 took 50% longer and caught fewer swears: it favours tidy prose, and tidy prose smooths swearing away. small.en is about twice as fast and misses noticeably more.

model: in config.yaml still takes any faster-whisper name if you disagree. Only .en models make sense here.

4Muting

How the silence is applied. The defaults are fine; change these if a mute clips a neighbouring word or lets a syllable through.

s

s

s

Applies to tracks written from now on. Files censored under an older name are still recognised. Don't reuse a name your files' own tracks already have.

5Second opinion optional

Every censor run reads the subtitles first: the file's own, an .srt beside it, the media server's, another copy's, or ones the media server searches for. A swear they have is muted even where Whisper missed it; a swear they soften (“Whoa!” for “Oh, shit!”) is muted; and where they have a harmless word that sounds like the swear - “caulk” where Whisper heard something ruder - it is left in, marked worth a listen. A second opinion here checks those before they are left in: another Whisper server listening to that moment again, or your own model reading the sentence.

Another Whisper server

A bigger model than the one listening the first time is the point.

Your own model

Most people can leave the model off. Across 196 checks on a real library it changed the outcome twice, at 30–100 seconds each. It is used for sound-alikes when there is no second Whisper server, and for the words below in a file with no subtitles. Without either, a sound-alike is left in, marked worth a listen, and the words below are simply muted.

Check these words in context

Ollama only.

6Media server optional

Where films come from, and where Cens-arr looks for subtitles a file does not carry itself. Also tells Plex or Jellyfin a file changed, so the censored track shows up at once, and can pause censoring while the server transcodes on the same GPU. The censored track works in both either way: it is an ordinary extra audio stream with a name.

Media server

Using the address and key from Your library: the same server does both jobs.

Plex

Plex's support pages explain finding your X-Plex-Token.

Jellyfin

Jellyfin → Dashboard → API Keys.

7Advanced

Rarely worth changing.

0 lets ffmpeg decide. A low cap keeps playback smooth.

For the built-in Whisper only.

Ollama only. Released after the last question either way.

Saved beside the file as .censarr-backup. Doubles the disk each censored file takes.

8Who can use this

Unsaved changes

  • Upcoming
  • Censored
  • Settings