Conversation
dschmidt
force-pushed
the
feat/live-photo-support
branch
from
October 3, 2026 12:29
deafe0f to
38f22e4
Compare
Request the oc:live-photo property by default and expose it as Resource.livePhoto, so listings, public links, search results and file info lookups carry the Apple Live Photo facet.
A live photo keeps its video in a separate QuickTime file that shares the content id of the still. The paired video is resolved lazily when playback is requested: first among the listed resources, then through a search by content id. Public links have no search, the lookup stops at the listed resources there. The video is downloaded by its id, so a move or rename does not break playback. The resolved video is kept per player next to its blob url and cleaned up with it. A missing video is only remembered for a short time, because the facet is indexed with a delay after an upload. isMotionPhoto and isLivePhoto each match their own kind, isMotionOrLivePhoto covers both.
The badge, the inline player and the media viewer treat the still of a live photo like a motion photo and label it as a Live Photo. The existing labels write Motion Photo as a proper name as well and say video instead of clip.
The fixture pair is a small JPEG with an Apple maker note content identifier and a QuickTime video with the matching item list entry. The video lives in another folder than the still, so playback goes through the search by content id. The motion photo step says video instead of clip, like the labels.
dschmidt
marked this pull request as ready for review
October 3, 2026 12:41
The search REPORT only returns the facets of its hits with opencloud-eu/opencloud#3652. Until that is available the still image time of a video found through the search comes from a file info request.
Includes opencloud-eu/opencloud#3651, which makes the search service read the Tika 4 keys of the live photo facet.
The opencloud main branch requires go 1.26 since its go.mod bump.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Plays Apple Live Photos like Motion Photos. A Live Photo is two files, a still and a
.mov, that share alivePhoto.contentId. The still now gets the same badge and playback in the files list, the sidebar and the preview app.web-client:oc:live-photois requested by default and exposed asResource.livePhoto.web-pkg: the paired video is looked up when playback starts, first among the listed resources, then through a search for the content id.The video half stays a separate file, and file actions do not carry it along.
Bumps
OPENCLOUD_COMMITIDto include opencloud-eu/opencloud#3651 (Live Photo facet with Tika 4). Until opencloud-eu/opencloud#3652 (facets in search results) is available, a file info request loads the facet of a video found through the search. It is marked with a FIXME.Related Issue
How Has This Been Tested?
livePhoto.feature, existing Motion Photo e2e featureTypes of changes