2014-01-09 8 views
4

Возможно ли получить список фотографий из Picasa (или Google Plus, который все еще использует API Picasa), которые старше установленной даты? Я хотел бы получить все фотографии с сегодняшнего дня год назад из большого альбома, альбома «InstantUpload».Доступ к старым фотографиям с использованием API Picasa

Это вещи, которые я посмотрел на:

  • Пример в Java Developers Guide только извлекает ограниченное число «недавно загруженными» фотографии.
  • This reported issue поясняет, что запрос PicasaWeb не позволяет published-min (или published-max) в качестве параметров query.
  • start-index в этом запросе не оказывает никакого влияния.
  • Работа с использованием «Partial response», как предложено в упомянутой выше проблеме захватом ... @ gmail.com, не работает, чтобы получить фотографию раньше определенной (казалось бы, довольно случайной) даты.
+0

Обходной путь (ваш последний пункт маркера), кажется, работает отлично для меня. Изменение '' '' '' '' трюк. – klugerama

ответ

2

EDIT: googlecl было прекращено. Его устаревшая версия OAuth больше не принимается Picasa. Описанный ниже подход больше не работает. Вы можете найти альтернативу в Picasa Web Albums Data API.


Я автоматизирован свои Picasa-задач, связанных с googlecl. Я использую его в Linux, но есть и версия для Windows. Да, это инструмент командной строки; не позволяйте этому отпугивать вас, вы должны иметь возможность вызвать инструмент и захватить его вывод с вашего любимого языка программирования (Java, C#, что угодно).

Запуск googlecl в первый раз на вашем компьютере требует входа в систему с вашей учетной записью Google, но после того, как вы это сделали, googlecl запомнит вашу аутентификацию и больше не будет вас беспокоить.

Итак, ваш альбом называется InstantUpload. Следующая команда загрузит список фотографий (дата/время публикации + URL).

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

AFAIK, нет параметров командной строки для фильтрации по определенному диапазону дат. Вы можете фильтровать по тэгам, но для этого вам потребуется назначить тег, похожий на дату, на каждую фотографию в вашем альбоме. Если время загрузки списка не беспокоит вас (и у вас действительно есть веская причина: не, чтобы разделить этот единственный большой альбом на несколько меньших), я бы предложил сделать фильтрацию самостоятельно, сразу после загрузки.

Я нахожу CLI удобным, поэтому я продемонстрирую несколько простых сценариев оболочки. Но, конечно, вы можете делать фильтрацию на любом языке программирования, который вам нравится.

Во-первых, давайте получать дату Гринвичск один год назад (форматированный гггг-мм-дд):

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

Используйте ваш любимый инструмент фильтра (Grep, СЭД, AWK, Perl) для фильтрации списка; сохраняйте только строки с датой публикации < maxdate.

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

(AWK доступен практически для любой операционной системы.)

Вы даже можете автоматизировать загрузку самих фотографий. Сначала убедитесь, что вы установили cd в соответствующую папку с данными.

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

Поместите все это вместе в файл сценария оболочки, и одного вызова достаточно, чтобы выполнить всю тяжелую работу за вас.