Начать чтение книги на устройстве Tolino, а продолжить на Kindle: журнал "c't" (выпуск 3003) разработал собственное облачное хранилище для электронных книг, которое позволяет воспроизводить контент на всех видах электронных ридеров с домашнего сервера.

Содержание.

Те, кто читает на нескольких устройствах, знакомы с этой проблемой: вы начали читать на электронном ридере, продолжили на смартфоне – и затем вам пришлось искать нужное место. Amazon и Apple предлагают решения, но только в рамках своих собственных экосистем. В журнале c't 3003 показано, как создать собственное облако Kindle: Calibre-Web Automated управляет библиотекой на домашнем сервере, книги загружаются на ридеры через OPDS, а KOReader Sync синхронизирует прогресс чтения. Это работает на устройствах Boox, Tolino, PocketBook, Kindle, Android, iPhone и даже на небольшом Xteink.

Транскрипция видео.

(Примечание: Этот текст предназначен для тех, кто не может или не хочет смотреть видео выше. Текст не содержит всей информации, представленной в видеоматериале.)

Посмотрите сюда, я читаю книгу на своем устройстве Tolino, откладываю ее и вижу точно ту же страницу на своем Kindle. Теперь это доступно на моем Android-планшете, на моем iPhone, на моем небольшом Xteink, на моем PocketBook – то есть практически на любом устройстве, на котором я читаю электронные книги. И самое лучшее: все эти электронные книги хранятся на моем домашнем сервере и автоматически распространяются на все мои устройства. Все синхронизируется благодаря этому небольшому серверу. И в отличие от книг Kindle или Apple Books, я не привязана к одному конкретному поставщику услуг. Так что попробуйте перенести всю свою библиотеку книг Apple на устройство Tolino, PocketBook или Kindle. Ну, пока.

В этом видео мы рассмотрим, как это сделать, какие электронные книги подойдут для этой цели, и как можно вернуть к жизни старый, подержанный Kindle за 60 евро, превратив его в действительно полезное устройство. И самое главное, я расскажу о тех ошибках, которые вы можете избежать, потому что я сама совершила некоторые из них. Оставайтесь с нами!

Дорогие хакерши, дорогие пользователи интернета, сердечно приветствуем вас здесь, на...

На самом деле, я просто хотел больше читать в свободное время. Поэтому я купил этот Onyx Boox Go 7, и это действительно сработало. Я взял его с собой в отпуск и прочитал там довольно много. Но мне не хотелось таскать с собой этот электронный ридер везде. Например, когда мы ходили на пляж, у меня все равно был мой Android-смартфон, и тогда я подумал: "Ну ладно, я просто продолжу читать несколько страниц на телефоне". И именно в этот момент я понял: "Так, где же я остановился на другом электронном ридере?"

Конечно, можно посмотреть или запомнить страницу, но честно говоря, я немного разочаровался, что это не работает автоматически. На Kindle все же иначе. Я закрываю книгу, открываю на другом устройстве и оказываюсь примерно там, где остановился. То же самое с приложениями Kindle на моем смартфоне. И вот я был в отпуске, и вдруг подумал: "Должна же быть такая возможность".

У меня все мои книги уже были в программе Calibre, но хранились в обычном виде на моем Mac. Когда я хотела прочитать новую книгу, я подключала свой электронный ридер через USB и загружала файл формата EPUB. Это работает, и совместимо со многими устройствами, но это, по сути, противоположность облачному хранилищу.

И вот из моего личного желания больше читать это превратилось в рабочий проект. Я каким-то образом смог синхронизировать свой прогресс чтения, и теперь думаю: а не смогу ли я создать свою собственную "облачную" систему для Kindle? То есть хранить свои книги на домашнем сервере, получать доступ к ним из любого места, создавать отдельные учетные записи для членов семьи и, самое главное, иметь одинаковый прогресс чтения на совершенно разных устройствах. И да, это возможно.

Что нам для этого потребуется?

Что нам для этого нужно? Прежде всего, это не будет классическое сравнение электронных книг. Сами устройства сейчас, честно говоря, очень похожи друг на друга. Электронная бумага (E-Ink), автономная работа неделями, подсветка, иногда цветной экран, а иногда физические кнопки для перелистывания страниц. Для меня гораздо более важным является экосистема, которая стоит за этими устройствами. Amazon, конечно, хочет, чтобы я покупал книги в Amazon и оставался в мире Kindle. Apple предлагает Apple Books, и эта система часто работает очень хорошо внутри себя. Моя проблема начинается только тогда, когда я хочу использовать разные сервисы одновременно.

