Haitham Assoli

← All projects

Mubah

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

0The facts

Role
Solo
Year
2026
Status
Live
Category
AI
Built with
Python · uv · ffmpeg · yt-dlp · Apple Silicon / MPS · Stem separation · Pose & person detection
Where to find it

1 · Overview

What it is, and why it exists.

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.

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.

1a · Challenges

Each problem got a card. Each fix got filed behind it.

1a1Removing 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.

1a1aWhat I did

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.

1a2An 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.

1a2aWhat I did

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.

2 · Results

Next project

→Ghadd

System-wide on-device image filtering for Android.

Next design — SpoolerSee all 14