Haitham Assoli · print spoolerFILE MUBAH

ASSOLI — home[ Work ][ عربي ][ Hire me ]

$ cd ~/work && cat mubah.md

---
title: Mubah
role: Solo
year: 2026
status: Live
category: AI
stack: [Python, uv, ffmpeg, yt-dlp, Apple Silicon / MPS, Stem separation, Pose & person detection]
github: Source ---

Mubah

Turn any video into a permissible copy, on your own Mac.

A local-only Mac tool that removes music and blurs women full-body in a video, from a file or a URL. Nothing leaves the machine and working files are purged when the job finishes. Ships with an honest account of what it cannot do.

##Overview

Mubah is the desktop counterpart to Naqi: same intent, different constraints. A Mac has more memory and a real GPU, so it can run heavier models and take a whole file rather than working around a phone's limits.

It runs from a CLI with fast, balanced and thorough presets, accepts local files or anything yt-dlp can fetch, and can output audio only. Peak measured memory use is around 2.1 GB, so 8 GB of RAM is enough.

The README states the limitations before the features: music removal keeps all vocals, so songs come out a-cappella; the detectors are unreliable on animation; and the filtering is automated with a fail-safe bias, so output should be verified before it is relied on.

## Challenges

### Removing music without removing singing

Stem separation splits audio into vocals, drums, bass and other. Dropping everything but vocals removes the instruments, but a sung vocal is still a vocal, so songs survive as a-cappella rather than disappearing.

Rather than pretend otherwise, this is documented as a known limitation at the top of the README with muting sung vocals on the roadmap. Overstating what a stem separator can do would have been the easier and worse option.

### An uncertain detection has to fail one way

Detectors return confidence, not truth. Treating anything below the threshold as clear lets things through; treating everything above it as a person blurs men who are not the target.

The bias is set explicitly toward censoring: uncertain people get blurred, and an occasionally blurred man is the accepted cost. Choosing the failure direction on purpose is the whole design decision.

##Results

  • Fully local processing on Apple Silicon; working files purged after each job.
  • CLI with fast / balanced / thorough presets, file or URL input.
  • Limitations documented up front rather than discovered by users.
FOLD

$ next

GhaddSystem-wide on-device image filtering for Android.