I've been flying DJI drones for about a year. In that year I shot 236 flights — beaches on the Florida coast, parks around Atlanta — and next to every video file, the drone writes a sidecar file with an .LRF extension. I never opened one. For a year they scrolled past in Finder the way unrecognized files do: present, ignored, assumed to be somebody else's problem.
On the evening of June 16th, at 8:09, I typed this into an AI coding agent:
"I have a dji drone (mini 4 pro and neo 2). every video they shoot includes a sidecar file that's an lrf file… I'm not sure what those files do, but i'm assuming they have details about the flight. I'd like to build some type of visualization using them, but figured I'd start here and we can have a conversation about what's possible"
That's the founding document. "I'm not sure what those files do." I've been an engineer for thirty years, and what I brought to this moment was a hunch and a free evening.
Minute one: the hunch looks wrong
The first reply corrected my assumption.
LRF stands for "Low Resolution Footage." It isn't a flight-data file. It's a proxy video — a small 720p copy of the footage that the DJI Fly app uses so a phone can scrub 4K smoothly. A tiny mp4 with a strange extension. My "flight data" was just smaller copies of videos I already had.
A year ago, the evening ends here. I google "LRF file," find a forum post that says "low-res proxy, safe to delete," and go do something else. The idea doesn't die because it was wrong. It dies because the next question costs too much to ask.
Minute two: "don't lose hope"
The reply didn't stop at the definition. At 8:11pm:
"But don't lose hope — DJI doesn't throw the telemetry away. The GPS/altitude data is typically still muxed into the video as a hidden data track, and on a lot of DJI models that same data stream is embedded inside the LRF file itself."
A hidden data track, inside the file I'd ignored for a year. I had never turned on DJI's telemetry subtitles. The claim was that the data might be in there anyway.
I dropped a 34-second test clip into the folder.
Minute seven
8:15pm, the probe: both files carry an unidentified data stream. 8:15:40:
"Big finding: the data stream is DJI's protobuf telemetry — note the header
dvtm_Mini4_Pro.proto… The flight data is in there."
8:16:01, seven minutes after my opening message:
"Exiftool fully decodes it. This is everything we hoped for and more. From your 34-second clip it pulled 1,022 telemetry samples (~30/sec — essentially per-frame), each with GPS latitude/longitude, absolute altitude, relative altitude, per-sample timestamps, camera shutter speed, and more."
Thirty samples a second. GPS, altitude, drone attitude, gimbal angle, ISO, shutter — per frame, in every clip I'd shot all year, in the files I'd been ignoring.
Worth being precise about what happened here, because it's the thesis of this whole series. Nothing about the discovery required AI. The data was always there. Exiftool — a 25-year-old open-source tool — could always decode it. What changed is the price of finding out. The old price was a specialist: someone fluent in media containers who would think to probe for data tracks, dump the binary, recognize a protobuf header, and know which tool speaks DJI's dialect. Nobody hires that person over a hunch. The new price was seven minutes and a question in plain English. When finding out gets that cheap, you ask things that were never worth asking. Some of the answers turn out to be companies.
Minute seventeen
We kept going. An extraction script, then a web page: the proxy video on one side, a map on the other, an altitude chart underneath, a HUD — all synced to the video clock.
At 8:26pm it took a screenshot of the result:
"That's the product — and it looks great. The screenshot shows your actual flight over Glover Park / Marietta Square, GA: the drone descending from the NW corner down toward the square, video synced at 0:20, full HUD (40 m alt, 39 km/h), and the descent curve on the altitude chart."
"That's the product." Neither of us knew yet how literally that would turn out to be true.
The rest of the evening
From the log, in order. The whole evening was thirteen messages from me.
9:35pm — the architecture that still runs the product. The LRF is already a browser-playable video, and the telemetry extracts to ~300KB of JSON. So the multi-gigabyte originals never need to enter the system at all. The library is built entirely from files DJI treats as disposable. That decision — made about ninety minutes in — is still why the whole thing is fast and cheap to host.
The bugs. GPS jitter claimed my Mini 4 Pro hit 119 mph; it tops out around 36. The fix was smoothing speed over a half-second window. Exiftool silently reformats timestamps past thirty seconds from 30 s to 0:00:30; the parser choked and dropped the last four seconds of every flight until that was found. Contrary to popular belief, debugging is still very much necessary in AI driven engineering. The difference is it's debugging with a loop measured in minutes.
10:23pm — the whole year, imported. "Gallery looks fantastic — 236 flights (mostly a lot of Florida coastline)." Every flight I'd kept, with maps, paths, altitude profiles. First try.
10:50pm — a feature I didn't plan. Once I could scrub a flight against its altitude curve, I wanted to mark the good parts. Twenty minutes later, in/out clip marking existed — keyboard shortcuts, saved server-side. The first clip ever marked: "inlet flyover · 0:12–0:25 · 13s."
At 10:36pm I typed my reaction. The log shows exactly what kind of reaction it was:
"this is incredible. thanks. Next up. in the timeline at the bottom, I'd like to be able to drag the 'playhead'…"
Ten words of gratitude and straight back to work. That rhythm — this is incredible, next up — is the accurate summary of the next thirty days.
The receipts
Every quote and timestamp above comes from the preserved session log of that night. I've kept all of it — every session of this project, every prompt, verbatim. When this series claims something happened in seven minutes, the log has the seven minutes. One alteration: times of day throughout this series are shifted; dates, sequence, and every duration are exactly as logged.
One thread from the first prompt is still hanging. I fly two drones: the Mini 4 Pro, and a Neo 2. The Neo 2's files kept their secret that night — its telemetry format was one no public tool could decode. What happened with that is chapter five, and it's the best story in the series.