--- type: "note" created: "2024-06-18T14:10:21.565Z" updated: "2024-06-19T06:27:30.466Z" --- # Amazon Photos Python - [pypi](https://pypi.org/project/amazon-photos/) - [github](https://github.com/trevorhobenshield/amazon_photos) ```python from amazon_photos import AmazonPhotos ap = AmazonPhotos( # see cookie examples above cookies={ 'at_main': 'Atza|IwEBIKaTt-nbq8GY6MaHFmoPREguVxq0XCPFIPhqdaXNnWl8ZNSkq7xRHRN7RDKyyWcpRrAj1hu2TyB1dRPAi9VeUO_EihstUpc3ZK5ui1UjpOFo0x50sBeo-hCLZrAWd-UNjSbCBJn4mrZajaaC0S9EnM54W1Pyxg2hITlqqXRDAHrNVCQOQ-Nk5_LiE6jvppTV3uLpe4gahDCsTz1UqFBt42iLe9atrWMAPeJ5JnZm6OsfPL0cLMtTiknkwnkV5l_sk61rbWwITXtALSlJaxfW8k5dwzXD2y7p1OOtMw02bdXX2A', 'csd-key': 'eyJ3YXNtVGVzdGVkIjp0cnVlLCJ3YXNtQ29tcGF0aWJsZSI6dHJ1ZSwid2ViQ3J5cHRvVGVzdGVkIjpmYWxzZSwidiI6MSwia2lkIjoiMzNlNTBlIiwia2V5IjoiTjhqTWFzcGxmYTVINEZjbTQ4QldVa01JNmExaHVGRytrQTlYQ3NBMlR6RU9YcVBpeFh0SnVmYnk1a3pJQmxHSUxkQ0lLaGRNdThiMW5WR0lvVyt3VkxNMENJUXduY1FxSDR4RldPb0lPZXZ6ejIvV0J6dkRLcnRIelAwSGhmVHdHOHpBUU95ZzZXU1VuZldrRVd2UjNrV1hVTVZRNGNGMkV3aWE2emhFMVR5SGUrWUpsWUNHUWc4WEttbURxdFdzTEUxZHNaZ1JIVGxSMGRXbldLT2NRZ0NtQUdOeEpJMDRGQkNuY1VUWnVNaVF3VHV5NHBTK2p4U2t4TGwxckxocjRhcWwrZ2ZONVRMQVJ3Z3BwWWRGMzA3OWQySGZZYno4TFFlZmpWRG42QXdoY3l2aU5DNExDVXZnY1lKbFY5bDUzTU5zZytzZ0dFMkJ0cHVtWXVnK0VnPT0ifQ==', 'csm-hit': 'tb:FWHMXQB2N9YR3XD0WD50+ba-4W9NK8V7MQQX19ZBNQMR-EN10GR0C8995B3TXDBW2|1718721855872&t:1718721855872&adb:adblk_no', 'cwr_s': 'eyJzZXNzaW9uSWQiOiIxOTJhMDBiZC1kMGEyLTRiMjQtOGMwOS03OWUwNWJmMjY4OGUiLCJyZWNvcmQiOnRydWUsImV2ZW50Q291bnQiOjEwMzQsInBhZ2UiOnsicGFnZUlkIjoiL3Bob3Rvcy8iLCJwYXJlbnRQYWdlSWQiOiIvcGhvdG9zL3NldHRpbmdzIiwiaW50ZXJhY3Rpb24iOjM2LCJyZWZlcnJlciI6IiIsInJlZmVycmVyRG9tYWluIjoiIiwic3RhcnQiOjE3MTg3MjE1MjkxMTZ9fQ==', 'cwr_u': '82367c0a-fd6e-41e0-9a57-24eb6a3b4a61', 'i18n-prefs': 'USD', 'JSESSIONID': 'F12B4E4CDFDC2A8F075BD6826B61564A', 'lc-main': 'lc-main', 'sess-at-main': 'QjgIr25GpBkN+U7VP7NiwCpyzU1DaRDRtrZBy6lU9MI=', 'session-id-time': 'session-id-time', 'session-id': '130-2086422-3631604', 'session-token': 'g8YwxNbYOociOxFEOkrsTN/lV2WSoAw6MAPSuswF9NnPd30r4wpLKxOQNMPW8j5sAY0NdD11g7tBXTDQS0rlTe8hIlhOnSgbfPUTtrjKO23zz/vOIKoUL6b6359LwO1ltd0juvuKc5aFPJaxeKUzcFcC5Jxm2kSXyCz7eRJeBluyc061RdSchHWL/5SqB0pC9oDih2uF5HDl6pKecF8YiX2CWytqRxlBVn2Q141fezdJ9kUcHsfL7mZZKfrrmvI2qZFfZa2379HB/mpEI1Cw72WM5RX1SsleBN3JRBaEhBzqAPYb1DVE7+GWiU5BFeA9IgyWNgqHm2MiQr7kBY4pEOivhwnaOzL+VJld3ODy57vKS1wPoDznkD5Ok5HEw0eO', 'sid': 'wZ4+IDpaIn7d2kRmXGxFSg==|r+MfueUTDWes8fZ9LFfeNgIkqxJsXUO3CLKPszvIHaw=', 'sst-main': '1J2N3VvLsFDH97SkezFcBG@3AoVgPcoV', 'sst-main': 'Sst1|PQFFb7JpsYltezg6eBdc_j8HCULqNcosQnd-NG41uUhWywHtQufMARZRg4_phg_UoCqM4_d7QbTbFguppSgCejnToCz80Qy7m-TAqMwJj054wkn9uAg-Pr2nF8rMY9gXh-BVvR1RnF4xZwIP9HihcwQbe21QqMDorsbx-GAMoQzzDskFH4bNcBBNBJnbSq7KoRBEtJiLoNh6-MmPl6L2F8nk38putRVLwReRmMPchaeVfeluTFd2jNu6SYjhUMaSfc3f8ZvGOMaiCsPh1AHRsvXTGpzWxO57usZJP0_4LbCY82A', 'ubid_main': '134-9800184-2401841', }, # optionally cache all intermediate JSON responses tmp='tmp', # pandas options dtype_backend='pyarrow', engine='pyarrow', # cdproxy_override='https://content-na.drive.amazonaws.com/cdproxy/nodes' ) # get current usage stats ap.usage() # get entire Amazon Photos library nodes = ap.query("type:(PHOTOS OR VIDEOS)") # query Amazon Photos library with more filters applied nodes = ap.query("type:(PHOTOS OR VIDEOS) AND things:(plant AND beach OR moon) AND timeYear:(2023) AND timeMonth:(8) AND timeDay:(14) AND location:(CAN#BC#Vancouver)") # sample first 10 nodes node_ids = nodes.id[:10] # move a batch of images/videos to the trash bin ap.trash(node_ids) # get trash bin contents ap.trashed() # permanently delete a batch of images/videos ap.delete(node_ids) # restore a batch of images/videos from the trash bin ap.restore(node_ids) # upload media (preserves local directory structure and copies to Amazon Photos root directory) ap.upload('path/to/files') # download a batch of images/videos ap.download(node_ids) # convenience method to get photos only ap.photos() # convenience method to get videos only ap.videos() # get all identifiers calculated by Amazon. ap.aggregations(category="all") # get specific identifiers calculated by Amazon. ap.aggregations(category="location") ``` ```todo https://www.digitalocean.com/community/tutorials/an-introduction-to-haproxy-and-load-balancing-concepts https://www.digitalocean.com/community/tutorials/how-to-host-multiple-web-sites-with-nginx-and-haproxy-using-lxd-on-ubuntu-16-04 ```