2014-01-09 60 views
4

是否可以從Picasa(或仍使用Picasa API的Google Plus)獲取比特定日期早的照片列表?我想從一年前的大型專輯「InstantUpload」專輯中獲取所有照片。使用Picasa API訪問較舊的照片

這些都是我看着東西:

  • 的例子在Java Developers Guide只檢索的「最近上傳」照片的數量有限。
  • This reported issue表明PicasaWeb查詢不允許published-min(或published-max)作爲query參數。
  • 該查詢中的start-index似乎沒有任何效果。
  • 正如上面通過grab ... @ gmail.com所提到的那樣,使用「Partial response」的工作並不能使照片早於特定的(看似相當隨機的)日期。
+0

解決方法(您的最後一個項目符號)似乎對我來說工作正常。改變'>'爲'<'做了訣竅。 – klugerama

回答

2

編輯: googlecl已經停產。其棄用的OAuth版本不再被Picasa接受。下面描述的方法不再有效。您可以在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腳本文件中,一次調用就足以爲你做所有的辛苦工作。

相關問題