我使用Picasa Web Albums Data API访问我的Google相册帐户。我的目标是在给定的开始和结束时间之间下载所有照片(旧假期照片)。此API不支持服务器端时间过滤,因此我尝试访问最近4000个图像的元数据,并在客户端按时间过滤它们。我有一个工作的概念证明,但我只能让服务器返回~900个图像参考(我的Google照片帐户很容易有40k的总图像)。是否有一些我遗漏的API方法让我下载整个" feed"对于我的用户,我可以访问我所有照片上的元数据?这是我尝试过的......
# Tried this first, got ~900 results
pics = gd_client.GetUserFeed(kind='photo', limit=4000).entry
# Tried using the paging parameter start-index, but even if I
# page through until it errors out, there are only ~900 results
pics = gd_client.GetFeed('/data/feed/api/user/default?kind=photo&max-results=100&start-index=500').entry
相册的API可以正常工作以列出所有图片 - “自动备份”#39;专辑(从Android手机上的Google照片接收图像)有30k图像,我可以查询它们的元数据。
不幸的是,我无法将这些图像放入一张专辑并以这种方式下载 - 用户创建的专辑限制为2000张图像。 (我知道这次旅行总共有大约3000张图片,因为我可以在网络界面中选择它们并查看总数,但你不能一次下载那么多,你不能添加超过2k到一张专辑。)
答案 0 :(得分:1)
经过多次尝试,我认为它可以完美工作。
我所做的是同时玩start-index
和max-results
。
您需要按以下步骤进行操作(考虑使每次击中的请求的max-results
值保持不变):
start-index
= 1和max-results
= Any_Value_You_Want 例如:50 网址请求如下:
/data/feed/api/user/default?kind=photo&max-results=50&start-index=1
start-index
= 1 +上一个max-results
= 51&max-results
= 50 网址请求如下:
/data/feed/api/user/default?kind=photo&max-results=50&start-index=51
start-index
= 51 +上一个max-results
= 101&max-results
= 50 网址请求如下:
/data/feed/api/user/default?kind=photo&max-results=50&start-index=101
依此类推,每次将start-index
增加其原始值加上max-results
一次,除了每个URL请求保留50个条目外,它都会很好地工作。
答案 1 :(得分:0)
永远不会让我的API工作,因为我想要,但我能够解决"这可以通过使用Google Takeout
下载目标日期来实现