Я хочу реализовать всего три вещи. Во-первых, централизованное управление моими собственными электронными книгами. Во-вторых, доступ к одной и той же библиотеке со всех моих устройств. И в-третьих, если я остановлю чтение на 42%, то при следующем запуске я хочу продолжить с того же места, с 42%. Для этого нам, по сути, нужны три компонента: Calibre-Web Automated для управления библиотекой, OPDS для передачи книг на ридеры и KOReader Sync для синхронизации прогресса чтения. Все это работает через Docker на домашнем сервере, что сейчас звучит довольно технически, но когда все настроено, использование становится очень простым. Таким образом, этим может пользоваться каждый член вашей семьи.

И поскольку обычно нам приходится тратить около часа на ввод различных команд в терминале, я собрал подробные пошаговые инструкции и все связанные проекты GitHub и разместил их ниже, в описании к видео. В этом видео мы сосредоточимся скорее на том, как это работает и какая версия может быть полезна для кого.

Какие устройства для чтения электронных книг это умеют?

Прежде чем мы перейдем к настройке сервера, давайте немного поговорим об устройствах. Я пробовал это на самых разных устройствах. Самый простой вариант – Android: смартфон, планшет или электронная книга на базе Android, например, Onyx Boox Go 7. Просто установите KOReader как APK-файл. На устройствах PocketBook, Tolino и Kindle установить KOReader можно тоже, хотя это потребует немного больше усилий: подключите устройство к компьютеру через USB и выполните несколько команд в терминале. Даже подержанный Kindle за 60 евро может справиться с этой задачей, об этом подробнее позже.

На iPhone и iPad я использую приложение Readest, потому что там нет KOReader. Даже мой маленький Xteink работает в той же системе с использованием CrossPoint. Главное то, что как только приложение запущено, все устройства используют одни и те же стандарты: OPDS для книг и KOSync для отметки прогресса чтения. Мы еще раз вернемся к различиям в установке и тому, какое приложение для чтения мне кажется наиболее удобным, ближе к концу.

Центральная библиотека.

Сейчас нам в первую очередь нужна централизованная библиотека. Таким образом, все устройства теоретически могут к ней подключаться. Но для начала всем нужно использовать одни и те же книги. И вот тут на сцену выходит Calibre-Web Automated, сокращенно CWA. Возможно, вы уже используете Calibre. У меня была моя коллекция там еще до этого, примерно 250 книг, но только локально на моем Mac. CWA по сути создает веб-интерфейс для работы с Calibre. Я установил все это как Docker-контейнер на своем сервере Unraid и подключил существующую библиотеку Calibre. Для этого вам нужно будет всего один раз скопировать всю библиотеку, включая файл metadata.db, на ваш сервер.

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

И прежде чем кто-то спросит: "Почему вы не используете Kavita?", да, это тоже довольно хороший вариант. Kavita также поддерживает несколько пользователей, формат OPDS, отслеживает прогресс чтения и имеет даже более продвинутый веб-ридер, особенно подходящий для комиксов и манги. У меня вся моя библиотека уже была в Calibre, и я хотел продолжать использовать Calibre как центральную базу данных. Именно поэтому CWA (Calibre Web Access) идеально подходит, поскольку он напрямую использует эту библиотеку. Если вы начинаете с нуля, то есть еще не знакомы с Calibre или вам особенно важен веб-ридер, обязательно попробуйте Kavita. OPDS и вся эта структура работают хорошо с обоими приложениями.

OPDS: Как книги попадают на электронные читалки?

Итак, теперь нам нужно перенести все электронные книги с Calibre-Web на устройства, и для этого существует OPDS (Open Publication Distribution System). По сути, это стандартизированный каталог книг. Calibre-Web представляет мою библиотеку в виде такого потока данных, и в программе KOReader мне нужно просто ввести адрес сервера, имя пользователя и пароль. Всё готово. После этого на устройстве я вижу своих авторов, серии, категории, полки и книги. Выбираю книгу, скачиваю и читаю.

Поскольку OPDS является открытым стандартом, эта функция работает на совершенно разных устройствах. Кроме вашей собственной библиотеки, вы также можете добавлять стандартные источники данных, такие как Project Gutenberg и ManyBooks, и другие подобные ресурсы.

Доступ из любого места.

Не хватает небольшой детали: мой домашний сервер, естественно, находится у меня дома. Это означает, что все устройства в моей домашней сети могут получить к нему доступ. Однако я хотел бы иметь возможность получать доступ к своим книгам и в отеле, в поезде или на пляже. Одним из вариантов может быть Tailscale. Он позволяет подключать ваши устройства через VPN к вашей домашней сети, это работает отлично, особенно на смартфонах или планшетах Android, но честно говоря, я не хочу устанавливать VPN-клиент на старом Kindle или каких-либо других небольших электронных ридерах.

