使用Picasa API访问旧照片

时间:2014-01-09 20:35:05

标签: google-plus gdata picasa

是否可以从比某个日期更早的Picasa(或仍在使用Picasa API的Google Plus)中获取照片列表?我想从一年前的大型专辑“InstantUpload”专辑中获取今天的所有照片。

这些是我研究的内容:

  • Java Developers Guide中的示例仅检索有限数量的“最近上传的”照片。
  • This reported issue表明PicasaWeb查询不允许published-min(或published-max)作为query参数。
  • 此查询中的start-index似乎没有任何效果。
  • 使用“Partial response”的工作,正如上面提到的问题由抓... @ gmail.com所提出的,不能比某个(看似相当随机)的日期更早得到照片。

1 个答案:

答案 0 :(得分:2)

修改 googlecl已停止使用。 Picasa已不再接受已弃用的OAuth版本。下面描述的方法不再有效。您可以在Picasa Web Albums Data API中找到替代方案。


我使用googlecl自动执行与Picasa相关的任务。我在Linux上使用它,但也有一个Windows版本。是的,它是一个命令行工具;不要让你害怕,你应该能够调用该工具并从你最喜欢的编程语言(Java,C#,无论如何)中获取它的输出。

首次在您的计算机上运行googlecl需要您使用您的Google帐户登录,但在完成该帐户后,googlecl将记住您的身份验证,并且不会再打扰您了。

因此,您的相册名为 InstantUpload 。以下命令将下载照片列表(发布日期/时间+ URL)。

google picasa list --title="InstantUpload" --fields=published,url-direct --delimiter=" " > FullList.txt

AFAIK,没有命令行选项可以在特定日期范围内进行过滤。您可以过滤标签,但这需要您为相册中的每张照片指定类似日期的标签。除非列表的下载时间困扰你(并且你有一些非常好的理由将单个大专辑分成多个较小的专辑),我建议你自己进行过滤,立即关注下载。

我发现CLI很方便,所以我将演示一些简单的shell脚本。但是你当然可以用你喜欢的任何编程语言进行过滤。

首先,让我们检索一年前的UTC日期(格式化为yyyy-mm-dd):

maxdate=$(date -u --date="1 year ago" +%F)

使用您最喜欢的过滤器工具(grep,sed,awk,perl)来过滤列表;只保留发布日期<的行的maxDate。

awk "\$1 < \"$maxdate\" { print \$2; }" FullList.txt > FilteredList.txt

AWK几乎适用于所有操作系统。)

您甚至可以自动下载照片。确保首先 cd 到适当的数据文件夹。

while read url; do
    wget "$url"
done < FilteredList.txt

将所有内容放在一个shell脚本文件中,只需一次调用即可为您完成所有艰苦的工作。