RhetTbull / osxphotos

Python app to work with pictures and associated metadata from Apple Photos on macOS. Also includes a package to provide programmatic access to the Photos library, pictures, and metadata.
MIT License
2.04k stars 96 forks source link

path_live_photo returns None if photo is missing but live photo component is not missing #586

Open RhetTbull opened 2 years ago

RhetTbull commented 2 years ago

PhotoInfo.path_live_photo returns None if the original image is missing even if the live photo video component of the photo is not missing. This causes the live photo to be downloaded in --download-missing when it doesn't need to be.

All the path properties should have a way to return what the path would have been if it's weren't missing and all should return valid results if the missing component isn't missing.

Fixing this will improve the performance of the refactored export code as only files that are actually missing will need to be downloaded.

chengguangnan commented 8 months ago

I encounterd a similar problem on some live photos.

In Photos, the live photo does play, so I assume that the .mov file is downloaded? However p.path_live_photo is None so it's considered a missing. Futuremore, in my case, --download-missing skipped this .mov despite that it's missing. So in the end I only have the .heic file exported, even thought I repeated the export process a coulpe times.

Exporting IMG_3597.HEIC (4F122AEF-2735-4430-8437-A99C35440DA3.heic) (2/2)
Skipping missing live photo for IMG_3597.HEIC (4F122AEF-2735-4430-8437-A99C35440DA3)
Skipped up to date file /.../IMG_3597_042311.HEIC
RhetTbull commented 8 months ago

@chengguangnan what is the full osxphotos command you're using? Is your library using the "optimize Mac storage" option in Photos > Settings > iCloud or "download originals to this Mac"?

If you can post the debug output of the following command (or send it to osxphotos.py@gmail.com) that would be helpful:

osxphotos debug-dump --dump photos --uuid 4F122AEF-2735-4430-8437-A99C35440DA3

chengguangnan commented 8 months ago

Initially my setting was "optimize Mac storage", but I also tested it after changing to "download originals to this Mac", I also waited for a while just in case that setting didn't take effect yet.

It's still possible what I saw in the Photos app is a cached live photo viedo somewhere, not the same thing as the local live photo video.

My whole iCloud library should be about 400GB right now (reduced from 2TB), and I'm using a 256GB M1 MacBook Air for this task. Therefore I kind of using "optimize Mac storage" and letting osxphotos --download-missing to download files by album. After downloaded and exported, I would delete this albumn from iCloud.

I also tried to install MacOS on an external SSD drive but encountered some problems as well. I tried to setup a system Photo Library on the external SSD drive but that doesn't work too.

Anyway, osxphotos has been very helpful. I baiscally can discard those missed mov files. There are only a few missing. Just write down some issue for the purpose of recording and sharing.