Поэтому я использовал Cloudflare Tunnel и связал его с доменом, зарегистрированным в Cloudflare. Теперь моя библиотека доступна по адресу, например, ebook.meinedomain.de, а сервер для сохранения прогресса чтения – по адресу sync.meinedomain.de. Это означает, что на устройствах для чтения нужно просто ввести этот адрес, и если устройство подключено к интернету, все будет работать, даже в гостиничном Wi-Fi.

Уровень грамотности.

Мои книги теперь доступны везде. Но мы еще не вернулись к моей проблеме с чтением на пляже. Мой Tolino пока не знает автоматически, что я прочитал до страницы 37 на своем iPhone. Для этого существует KOReader Sync, сокращенно KOSync. И я попробовал много разных вариантов. Calibre-Web теперь включает в себя сервер для синхронизации с KOReader, и он, в принципе, тоже работает. Более того, у него есть довольно интересное преимущество: прогресс чтения отображается прямо в интерфейсе Calibre-Web. Однако, в процессе тестирования, я нашел обычный, работающий отдельно сервер KOReader Sync немного более простым и надежным для синхронизации с устройством для чтения.

Вам потребуется дополнительный плагин для KOReader при использовании этой версии непосредственно в Calibre. Однако, используя собственный сервер KOSync, вы сможете избежать этих дополнительных усилий. Хотя у вас не будет прямого отображения прогресса чтения в веб-интерфейсе, Calibre сама по себе не может отображать эту информацию при чтении в браузере, но, возможно, в будущем это станет возможным, хотя сейчас это имеет ограниченную практическую ценность. Однако, это полезно для другой функции, о которой я расскажу позже. В любом случае, у меня сейчас работает небольшой контейнер Docker, предназначенный только для KOSync, и все мои ридеры подключены к нему.

Вам следует знать одну вещь: KOSync определяет книгу по самой файлу. Если у вас на одном устройстве установлена одна версия EPUB книги, а на другом – другая, для синхронизации это может быть совершенно разные книги. Поэтому я теперь всегда распространяю свои книги из одной и той же веб-библиотеки Calibre, чтобы на устройствах оказывались действительно идентичные файлы.

Обычный сервер KOSync работает отлично, но из-за этого возникла проблема: я не могу видеть свой прогресс чтения непосредственно в программе Calibre, потому что информация о нем хранится на моем отдельном сервере синхронизации. Для решения этой проблемы существует небольшое расширение под названием kosync-cwa-bridge. Это расширение запрашивает информацию с моего сервера KOSync и записывает текущий прогресс обратно в веб-интерфейс Calibre. И это работает очень быстро. Я читаю несколько страниц на своем электронном ридере, синхронизирую данные, и через несколько секунд новый прогресс отображается в веб-интерфейсе Calibre.

И этот прогресс очень интересен для системы "Magic Shelves", то есть для динамических полок для книг. Я могу создавать их непосредственно в веб-интерфейсе, и я могу сказать: "Покажи мне все книги определенного автора" или "покажи все непрочитанные книги из этой серии", или "покажи все книги, которые я сейчас читаю". Моя полка под названием "В процессе чтения" автоматически содержит все книги со статусом "в процессе". Таким образом, когда я начинаю читать новую книгу, KOSync это фиксирует, система Bridge записывает прогресс в Calibre-Web, а Calibre-Web автоматически помещает эту книгу на соответствующую полку.

Таким образом, это фактически становится моей собственной облачной библиотекой Kindle, поскольку каждая полка в Calibre-Web имеет свой собственный OPDS-поток. Я могу подписаться на отдельные потоки для каждой полки и видеть только книги, находящиеся в этой полке. И затем, одним нажатием кнопки или автоматически, я могу загружать выбранные книги непосредственно на устройство для чтения.

Тогда мне не придется просматривать сотни заголовков на своем втором устройстве, чтобы вспомнить, что я сейчас читаю. К тому же, EPUB-файлы очень маленькие, поэтому на устройствах с достаточным объемом памяти можно просто хранить всю свою библиотеку локально. Для 250 или 300 обычных книг это вполне приемлемо, хотя может быть немного неорганизованно.

