<!--
{
  "availability" : [
    "iOS: 10.0.0 -",
    "iPadOS: 10.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.12.0 -",
    "tvOS: 10.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PhotoKit",
  "identifier" : "/documentation/Photos/PHLivePhotoEditingContext/saveLivePhoto(to:options:completionHandler:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Photos"
    ],
    "preciseIdentifier" : "c:objc(cs)PHLivePhotoEditingContext(im)saveLivePhotoToOutput:options:completionHandler:"
  },
  "title" : "saveLivePhoto(to:options:completionHandler:)"
}
-->

# saveLivePhoto(to:options:completionHandler:)

Processes and saves a full-quality Live Photo as the output of your editing session.

```
func saveLivePhoto(to output: PHContentEditingOutput, options: [String : Any]? = nil, completionHandler handler: @escaping @Sendable (Bool, (any Error)?) -> Void)
```

## Parameters

`output`

The photo editing output to receive the rendered Live Photo, created from the same [`PHContentEditingInput`](/documentation/Photos/PHContentEditingInput) object you used to begin this Live Photo editing context.

`options`

Options that affect Live Photo rendering. See `Live Photo Processing Options`.

`handler`

A block that Photos calls on the main queue after rendering is complete. The block takes the following parameters:

- success: `true` if rendering succeeds; otherwise `false`.
- error: If rendering succeeds, this parameter is `nil`. If rendering fails, this parameter contains an error object describing the failure.

## Discussion

Use this method when you have finished an editing session and need to provide rendered output in a [`PHContentEditingOutput`](/documentation/Photos/PHContentEditingOutput) object. Unlike when rendering output for a photo or video asset, you don’t need to provide rendered output using the [`renderedContentURL`](/documentation/Photos/PHContentEditingOutput/renderedContentURL) property of the editing output object. Instead, create a [`PHContentEditingOutput`](/documentation/Photos/PHContentEditingOutput) object using the [`init(contentEditingInput:)`](/documentation/Photos/PHContentEditingOutput/init(contentEditingInput:)) initializer, passing the same [`PHContentEditingInput`](/documentation/Photos/PHContentEditingInput) object you used in the [`PHLivePhotoFrameProcessingBlock`](/documentation/Photos/PHLivePhotoFrameProcessingBlock) initializer to start this Live Photo editing context. Then pass that editing output object to this method, and Photos renders the Live Photo and provides it to the editing output.

> Note:
> Don’t forget to describe your edits in a ``doc://com.apple.photokit/documentation/Photos/PHAdjustmentData`` object and provide that to the ``doc://com.apple.photokit/documentation/Photos/PHContentEditingOutput/adjustmentData`` property of your content editing output. Providing adjustment data allows your app (or photo editing extension) to non-destructively resume working with an edit later, whether on the same device or on another Mac or iOS device using iCloud Photo Library.

After this method’s completion handler signals successful rendering, you use the content editing output to complete the edit. In an app using the Photos framework, create a [`PHAssetChangeRequest`](/documentation/Photos/PHAssetChangeRequest) object inside a [`PHPhotoLibrary`](/documentation/Photos/PHPhotoLibrary) `performChanges` block, and set its [`contentEditingOutput`](/documentation/Photos/PHAssetChangeRequest/contentEditingOutput) property to your editing output. In a photo editing extension running in the Photos app, your main view controller provides content editing output when requested by the [`finishContentEditing(completionHandler:)`](/documentation/PhotosUI/PHContentEditingController/finishContentEditing(completionHandler:)) method.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)