
A privacy-first, client-side web tool that turns standard videos into Apple Live Photos with zero cl
GetLivePhoto (https://getlivephoto.com/) is a privacy-first, browser-based utility designed to convert standard video clips (MP4, MOV, WebM) into native Apple iOS Live Photos.
Unlike traditional mobile apps that lock basic features behind expensive subscriptions and intrusive ads, or cloud-based web converters that require you to upload personal videos to remote servers, GetLivePhoto runs 100% locally in your browser. Your private videos and memories never leave your device.
To achieve zero-server video processing while keeping costs at a minimum, the project relies heavily on modern web capabilities:
Building a pure client-side Live Photo generator came with several tricky technical hurdles:
Cracking the Apple Live Photo Specification:
An iOS Live Photo isn't a single file—it is actually a pair of files consisting of a still image (.JPG or .HEIC) and a short QuickTime video (.MOV). For iOS Photos to recognize and merge them as a single Live Photo, both files must share an identical, specifically formatted ContentIdentifier UUID embedded deep inside the image's EXIF/MakerNote metadata and the video's QuickTime metadata atoms. Getting this metadata injection right purely in JavaScript/Wasm took extensive reverse-engineering and testing.
Mobile Browser Memory Limits & COOP/COEP Headers:
Running FFmpeg.wasm inside mobile Safari is notoriously strict. Multi-threaded WebAssembly requires SharedArrayBuffer, which in turn demands strict Cross-Origin Opener Policy (COOP) and Cross-Origin Embedder Policy (COEP) headers. Furthermore, processing high-resolution 4K videos can easily trigger out-of-memory (OOM) crashes in mobile browsers, requiring careful memory cleanup and stream buffer optimization after each conversion.
Seamless iOS Saving Workflow:
Even after generating the correct .JPG + .MOV pair in the browser, simply downloading them via mobile Safari often results in iOS treating them as two separate files instead of merging them into a single Live Photo. Designing an intuitive export and saving workflow so that iPhone users can effortlessly import the merged result directly into their Camera Roll was one of the most important UX refinements.