Skip to content
smithplusPublic

About

Download your DJI Osmo footage to your Mac over Wi-Fi. Native macOS app: files, live control and USB webcam.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Repository files navigation

Osmotic icon

Osmotic

Your DJI Osmo camera, on your Mac. Wireless downloads, no phone app, no account.

Download your footage over Wi-Fi, control the camera and see it live, or use it as a webcam over USB. A native macOS app that looks like a piece of gear.

Download

smithplus.github.io/Osmotic · made by smithplus

macOS 15+ Apple silicon & Intel Swift 6.2 CI License: MIT


Osmotic's Files tab: a grid of clips from an Osmo Pocket 3, two selected, a download in progress

What it does

DJI's own app sends footage wirelessly to a phone only; to get it onto a computer it's a cable or a card reader. Osmotic lets the Mac talk to the camera directly, at about 33 MB/s with a Pocket 3.

Files

The camera's card, over its own Wi-Fi. Thumbnails by day, filters for videos, photos, starred and new. Download New takes everything that isn't on your Mac yet; downloads resume if the link drops and never overwrite anything.

Live

Start and stop recording, take photos, switch between Video, Photo, Slow-mo and Low Light, and watch the camera's picture live, all over Wi-Fi. Back in Files, what you just shot is already listed.

Cameras screen: one Osmo Pocket 3 nearby with signal strength and a Connect key Live tab: the camera's picture, recording for 12:34, mode keys and a Stop key

Connect in one click

The Mac finds the camera over Bluetooth, gets its Wi-Fi password from it, joins its network and puts it in playback mode. Five lights show where it is. When you disconnect, the camera goes back to normal and your Mac goes back to your Wi-Fi.

Webcam

Plug the camera in with USB-C and choose Webcam on it: the picture shows up in the Webcam tab, and in Zoom, Meet, FaceTime or OBS even with Osmotic closed. (Not yet tested on hardware.)

Connecting: Bluetooth done, waiting for the pairing approval on the camera Webcam tab: three steps to use the camera as a USB webcam

And the details

  • Everything lands where you expect it: ~/Downloads/DJI, one folder per day (you can turn that off), each file dated with the moment it was shot, so Finder and your editor sort it right.
  • Nothing twice. A clip already on your Mac is skipped, never replaced; a half-downloaded one picks up where it stopped, even clips over 4 GB.
  • Proxies for previews. Space bar opens a quick preview using the camera's light .LRF proxy, not the full 4K file.
  • The extras: RAW .DNG next to photos and the backup .WAV next to clips (on by default; turn them off in Settings).
  • Keyboard all the way: arrows, ⇧ to extend, space to preview, ⌘D and ⇧⌘D to download.
  • Updates itself from GitHub Releases, only after checking the release's signature.
  • English and Spanish, following your Mac's language. VoiceOver labels, Reduce Motion and a dark hardware look throughout.

Install

  1. Download the latest Osmotic-x.y.z.dmg, open it and drag Osmotic onto Applications.
  2. Open Osmotic. The first time, macOS says it can't verify the app: this build isn't notarized by Apple yet (the project has no paid Apple Developer account). Go to System Settings › Privacy & Security, scroll down and click Open Anyway next to the message about Osmotic.
  3. Turn on your camera and click Connect. The first time, approve the pairing on the camera's screen.

Later versions install themselves (Osmotic › Check for Updates…).

Requirements: macOS 15 Sequoia or later, Apple silicon or Intel, Bluetooth and Wi-Fi.

Permissions macOS asks for

Permission Why
Bluetooth Find the camera and pair with it
Location macOS only tells apps the name of your Wi-Fi network if they have it; Osmotic uses the name to rejoin your network afterwards. Your location is never read or stored.
Local Network Talk to the camera at 192.168.2.1
Downloads folder Save to ~/Downloads/DJI
Removable volumes Read the camera's card when it is plugged in over USB
Camera Show the picture in the Webcam tab (asked only once a camera is plugged in)
Notifications Tell you when a download finishes

No account, no analytics; nothing leaves your Mac except update checks with GitHub. See SECURITY.md.

Cameras

Camera Files Live Tested with Osmotic
Osmo Pocket 3 ✅ ✅ Yes: connect, list, download, record, modes, live view
Osmo Pocket 4 / 4 Pro ✅ ✅ Not yet; same protocol, verified in Osmosis
Osmo Action 4 / 5 Pro / 6 ✅ No Not yet; verified in Osmosis
Osmo Nano ✅ No Not yet; verified in Osmosis

