МакЦентр corporate blog
Professional literature
Gadgets
Software
Tablets
24 May 2018

Зачем нужны и как работают электронные каталоги OPDS

На GT мы уже рассказывали об истории и принципах работы форматов электронных книг DjVu, FB2 и его «младшего брата» FB3. Сегодня мы решили поговорить о стандарте, который помогает эти книги распространять. Расскажем, зачем нужны электронные каталоги OPDS и как они «устроены».


/ Flickr / Gael Varoquaux / CC

Что такое OPDS?


OPDS (Open Publication Distribution System) — это формат синдикации для электронных публикаций. Его цель — предоставить пользователям приложений и устройств для чтения возможность просматривать и скачивать книги из электронных библиотек.

Проект начали разрабатывать в апреле 2009 года. В нем приняли участие несколько организаций и компаний, включая Internet Archive, Feedbooks, O'Reilly и Lexcycle, занимавшаяся разработкой ПО для чтения электронной литературы. В основу стандарта положили технологии HTTP (RFC2616) и Atom (RFC4287).

Atom — это другой формат синдикации, основанный на XML. Он позволяет описывать наборы веб-ресурсов: новостные ленты, анонсы статей в блоге и так далее. По своей сути он похож на RSS и решает те же задачи, однако не имеет ряда его недостатков, в частности, он лучше стандартизирован (взаимоотношения между разными версиями RSS довольно запутанны — они могут быть несовместимы друг с другом). На сегодняшний день Atom поддерживает компания Google во многих своих проектах, например в Feedburner.

Что «внутри» OPDS-каталога


OPDS-каталоги позаимствовали концепцию фидов (feeds) и записей (entries) у формата Atom. По сути, фиды представляют собой контейнеры для записей и делятся на две категории: навигационные (navigation feeds) и загрузочные (acquisition feeds). Первые задают иерархию для поиска контента, а вторые — содержат списки записей с информацией о доступных публикациях. В каждой записи имеются метаданные: формат электронной книги, заголовок, способ получения и др.

Записи в списке представляют собой ссылки, которые или направляют пользователя к другому фиду, или предоставляют ему возможность скачать публикацию. В Atom, на котором основывается OPDS, ссылка представляет собой тег с атрибутом rel (relationship). Это отношение обозначает способ приобретения и правила предоставления литературы. Поддерживаются следующие варианты:

  • открытый доступ без каких-либо ограничений;
  • книга приобретается за деньги (цена отражается в ссылке);
  • подписка на периодическое издание;
  • фрагмент публикации (например, первая глава книги) для ознакомления.

На официальном сайте проекта OPDS приводится следующий пример оформления такой ссылки:

<link rel="http://opds-spec.org/acquisition"
      type="video/mp4v-es"
      href="/content/free/4561.mp4"/>

Если одна публикация доступна в нескольких форматах, то они представляются группой ссылок в одной записи:

<link rel="http://opds-spec.org/acquisition/borrow"
      href="/content/borrow/4561.mobi"
      type="application/x-mobipocket-ebook"/>

<link rel="http://opds-spec.org/acquisition/borrow"
      href="/content/borrow/4561.epub"
      type="application/epub+zip"/>

Иногда ссылка не ведет к книге напрямую. Это происходит в том случае, если публикация запакована в zip-архив, где лежит несколько файлов (например, те же копии книги в разных форматах). Для описания «внутренностей» такого компонента используется элемент opds:indirectAcquisition, где типом является формат медиаэлемента:

<link type="application/zip" rel="http://opds-spec.org/acquisition/open-access" href="/item/1111/buy/">
  <opds:indirectAcquisition type="application/epub+zip" />
  <opds:indirectAcquisition type="application/pdf" />
  <opds:indirectAcquisition type="application/x-mobipocket-ebook" />
</link>

А вот пример оформления ссылки для ситуации, когда публикация является платной. Атрибут currencycode определяет валюту:

<link rel="http://opds-spec.org/acquisition/buy"
      href="/product/song1.mp3"
      type="audio/mpeg">
  <opds:price currencycode="USD">1.99</opds:price>
