SecurityprivacygeolocationADS-Baudioopen sourcepython
flyover-scrub strips the faint Doppler hum of passing planes from video audio so ADS-B flight tracks can't pin down where you filmed
The MIT-licensed Python tool comes from lizTheDeveloper, who built it after seeing a demo of the attack by colsto. It was tested on real iPhone clips and simulated ones, and its README says plainly that the results are not a guarantee.

Your phone’s location tag is the leak everyone knows about. The one you can’t hear is a propeller plane going over.
The attack behind flyover-scrub works like this, per the project’s README. A long-window spectrogram of your audio shows the Doppler curve of an aircraft, the pitch slide as it approaches and passes. Public ADS-B data, the transponder broadcasts planes send anyway, gives each aircraft’s path. The scorer then finds the place on the map where a plane on that path would have produced exactly that curve. The README credits a video by colsto for showing the method.
The numbers in the repo are the reason this isn’t a party trick. In the author’s phone tests, a Cessna nobody in the room could hear placed an indoor iPhone selfie to “61-134 m.” The attack survived 32 of 34 codec and filter chains, which is the README’s way of saying that compressing the video doesn’t wash it out. The README also says TikTok passes faint tones through untouched. (So much for “it got re-encoded.”)
The fix is blunt. In the protected band, 20 to 2000 Hz by default, flyover-scrub resynthesizes the background as fresh random-phase noise at the same local power, and it replaces long, slowly gliding narrowband ridges with floor-level noise. Aircraft are the target, but drones, traffic, HVAC and mains hum look the same to it, so they go too. Speech, music and sharp transients pass through. The README’s argument for not just turning the volume down is that a defense has to leave those bins with “no information about the curve.”
Running it is two commands. flyover-scrub input.mov -o output.mov scrubs the audio, copies the video untouched and strips metadata. flyover-scrub --check input.mp4 lists the long tonal ridges it finds and writes nothing, which is the one to try first.
Then the test results, which are worth reading because the author reports them without a victory lap. Across 12 runs, two real iPhone recordings with simulated flyovers mixed in, the unscrubbed clips at minus 30 dB were located within 0 to 461 meters, with the true spot ranked first in 4 of 6 cases. After scrubbing, the error rose to 1.1 to 5.1 km and the true location ranked 351 to 2,087, “no better than chance.” Two real flyovers matched to ADS-B tracks, a Cessna and an R44 helicopter, left no traceable line afterward.
There is a bill. Above 2 kHz the audio is essentially unchanged, and between 120 Hz and 2 kHz the tonal balance stays within about 1 dB. Below 100 Hz it drops 4 to 9 dB. Your bass takes the hit so the airport doesn’t take the credit.
The honest part of the README is the best part. It says the results are “evidence, not a guarantee.” It says the defense was tested only against the author’s own scorers, which were tuned on propeller tones using a small set of synthetic cases. Louder flyovers under continuous speech are the likeliest leak, because the tool keeps aircraft energy that overlaps loud foreground sound. Stereo channels are scrubbed independently, which slightly widens the room tone.
My guess is that this goes the way of every privacy trick. Metadata stripping became a checkbox in every upload form once enough people got burned, and an audio pass could follow it, probably built into editors or platforms as a “remove background tonal noise” toggle. A platform that already re-encodes every upload has the pipeline for it. Whether any will bother depends on someone showing a real person found this way, because right now the scariest demo is a controlled one.
What the tool can’t promise is that nobody builds a better attacker. The README says the defense has not been tested against learned detectors, or against several flights with a locked time offset.
Nobody has pointed a trained detector at it yet.