И KOReader может делать гораздо больше. Я мог бы сейчас здесь рассказать об этом очень подробно. KOReader имеет чрезвычайно модульную структуру. Многие функции, которые вы обычно используете в интерфейсе, на самом деле являются внутренними плагинами. Кроме того, существует довольно много плагинов, разработанных сообществом. Например, для более продвинутой автоматизации синхронизации с OPDS и т.д. Если хотите, вы можете еще больше автоматизировать эти процессы. Но сейчас я сделаю паузу, потому что моя основная цель была: я хочу начать читать книгу на устройстве A и продолжить чтение на устройстве B. И это теперь работает действительно надежно и удобно.

А что насчет онлайн-библиотеки?

Прежде чем кто-нибудь из вас начнет писать в комментариях о библиотеках, да, я знаю, что существует онлайн-библиотека. И если у вас есть читательский билет, как и у меня, обязательно ознакомьтесь с этим сервисом. С его помощью вы можете брать цифровые книги в аренду, а не покупать их. Особенно удобно это на устройствах Tolino и PocketBook, поскольку функция онлайн-библиотеки интегрирована непосредственно в систему. Кроме того, для Android и iOS также существуют приложения для доступа к онлайн-библиотеке. Однако это немного другая модель, чем наша собственная библиотека. И, по моему опыту, синхронизация между устройствами при использовании этой функции не так хороша, как при использовании собственной системы.

Ну, книги, как правило, выдаются в аренду, имеют срок действия и часто защищены системами DRM (цифрового управления правами), то есть средствами защиты от копирования. Наше решение больше подходит для книг, для которых у вас есть полноценный, чистый файл формата EPUB. И это важно даже при покупке. Не всегда наличие надписи "электронная книга" означает, что вы получаете полностью свободный файл EPUB. В зависимости от продавца, могут быть водяные знаки или DRM. Это стоит проверять заранее. Например, на сайте Thalia эта информация обычно указывается здесь: в разделе "Подробности о продукте", затем "Формат", "EPUB", "Защита от копирования" – "Нет". Тогда вы можете просто скопировать этот файл в свою веб-библиотеку Calibre.

Мой вывод: Какой электронный ридер я бы выбрал сейчас?

Если бы я сегодня специально покупал устройство для чтения с открытой операционной системой, то для меня самым простым вариантом был бы Android-ридер с экраном E Ink, например, Boox. Просто установите KOReader в виде APK-файла, и все готово. PocketBook также довольно удобен, поскольку на него можно легко установить KOReader без необходимости взлома системы. С Tolino тоже можно, но это потребует немного больше усилий.

Для взлома (jailbreak) устройства Kindle необходимы определенные условия, и их доступность сильно зависит от модели и версии программного обеспечения. Я специально приобрел подержанный Kindle 10-го поколения на онлайн-площадке объявлений. С ним все работает очень стабильно, но это справедливо не только для старых устройств. В настоящее время взлом в принципе возможен и на более новых моделях, таких как Kindle Paperwhite 12-го поколения. Если вы планируете приобрести Kindle специально для этой цели, обязательно предварительно проверьте точную версию программного обеспечения и поищите информацию в Google, используя запросы "jailbreak" и "KOReader".

И да, у меня есть еще этот небольшой Xtool, который я использую в своей системе для чтения. Здесь все очень просто: вы подключаете его к компьютеру, заходите на сайт CrossPoint и напрямую через браузер прошиваете устройство. Таким образом, независимо от того, какую экосистему электронных книг вы сейчас используете, вы, скорее всего, сможете перейти на это решение.

И, честно говоря, именно это – моя любимая особенность этого проекта. Мне больше не нужно выбирать какую-то конкретную экосистему. Моя подруга может продолжать пользоваться своим устройством Tolino, а я – своим Boox. В дороге я читаю по две страницы на своем Xteink или смартфоне. В отпуске я беру с собой старый Kindle. И при этом все мои книги хранятся на сервере, и все устройства знают, на какой странице я остановился.

И на этом все, я хочу больше читать в отпуске. Как-то у меня появилась своя собственная "облачная" библиотека для Kindle, это интересно попробовать. А как вы это делаете? Вы полностью используете систему Kindle или Tolino? Или у вас уже есть книги в формате EPUB где-нибудь? И если вы знаете какое-нибудь совершенно абсурдное устройство, на котором работает KOReader, пожалуйста, напишите об этом в комментариях.

c't 3003 – это YouTube-канал издания c't. Видеоролики на канале c't 3003 представляют собой самостоятельный контент и не связаны с материалами, публикуемыми в журнале c't. Редакторы Ян-Кено Янсен, Лукас Румплер, Сахин Эренгиль и Паскаль Шеве каждую неделю выпускают новое видео.

Первоисточник — Heise

Автор оригинала — Lukas Rumpler

Нашли неточность?

Сообщите редакции. Существенные исправления мы отмечаем в материале