</link>

Где найти OPDS-каталоги и как с ними работать?


Одними из первых начали использовать OPDS издатели и библиотеки. Позже к сообществу присоединились разработчики приложений-читалок и продавцы электронной литературы. Чаще всего они и выступают создателями OPDS-каталогов. Список самых популярных каталогов можно найти на сайте со спецификацией OPDS.

Например, там есть Feedbooks, который распространяет более 3 млн электронных книг каждый месяц. В коллекции Internet Archive находится почти 2 млн публикаций, а O'Reilly Media предлагает тысячи экземпляров технической литературы. Также можно выделить каталоги The Pragmatic Programmers и Revues.org.

В целом же в сети можно найти множество каталогов OPDS на разных языках. При этом у пользователей есть возможность сформировать собственный каталог, чтобы организовать доступ к своей книжной библиотеке с любого устройства. Есть даже специальные программы, которые могут с этим помочь. Например, такую утилиту предлагает FBReader — она основана на коде books.fbreader.org.

Работу с OPDS поддерживают и другие ридеры, в частности, Cool Reader, Bluefire Reader, QuickReader, AlReader и OReader. Последний является адаптацией AlReader специально для ридеров ONYX-BOOX, которую доработал сам создатель оригинального приложения. Читалка получила единое интерфейсное меню и встроенный сканер метаданных, используемых системой. Еще в OReader была добавлена поддержка технологии SNOW Field, которая не работает в AlReader. SNOW Field улучшает «перерисовку» страницы на экране с электронными чернилами, снижая количество артефактов при перелистывании (и исключает частые «заливки» дисплея черным).

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

В целом же для работы с OPDS нужно подключить интересующие сетевые библиотеки. О том, как это сделать на читалках ONYX, можно узнать в одном из материалов на нашем сайте. После можно начать просматривать публикации, ориентируясь по фидам и спискам записей.

Отметим, что пользователь может находить нужные книги не только с помощью фидов, но и с помощью функции поиска. Поиск OPDS основан на формате Open Search. В этом случае создается отдельный XML-файл с описанием параметров поиска — OpenSearch Description. Вот пример заполнения такого файла из репозитория Open Search на GitHub:

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
  <ShortName>Web Search</ShortName>
  <Description>Use Example.com to search the Web.</Description>
  <Tags>example web</Tags>
  <Contact>admin@example.com</Contact>
  <Url type="application/rss+xml"
       template="http://example.com/?q={searchTerms}&pw={startPage?}&format=rss"/>
</OpenSearchDescription>

Обычно он называется OpenSearch.xml и лежит в корне каталога.


/ Flickr / Dave Collie / CC

Развитие экосистемы


На сегодняшний день выпущено несколько спецификаций OPDS: это версии OPDS Catalog 0.9 (2010 год), OPDS Catalog 1.0 (2010 год) и OPDS Catalog 1.1 (2011 год), которая является последней выпущенной на сегодняшний день. Однако существует «черновик» новой версии стандарта — 1.2. В нем должен появиться функционал, который позволит сдавать книги в аренду, то есть выдавать их на определенный промежуток времени. Дополнительно будут добавлены новые атрибуты для типов медиаконтента, элементы для обозначения рейтинга и числа скачиваний книги, а также профили OPDS для пользователей.

При этом сообщество, в лице продавцов электронной литературы, рабочей группы OPDS и других участников индустрии, работает над спецификацией ODL (Open Distribution Libraries) и механизмов аутентификации OPDS, чтобы сделать возможной «горизонтальную» интеграцию библиотек и коммерческих сервисов, продающих книги, друг с другом.

Формат ODL уже используется распространителями электронной литературы для пересылки информации о лицензиях библиотекам (например, в Feedbooks). Что же касается новой версии OPDS 1.2, то пока её спецификация существует только в формате черновика (draft), а дата полноценного выхода стандарта остается неизвестной.



P.S. Предлагаем вам тройку обзоров ридеров ONYX BOOX:



+15
10.3k 36
Comments 28
Top of the day