Skip to content

Automatically filter, censor, and replace profanity, swear words, curse words, or custom terms in audio and video with a beep or bleep sound effect. Built to self-host with Python, AI, Streamlit, and Docker. Free and open source.

License

Notifications You must be signed in to change notification settings

neonwatty/bleep-that-shit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bleep That Sh*t! - A whisper app that bleeps out chosen words in YouTube videos | Product Hunt

Bleep That Sh*t! — In-Browser Audio & Video Censorship Tool

Note: This README describes the latest version of Bleep That Sh*t! — a 100% browser-based, privacy-first web app. For the legacy Python/Streamlit version, see the Legacy Branch.

Make someone sound naughty 😈 or make your content more Ad-friendly.

Bleep That Sh*t! lets you instantly transcribe and censor words in your audio or video files, with full control over what gets bleeped. No uploads, no servers, no installs — everything happens right in your browser.


How it works

  1. Upload your audio (MP3) or video (MP4) file.
  2. Transcribe using Whisper ONNX models (transformers.js) — all in-browser.
  3. Censor: Pick words to bleep (exact, partial, or fuzzy match).
  4. Preview & Download: Hear the result and save your censored file.

All processing is done locally in your browser using cutting-edge technologies. Your media and transcripts stay private — nothing is sent to a server unless you opt in.


Technology Highlights

  • Rails 8 + Vite + Vanilla JS: Modern, responsive web app with step-by-step UX
  • transformers.js + ONNX Whisper: In-browser speech-to-text with word-level timestamps
  • ffmpeg.wasm: Audio/video extraction and muxing, all in-browser
  • Web Audio API: Precise audio editing and bleep insertion
  • Plyr: Beautiful, interactive media playback
  • No Python, Docker, or ffmpeg install required
  • No server/cloud processing by default — privacy-first, local-only by design

Examples

Some examples of the end product (make sure to turn volume on, its off by default).

bleep-that-sht-examples.mp4

Let's look more closely at the last example above - below is a short clip we'll bleep out some words from using the pipeline in this repo. (make sure to turn on audio - its off by default)

bleep_test_og_cropped_low_res.mp4

Now the same clip with the words - "treetz", "ice", "cream", "chocolate", "syrup", and "cookie" - bleeped out

bleep_test_processed_cropped_low_res.mp4

Using the App

Just open the app in any modern browser — no installation or setup required.

  • Go to https://bleep-that-sh-t.app (or your self-hosted instance)
  • Upload your file, follow the step-by-step workflow, and download your censored result

App Walkthrough

The app guides you through:

  • Uploading audio or video
  • Selecting language and model
  • Transcribing to generate a word-level transcript
  • Entering words and matching modes (exact, partial, fuzzy)
  • Running matching to find words to censor
  • Choosing a bleep sound
  • Previewing and downloading the censored result

The UI is modern, privacy-first, and works on desktop and mobile.


Running Locally

You can run the app locally in two ways:

Option 1: Docker Compose (Recommended)

This is the easiest way to run the app without installing dependencies on your machine.

  1. Clone the repository:

    git clone https://github.com/neonwatty/bleep_that_sht.git
    cd bleep_that_sht
  2. Start the app with Docker Compose:

    docker compose up
  3. Visit http://localhost:3000 in your browser.

The app will be available at localhost:3000. You can stop the app with Ctrl+C and remove containers with docker compose down.

Option 2: Native Installation

If you prefer to run the app directly on your machine:

  1. Clone the repository:

    git clone https://github.com/neonwatty/bleep_that_sht.git
    cd bleep_that_sht
  2. Install Ruby dependencies:

    bundle install
  3. Install Node.js dependencies:

    npm install
  4. Set up the database:

    bin/rails db:create db:migrate
  5. Start the Rails server:

    bin/rails server
  6. Visit http://localhost:3000 in your browser.

Prerequisites

  • For Docker: Docker and Docker Compose installed
  • For Native: Ruby 3.4+, Node.js 18+, and PostgreSQL

About

Automatically filter, censor, and replace profanity, swear words, curse words, or custom terms in audio and video with a beep or bleep sound effect. Built to self-host with Python, AI, Streamlit, and Docker. Free and open source.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages