我正在使用Picasa Web相册数据API访问我的Google帐户。我的目标是下载所有的照片,在给定的开始和结束时间(旧的假期照片)。这个API不支持服务器端的时间过滤,所以我试图访问最近4000张图片的元数据,并通过时间客户端过滤它们。我有一个概念的工作证明,但我只能让服务器返回~900图像参考(我的Google帐户很容易有40k的总图像)。有没有什么API方法让我可以下载我的用户的整个“提要”,这样我就可以访问所有照片上的元数据了?这是我试过的..。
# 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确实可以正确地列出所有图像--“自动备份”相册(在Android手机上接收来自Google的图像)有30k张图像,我可以查询所有这些图像的元数据。
不幸的是,我不能把这些图像放到一个相册中,然后下载它们--用户创建的相册仅限于2000张图片。(我知道这次旅行总共有大约3000张图片,因为我可以在网页界面中“选择”它们并查看总数,但你不能一次下载这么多,而且你不能在一张专辑中添加超过2k的图片。)
发布于 2017-02-02 22:41:00
我从来没有让API按我的意愿工作,但是我能够通过使用Google Takeout下载目标日期来“解决”这个问题
发布于 2018-07-26 09:06:12
经过多次尝试,我想我让它完美地发挥了作用。
我所做的是同时玩start-index和max-results。
您需要这样做(考虑将max-results值保持在每个请求相同的位置):
start-index =1& max-results =Url请求如下所示:
/data/feed/api/user/default?kind=photo&max-results=50&start-index=1start-index =1+以前的max-results = 51 & max-results = 50Url请求如下所示:
/data/feed/api/user/default?kind=photo&max-results=50&start-index=51start-index = 51 +以前的max-results = 101 & max-results = 50Url请求如下所示:
/data/feed/api/user/default?kind=photo&max-results=50&start-index=101依此类推,每次增加start-index的原始值加上max-results值,除了维护每个url请求的50个条目外,它将完美地工作。
https://stackoverflow.com/questions/39309071
复制相似问题