Get your photos off the camera and onto your own server, with just your phone.
Plug your camera into your Android phone with a USB cable. Offload copies the new shots and uploads them to Immich or your SFTP server. You don't need a laptop, a card reader or anyone else's cloud.
Plug in, pick, walk away
The camera doesn't need Wi-Fi, a companion app or a cloud account. A USB cable and your phone are enough.
Connect the camera
Use a USB-C cable from the camera to your phone. Offload opens and lists the card's folders and files, and marks the shots it has already uploaded.
Select what's new
Tap Select all new on camera, or pick files one by one, then choose a destination. Turn on auto-upload and it starts as soon as the camera connects.
Unplug and carry on
Files are copied to the phone's cache first, so you can unplug the camera and keep shooting. Uploads continue in the background and retry until they finish.
Built for real shoots
For big RAW files, patchy signal and a phone battery that has to last the day.
Phone-side cache
Files are copied from the camera to the phone first, up to a size you choose. The cache can delete them once they're uploaded, or keep them until it needs the space.
Retries and resume
Failed uploads retry by themselves, and interrupted transfers resume. Uploads run in the background, survive the app being closed, and can wait for Wi-Fi.
Skips duplicates
Offload remembers what it has uploaded and checks for duplicates, so Select all new really does mean new. You can still send something again on purpose.
Auto-upload on connect
Choose a destination, plug in the camera, and new files start uploading. Transfers that were waiting for the camera pick up where they stopped.
Choose your formats
JPEG, RAW (CR3/CR2), HEIF and video (MP4/MOV). Turn off the formats you don't want, for example videos on mobile data.
Large files
A video bigger than the whole cache can go straight from the camera to the server, as long as the camera stays connected.
Cache only, upload later
Copy shots to the phone now and decide where they go later. You can also show cached photos in the phone's gallery to view and share them.
Clear progress
The Uploads tab shows every job with live progress, and you can retry failed files, upload a job again to another destination, or delete it.
Settings backup
Export your settings to a password-protected file, then restore them on a new phone or after reinstalling the app.
Your photos go to your server
Offload has no cloud service of its own. It uploads only to servers you set up.
Immich
Upload straight into your self-hosted photo library.
- Signs in with an API key
- Can add uploads to an album
- Uses Immich's own duplicate check
- Supports client certificates (mTLS)
SFTP
Upload to a NAS, home server or any machine you can SSH into.
- Folder pattern such as
{yyyy}/{yyyy-MM-dd}/{filename} - Password or key login
- Sets up key login from a password in one tap
- Remembers the server's host key
Offload Router
Send files to a small travel router at local Wi-Fi speed. The router uploads them to Immich or SFTP itself.
- The phone is done once the router has a copy
- Keeps retrying while the internet is down
- Pair it by scanning a QR code
Cache only
Copy files to the phone now and upload them later.
- Files stay on the phone until you upload or remove them
- Choose a destination later with Upload…
- Can show them in the phone's gallery
Upload while you're away from good internet
Hotel Wi-Fi, a campsite or a 4G hotspot can take hours to upload a day's RAW files. Offload Router runs on an OpenWrt travel router with a USB drive. The phone hands the files over at local Wi-Fi speed, and the router uploads them while you get on with your day.
- Once the router has a complete copy on its drive, the phone counts the file as done
- Interrupted transfers resume, and copies are verified with checksums
- Keeps retrying through outages, and a power cut loses nothing
- A live status page in any browser on the router's network
- A single 12 MB program with no dependencies. Tested on the GL.iNet AR300M
# from the router/ folder of the Offload source $ make deploy ROUTER=root@192.168.8.1 # then open http://192.168.8.1:8080/ within 10 minutes and scan the pairing QR code
Nothing passes through us
Offload has no account, no analytics and no servers of its own. Your photos go straight from your phone to your server.
Encrypted settings
Passwords, API keys and SSH keys are encrypted with a key kept in the Android Keystore.
Checked server identity
Offload records an SFTP server's host key on first connection and the router's certificate fingerprint at pairing, and won't connect if either changes.
Key-based SSH
Offload can create an SSH key on the phone, install it on the server and then forget your password.
Protected backups
Settings backups are encrypted with AES-GCM using a key derived from your password.
What you'll need
A recent Android phone, a cable and somewhere to put the photos. The router is optional.
- Android 14 or newer
A phone with USB host (OTG) support. Almost every phone with a USB-C port has it. - A camera that supports PTP over USB
This includes most modern stills and mirrorless cameras. It's developed on a Canon EOS R8. - A USB cable
USB-C to USB-C, or whatever adapter your camera's port needs. - Somewhere to upload to
An Immich server or any SFTP server. You don't need one to start: Cache only mode works without one. - Optional: an OpenWrt travel router
For example a GL.iNet AR300M, with a USB stick or SSD for the Offload Router cache.
Try Offload
Offload isn't available to download yet. Coming soon.
Android 14+ · Free · No account needed