Skip to content
A single-file library for working with Apple Live Photos
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
Sample Code Initial commit Aug 7, 2018
LivePhoto.swift print statement was missing 'String' for 'describing' Apr 3, 2019 Updated readme Aug 7, 2018



A single-file helper library to work with Apple Live Photos

A Live Photo is a paired camera photo ("key photo") and video recording ("paired video"). Learn more about Live Photos from our in-depth blog post.

Live Photo format

A Live Photo consists of two resources paired using an asset identifier (a UUID string):

  1. JPEG image with special metadata for kCGImagePropertyMakerAppleDictionary with [17 : assetIdentifier]
  2. Quicktime MOV with
    1. Quicktime metadata for ["" : assetIdentifier]
    2. Timed metadata track with ["" : 0xFF]. This lets the system know where the still image sits in the movie timeline.


The entire library is contained in the LivePhoto.swift file:

Extracting Resources from PHLivePhoto

LivePhoto.extractResources(from: livePhoto, completion: resources -> Void) {
  let pairedImageURL = resources.pairedImageURL
  let pairedVideoURL = resources.pairedVideoURL

Generating a Live Photo & Saving it to the Photo Library

LivePhoto.generate(from: photoURL, videoURL: videoURL, progress: { percent in }, completion: { livePhoto, resources in
  // Display the Live Photo in a PHLivePhotoView
  livePhotoView.livePhoto = livePhoto
  // Or save the resources to the Photo library
You can’t perform that action at this time.