55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
import os.path
|
|
|
|
import osxphotos
|
|
|
|
|
|
def main():
|
|
db = osxphotos.utils.get_system_library_path()
|
|
if db is None:
|
|
# Note: get_system_library_path only works on MacOS 10.15+
|
|
db = os.path.expanduser("~/Pictures/Photos Library.photoslibrary")
|
|
|
|
photosdb = osxphotos.PhotosDB(db)
|
|
print(f"db file = {photosdb.db_path}")
|
|
print(f"db version = {photosdb.db_version}")
|
|
|
|
print(photosdb.keywords)
|
|
print(photosdb.persons)
|
|
print(photosdb.albums)
|
|
|
|
print(photosdb.keywords_as_dict)
|
|
print(photosdb.persons_as_dict)
|
|
print(photosdb.albums_as_dict)
|
|
|
|
# find all photos with Keyword = Kids and containing person Katie
|
|
photos = photosdb.photos(keywords=["Kids"], persons=["Katie"])
|
|
print(f"found {len(photos)} photos")
|
|
|
|
# find all photos that include Katie but do not contain the keyword wedding
|
|
photos = [
|
|
p
|
|
for p in photosdb.photos(persons=["Katie"])
|
|
if p not in photosdb.photos(keywords=["wedding"])
|
|
]
|
|
|
|
# get all photos in the database
|
|
photos = photosdb.photos()
|
|
for p in photos:
|
|
print(
|
|
p.uuid,
|
|
p.filename,
|
|
p.date,
|
|
p.description,
|
|
p.title,
|
|
p.keywords,
|
|
p.albums,
|
|
p.persons,
|
|
p.path,
|
|
p.ismissing,
|
|
p.hasadjustments,
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|