Это скрипт предназначен для закачивания фотографий на сервис Яндекс.Фотки (http://fotki.yandex.ru). Программа неофициальная, и Яндекс не занимается ее поддержкой и распространением.
Помимо command-line интерфейса, yafotki
так же являются оберткой
вокруг фоточного API. Этот модуль может быть использован из других
программ на Python для управления альбомами и фотографиями.
Сначала необходимо создать виртуальное окружение и установить в него необходимые библиотеки:
python virtualenv.py env
env/bin/pip install -r requirements.txt
. env/bin/activate
Если вы хотите, чтобы теги, название и описание фотографии брались из Exif и Iptc тегов, то вам так же понадобится библиотека python-pyexiv2.
В Linux системах, основанных на Debian, эти пакеты устанавливаются очень просто:
apt-get install python-pyexiv2
Перед использованием программы, необходимо авторизоваться:
./yaploader auth --username some-yandex-login
Программа запросит ваш пароль на Яндексе. Но сам пароль нигде
не будет сохранен. Вместо него на диске, в файле ~/.fotki.token
,
будет сохранен специальный ключ, предоставляющий доступ только
к сервису Яндекс.Фотки.
Программа поддерживает довольно много команд по управлению альбомами и фотографиями.
Доступ к альбомам осуществляется по номеру альбома. Например, чтобы загрузить фотографию в конкретный альбом, следует выполнить команду:
./yaploader albums
Она выдаст примерно список альбомов:
1) "Умолчательный альбом", 21 image(s)
2) "Screenshots", empty
3) "Пейзажи", 16 image(s)
Далее, можно воспользоваться командой upload
:
./yaploader upload -a 3 forest.jpg sunset.jpg
В этом примере, мы загружаем два снимка в альбом "Пейзажи". Обратите внимание, что при этом указывается его номер. Номер альбома непостоянен, и может измениться при удалении какого-либо другого альбома. Так что перед загрузкой полезно запросить список альбомов и уточнить номер.
Многие команды позволяют задавать дополнительные параметры. Чтобы узнать,
какие именно, пользуйтесь встроенной справкой: ./yaploader --help
или
./yaploader имя-команды --help
.
Некоторые настройки "по-умолчанию" можно хранить в конфиге. Для этого создайте в домашней директории файл .fotki.conf. Конфиг может содержать такие опции:
# доступ к фоточке может тах же быть friends или private
access_type = public
# закрыть доступ к фотографии по URL со страниц вне домена Яндекс.Фоток
storage_private = no
# отключить комментарии
disable_comments = no
# только для взрослых
xxx = no
# не показывать оригинал
hide_original = no
- Григорию Бакунову - за многие доработки на начальном этапе развития проекта.
- Денису Барову — за пулл реквест с исправлением проблем с кодировкой и pyexiv2.
Сделать это очень просто. Достаточно форкнуть репозиторий, сделать полезные изменения, проверить, что ничего при этом не сломалось, прислать pull-request.
Если кодить лень, а поблагодарить хочется, то можно зафлэттерить этот проект на сервисе Flattr:
- Авторизация по OAuth, с сохранением токена.
- Все операции производятся через JSON API Яндекс.Фоток.
- Библиотека переименована в
yafotki
, а сама утилита вyaploader
. - Появились две дополнительные зависимости: anyjson и requests.
- Код загрузчика выделен в отдельную библиотеку YaFotki, к которой можно "прикрутить" любой пользовательский интерфейс.
- Сама консольная программа переименована в yafotki.
- Параметр --upload больше не нужен, можно просто указывать список файлов или маску.
- Номера альбомов приняли более человеческий вид, и теперь их легко запомнить.
- Номер альбома, который будет использоваться по умолчанию, теперь можно указать в конфиге
- Исправлена ошибка, возникающая при загрузке картинок с прописаными русскоязычными тегами или заголовком.
- Исправлена загрузка картинок, больших чем 128 килобайт.
- Удалена лишняя зависимость от BeautifulSoup.
- Сохранение настроек в конфиге ~/.fotki.conf.
- Запоминание куки, чтобы не вводить пароль каждый раз.
- Запрос пароля в интерактивном режиме, через getpass.
- Авторизация через HTTPS.
- Исправлена ошибка, возникающая при отсутствующем pyexiv2.
- Скрипт больше не создает временных файлов на диске.