Amazon Photos API
Project description
Amazon Photos API
Table of Contents
Installation
pip install amazon-photos
Setup
These environment variables must be set. Log in to Amazon Photos and copy the cookies:
- *
ubid-acbxx
- *
at-acbxx
session-id
*replace xx
with your country code
E.g. for amazon.ca, you would add to your ~/.bashrc
:
export session_id="..."
export ubid_acbca="..."
export at_acbca="..."
Query Syntax
For valid location and people IDs, see the results from the
aggregations()
method.
Example query:
drive/v1/search
type:(PHOTOS OR VIDEOS)
AND things:(plant AND beach OR moon)
AND timeYear:(2019)
AND timeMonth:(7)
AND timeDay:(1)
AND location:(CAN#BC#Vancouver)
AND people:(CyChdySYdfj7DHsjdSHdy)
/drive/v1/nodes
kind:(FILE* OR FOLDER*)
AND contentProperties.contentType:(image* OR video*)
AND status:(AVAILABLE*)
AND settings.hidden:false
AND favorite:(true)
Examples
from pathlib import Path
from amazon_photos import AmazonPhotos
# e.g. using amazon.ca
ap = AmazonPhotos(tld="ca")
# get entire Amazon Photos library. (default save to `ap.parquet`)
nodes = ap.query("type:(PHOTOS OR VIDEOS)")
# query Amazon Photos library with more filters applied. (default save to `ap.parquet`)
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)
# restore a batch of images/videos from the trash bin
ap.restore(node_ids)
# upload a batch of images/videos
files = Path('path/to/files').iterdir()
ap.upload(files)
# download a batch of images/videos
ap.download(node_ids)
# permanently delete a batch of images/videos.
ap.delete(node_ids)
# convenience method to get all photos
ap.photos()
# convenience method to get all videos
ap.videos()
# get current usage stats
ap.usage()
# get all identifiers calculated by Amazon.
ap.aggregations(category="all")
# get specific identifiers calculated by Amazon.
ap.aggregations(category="location")
# get trash bin contents
ap.trashed()
Common Paramters
name | type | description |
---|---|---|
ContentType | str | "JSON" |
_ | int | 1690059771064 |
asset | str | "ALL" "MOBILE" "NONE "DESKTOP" default: "ALL" |
filters | str | "type:(PHOTOS OR VIDEOS) AND things:(plant AND beach OR moon) AND timeYear:(2019) AND timeMonth:(7) AND location:(CAN#BC#Vancouver) AND people:(CyChdySYdfj7DHsjdSHdy)" default: "type:(PHOTOS OR VIDEOS)" |
groupByForTime | str | "day" "month" "year" |
limit | int | 200 |
lowResThumbnail | str | "true" "false" default: "true" |
resourceVersion | str | "V2" |
searchContext | str | "customer" "all" "unknown" "family" "groups" default: "customer" |
sort | str | "['contentProperties.contentDate DESC']" "['contentProperties.contentDate ASC']" "['createdDate DESC']" "['createdDate ASC']" "['name DESC']" "['name ASC']" default: "['contentProperties.contentDate DESC']" |
tempLink | str | "false" "true" default: "false" |
Notes
https://www.amazon.ca/drive/v1/batchLink
- This endpoint is called when downloading a batch of photos/videos in the web interface. It then returns a URL to download a zip file, then makes a request to that url to download the content. When making a request to download data for 1200 nodes (max batch size), it turns out to be much slower (~2.5 minutes) than asynchronously downloading 1200 photos/videos individually (~1 minute).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
amazon-photos-0.0.28.tar.gz
(13.6 kB
view hashes)
Built Distribution
Close
Hashes for amazon_photos-0.0.28-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5030efc4e56b7ae37a0e1bc00971e4566089ac1c69e4250bc1f1da61c5a1632e |
|
MD5 | e47490bb877b716cc2c5c6793e8b7965 |
|
BLAKE2b-256 | 403817681614fc24417a71a82e0e35aa03c605531e845dc2e735f6da1441b76f |