If you try one of the untested cameras, a report with the technical log (Window › Technical Log, ⌥⌘L) helps a lot.

How it works

sequenceDiagram
    participant Mac as Mac (Osmotic)
    participant Cam as Osmo camera
    Mac->>Cam: Bluetooth LE: pair, wake
    Cam-->>Mac: its Wi-Fi name and password
    Mac->>Cam: joins the camera's Wi-Fi
    Mac->>Cam: UDP datalink (DUML): enter playback, list the card
    Cam-->>Mac: file list (CompositePack)
    Mac->>Cam: HTTP: thumbnails, previews, resumable downloads
    Mac->>Cam: leave playback
    Note over Mac: back on your Wi-Fi
Loading

While connected, the Mac uses the camera's Wi-Fi, so it has no Internet over Wi-Fi; Ethernet, or an iPhone sharing its connection over a cable, keeps you online. The protocol notes are in docs/PROTOCOL.md and docs/CONTROL.md.

FAQ

What happens if I download the same clip twice? Nothing: it's skipped. Osmotic never replaces a file in your folder; an unfinished one resumes from where it stopped.

Does it delete anything from the camera? No. It never deletes or changes files already on the camera.

Something doesn't work. Open Window › Technical Log (⌥⌘L) and attach the file to an issue. The log leaves out your Wi-Fi password and network name.

Is there a manual? Yes: the guide covers every screen, the keyboard shortcuts and what to try when something fails.

Repository

One repository, three things: the app, the site and the tooling.

Path What
Sources/OsmoticCore the protocol, without UI (BLE, pairing, the UDP datalink, the file-list decoder, HTTP downloads, capture control, live-view reassembly)
Sources/Osmotic the SwiftUI app (CoreBluetooth, CoreWLAN, AVFoundation)
Tests the golden captures, the fake camera and the fake HTTP server
site the landing page (static HTML, CSS and JS; published by GitHub Pages)
scripts build, sign, release, screenshots, textures, icon, launch assets, SEO audit
docs the guide, status, architecture, protocol, launch kit

Build from source

Xcode 26 (Swift 6.2 or later).

git clone https://github.com/smithplus/Osmotic.git && cd Osmotic
swift test                     # 94 tests: protocol, decoder, downloads, a simulated Pocket 3
scripts/package_app.sh         # build/Osmotic.app
open build/Osmotic.app
  • Sources/OsmoticCore: the protocol, without UI: BLE frames, pairing, the UDP datalink, the file-list decoder, HTTP downloads, capture control and live-view reassembly.
  • Sources/Osmotic: the SwiftUI app (CoreBluetooth, CoreWLAN, AVFoundation).
  • Tests: the decoder against 14 real captures from the Osmosis project, a fake camera over UDP, a misbehaving HTTP server and fuzzing for everything that comes off the network.

Contributors and AI agents: start with CONTRIBUTING.md and CLAUDE.md (also AGENTS.md). Releases: scripts/release.sh X.Y.Z.

Credits

Osmotic is a native macOS port of Osmosis: the pairing flow, the camera's control protocol (DUML) and the file-list decoder are a Swift port of Konrad Iturbe's work, checked byte for byte against his captures. Thank you to everyone below.

Code this app is built from

  • Osmosis by Konrad Iturbe: the protocol and file-list decoder this app is ported from (MIT).
  • Kaze for DJI by Brian Merchant: capture control and live view, adapted (MIT).
  • OpenPocketCine by erik-sutton95: live-view and control notes (Apache-2.0; re-implemented from its documentation).

Protocol research: the DJI OGs, dji-remote, osmo-download, DJI-Wifi-Connect, lib-osmo-ble, dji_protocol and reverse-engineering-dji.

Osmosis' testers, whose captures test this app too: Rhoenschrat, Juan Irache, GetHypoxic and Ave.

The same list is in the app: Settings › Credits.

License

Made by smithplus. If it saved you a cable, buy me a coffee. MIT. Osmotic is an independent project, not affiliated with or endorsed by DJI. "DJI" and "Osmo" are trademarks of their owners. The screenshots show demo data.

About

Download your DJI Osmo footage to your Mac over Wi-Fi. Native macOS app: files, live control and USB webcam.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages