Сотрудничество с Яндекс.Картинками
|
|
|||||||||||||||||||||||
Мы предлагаем владельцам фотохостингов сообщать нам информацию об изменениях, происходящих на их фото-ресурсах, в виде данных в формате XML или Media RSS. Это дает следующие преимущества:
Мы индексируем фотографии, которые:
Мы не допускаем индексацию фотографий с фотохостингов, которые:
Чтобы получить возможность передавать данные в Яндекс.Картинки через XML, необходимо подготовить CGI-скрипт, формирующий XML-данные об обновлениях базы фотохостинга в формате, описанном ниже. Скрипт должен обрабатывать два параметра - from и to, позволяющих задать период времени, за который требуются данные. Формат параметров from и to, а также данных о дате/времени внутри XML-файла, имеет вид:
год-месяц-день[Tчас:минута:секунда[Z|+час[:]минута]]
2007-07-28
2007-07-28T15:45:23 — указано местное время
2007-07-28T15:45:23Z — время указано по Гринвичу
2007-07-28T15:45:23+05:00 — указано местное время для «+5»-го часового пояса
При обращении к скрипту в параметрах from и to время указывается по Гринвичу. Внутри XML-файла можно использовать любой из приведенных выше форматов, однако использовать местное время без указания часового пояса не рекомендуется.
Кроме информации о новых альбомах и фотографиях, в XML-файле должна передаваться актуальная информация:
| Пример XML-файла | Комментарии |
|---|---|
<?xml version="1.0" encoding="windows-1251"?>
|
XML-файл должен начинаться с данной строки - XML-декларации. В атрибуте encoding указывается кодировка, в которой представлены данные XML-файла. Если атрибут encoding опущен, кодировкой по умолчанию считается UTF-8. |
<hosting xmlns="http://images.yandex.ru/schemas/img_import"
|
Параметры фотохостинга: xmlns — служебный атрибут. Всегда должен иметь значение http://images.yandex.ru/schemas/img_import; from — дата/время начала периода импорта фотографий; to — дата/время окончания периода импорта; site — URL главной страницы фотохостинга; sitename — название фотохостинга. |
<imgset>
|
Описания фотографий |
<img id="123456">
|
Описание одной фотографии: id — уникальный идентификатор фотографии на фотохостинге. |
<src>
|
URL фотографии. |
<location>
|
URL страницы, на которой показана фотография. |
<name>Я на солнышке лежу</name>
|
Название фотографии. |
<description>На пляже в Сочи во время летнего отпуска</description>
|
Текст авторского описания фотографии (если есть). |
<tags>море,пляж,отпуск,сочи,центральная набережная, прогулочный катер</tags>
|
Тэги и метки фотографии (через «,» или «;», если есть). |
<author name="petrov" id="1234">
|
Ссылка на URL профиля автора фотографии: name — имя (никнейм) автора; id — уникальный идентификатор автора. |
<gallery name="Отпуск в Сочи" id="1234_12">
|
Ссылка на галерею (альбом), в которой размещена фотография: name — название галереи (альбома); id — уникальный идентификатор галереи (альбома). |
<created>2007-08-10</created>
|
Дата/время размещения фотографии на фотохостинге. |
<phototime>2007-07-28T15:45:23+05:00</phototime>
|
Дата/время фотосъемки (если есть). |
<adult>no</adult>
|
Признак «только для взрослых»: «yes» — фотография для взрослых, «no» или тег adult отсутствует — содержимое фотографии не относится к категории «только для взрослых». |
<path>Путешествия/Россия/Море</path>
|
Путь в дереве категорий (если есть). |
<rating>174</rating>
|
Рейтинг фотографии (целое число от 0 до 1000, если есть). |
<hits>352</hits>
|
Количество просмотров фотографии (если есть). |
<originalfrom>
|
Ссылка на оригинал фотографии (если есть). |
</img>
|
|
...
|
(блок <img> может повторяться внутри <imgset> много раз) |
<img id="234567" delete="1" />
|
Удаление фотографии по идентификатору: id — идентификатор фотографии; delete="1" — признак удаления, т.е. фотография с момента последнего импорта XML-данных была удалена с фотохостинга, и информацию о ней необходимо удалить из базы Яндекс.Картинок. |
...
|
(блок удаления фотографии по идентификатору может повторяться внутри <imgset> много раз) |
<img>
|
Удаление фотографий по URL |
<src>
|
URL удаляемой фотографии. |
<delete />
|
Признак удаления. |
</img>
|
|
...
|
(блок удаления фотографии по URL может повторяться внутри <imgset> много раз) |
</imgset>
|
|
<authorset>
|
Удаление фотографий по автору |
<author id="2345" delete="1" />
|
Удаление всех фотографий автора по его идентификатору: id — идентификатор автора; delete="1" — признак удаления. |
<author delete="1">
|
Удаление всех фотографии автора по URL его профиля: delete="1" — признак удаления. |
...
|
(блоков удаления всех фотографий, принадлежащих определенному автору, внутри <authorset> может быть несколько) |
</authorset>
|
|
<galleryset>
|
Удаление галерей (альбомов) |
<gallery id="2345_23" delete="1" />
|
Удаление галереи (альбома) по идентификатору: id — идентификатор галереи; delete="1" — признак удаления. |
<gallery delete="1">
|
Удаление галереи по URL: delete="1" — признак удаления. |
...
|
(блоков удаления галереи со всем ее содержимым внутри <galleryset> может быть несколько) |
</galleryset>
|
|
</hosting>
|
Выполнение следующих правил позволит избежать ошибок индексирования, связанных со сбоями в процессе XML-импорта.
Если при работе скрипта, формирующего XML-файл, произошел сбой, сервер должен вернуть стандартный код ошибки HTTP-протокола, например:
Если в процессе формирования XML-файла ошибка произошла уже после отправки ответа "200 – OK", рекомендуется сразу оборвать передачу данных, по возможности завершив процесс сообщением об ошибке (в произвольной форме). В этом случае не следует формировать правильный (валидный) XML-файл, для чего достаточно не передать закрывающий тег </hosting>. Неправильный формат XML-файла считается признаком ошибки, и переданные в нем данные не будут внесены в индексную базу Яндекс.Картинок.
Мы поддерживаем импорт данных в формате Media RSS. Если у вас уже есть RSS-поток с обновлениями, то мы можем его использовать. В этом случае от фотохостинга не требуется создание дополнительных скриптов.
Пришлите нам заявку на подключение фотохостинга к XML-импорту или сообщите адрес RSS-потока на xml-import@images.yandex.ru.
После получения письма мы свяжемся с вами, ответим на вопросы, вышлем всю необходимую информацию и сообщим о дальнейших действиях.
Мы оставляем за собой право отклонить заявку без объяснения причин.