Приветствую. Недавно я увидел 1TB в статистике книг Audiobookshelf и решил отпраздновать это, рассказав людям как крут Audiobookshelf.

Моя статистика Audiobookshelf
Моя статистика Audiobookshelf

Что такое Audiobookshelf?

Audiobookshelf - приложение, которое ставится на свой компьютер, сервер аудиокниг. Это каталог ваших аудиокниг. Логично, чтобы сервер был доступен в сети интернет.

Главная страница Audiobookshelf
Главная страница Audiobookshelf

Зачем вообще аудиокниги, когда есть нормальные, текстовые?

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

Но не всё так просто. Глаза могут быть заняты или усталые. Как минимум, читать не получится за рулём. А вот аудиокнига - без проблем. Я слушаю аудиокниги по дороге на работу вне зависимости от того, как добираюсь туда: на трамвае, велосипеде, машине или даже пешком. Кроме непосредственно глаз может быть занято что-нибудь другое. Например, во время физического труда, ремонта, спорта, садоводства, картошко-копательства или другой монотонной работы. Знакомый 3D-художник слушает аудиокниги прямо во время работы, ему это не мешает. В общем, для именно аудиокниг тоже есть своя ниша.

А зачем мне вообще Audiobookshelf, если любой плеер читает mp3?

Если есть желание прослушать 1-2 книги, то какое-то специфическое программное обеспечение действительно не нужно. Проблемы начинаются, когда книг становится больше. И хочется видеть какую-то структуру, иметь красивое отображение, быстрый поиск и т.д.

Изначально я скачивал несколько аудиокниг на телефон, слушал их, удалял и скачивал следующую пару книг. Это не всегда удобно. Как минимум, я часто слушаю книги в дороге, нормальный интернет есть не всегда - соответственно, нужно готовиться заранее. И не факт, что нужная аудиокнига будет в наличии, или её будет легко найти.

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

Отрицательные моменты тоже есть. Аудиокниги объёмные. У меня в 1ТБ влезло всего 2000 книг. Если покупать VPS, то это дорого. Я свои книги храню на домашнем NAS, который использует мой же интернет. И плачу дополнительно только за статический IP адрес. Поскольку слушателей у меня не много, то такая схема справляется хорошо.

Настройка Audiobookshelf

Итак, Audiobookshelf уже установлен на сервер, какие-то книги в его папочку положены, что делать дальше? Просто по умолчанию магии и красоты не будет - далеко не во всех книгах проставлены правильные теги, не всегда есть обложка, нет единого стандарта наименования и т.д.

Стандарт наименования - мой ключ к успешному использованию Audiobookshelf. Как именно именовать папки, чётко описано в документации. Только вот без конкретного примера не совсем понятно как этим пользоваться. Прикладываю свой пример.

Пример структуры папок

Audiobookshelf пример структуры папок
Audiobookshelf пример структуры папок

В корне папки Audiobookshelf находятся авторы в формате "Имя Фамилия" (например, "Дмитрий Храбров"). У каждого автора могут быть отдельные книги, или книги в цикле. На скриншоте выше, "Люцерус", "Сточные воды" и "Тимофей" - циклы. А вот "Легенда" - одиночная книга.

В фигурных скобках указывается имя озвучивающего. Так же в формате "Имя Фамилия". Это опциональная информация. Например, автор озвучки цикла "Сточные воды" - не известен. А вот "Тимофей" озвучивал Максим Зингаев. Но я очень стараюсь сохранять эту информацию и всегда её указывать. Как минимум, именно поэтому я вижу что "Легенда" - именно одиночная книга. Ну и ещё потому, что в ней нет подпапок.

У "Люцеруса" так же не указан автор озвучки, зато указан год, и использован несколько иной формат для указания, какая именно из книг является первой в цикле. "01" или "001" так же будет воспринято как первый номер, что особенно удобно при большом количестве книг. Год - может быть как публикации бумажной книги, так и озвучки. Для себя я так и не определился, у меня в библиотеке есть и то и то. Что, по факту, делает данное поле почти бесполезным.

У книги "Легенда" несколько озвучивающих - они указаны через запятую. Кстати, с авторами можно делать так же.

Настройка сканера

Чтобы определение структуры хорошо работало, нужно выставить структуру папок как наивысший приоритет для сканера книг библиотеки Audiobookshelf:

Audiobookshelf настройка сканера книг
Audiobookshelf настройка сканера книг

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

Обложки

Ещё одной особенностью именно аудиокниг является то, что он исторически используют квадратную обложку. Потому, что родной формат для них - CD. Советую привести все обложки к одному формату - тогда отображение будет красивым. Для себя я сделал вывод, что чем больше пикселей в картинке - тем лучше. Современные экраны даже телефонов очень качественные. И смотреть на красивую сочную картинку банально приятнее.

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

LitRes Аудиокниги
LitRes Аудиокниги

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

Обрезка изображения в Google Chrome
Обрезка изображения в Google Chrome

Я пробовал варианты с локальным редактированием с помощью GIMP / Paint.NET, пробовал сделать веб-скрипт для автоматической обрезки. Но самым удобным оказался именно вариант с расширением для браузера. Так как непосредственно саму обложку её нужно найти.

И, кстати, у того же поиска по картинкам от гугла есть замечательные фильтры. А именно, указать что в результатах хотим видеть именно квадратные (не прямоугольные) картинки большого размера:

Поиск больших картинок в Google
Поиск больших картинок в Google

И далее полученные результаты уже удобно скармливать в Image cropper, прямо из окна браузера.

Обложки - уровень "автоматизация", OPDS

Попытка номер раз - скачивание обложек с Флибусты или другого OPDS-каталога. Обычно там обложки прямоугольные, так что сразу же прикручиваем обрезку до квадрата: abs-opds

Обрезка скриншота в abs-opds
Обрезка скриншота в abs-opds

В реальности abs-opds я почти не использую. Редко удаётся угадать, где конкретно обрезать. И не всегда обложки лучшего качества. Гораздо проще загуглить. Или предоставлять ссылку на обложку напрямую в Audiobookshelf.

Обложки - автоматизируем гугление

Довольно часто гугл мне выдавал в принципе отличные результаты - он находил именно квадратную обложку именно аудиокниги, которую я ищу. Сразу же возникла идея эти результаты парсить и напрямую отдавать в Audiobookshelf минуя окно поисковика. С помощью ChatGPT и какой-то матери был получен код, приведенный ниже. Только в образовательных целях! Так как парсинг результатов нарушает пользовательское соглашение.

Полный PHP код Гугл-провайдера метаданных для Audiobookshelf
<?php
header('Content-Type: application/json');

$raw_do = $_GET['do'];
$do = str_replace('/search?', '', $raw_do);
parse_str($do, $search);

$count  = isset($_GET['count'])  ? (int)$_GET['count']: 6;
$prefix = isset($_GET['prefix']) ? $_GET['prefix'].' ': '';
$lang   = isset($_GET['lang'])   ? $_GET['lang']: '';
$query  = isset($_GET['query'])  ? $_GET['query']  : $search['query'];
$author = isset($_GET['author']) ? $_GET['author'] : $search['author'];

switch ($lang)
{
    case 'ru': $prefix = 'аудиокнига '; break;
    case 'en': $prefix = 'audiobook '; break;
}

if (!$author || !$query) {
    http_response_code(400);
    echo json_encode(['error' => 'Missing author or query']);
    exit;
}

$searchTerm = urlencode("$prefix $author $query");
$url = "https://www.google.com/search?tbm=isch&q={$searchTerm}&tbs=isz:l,iar:s";

$options = [
    'http' => [
        'method' => "GET",
        'header' =>
            "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36\r\n" .
            "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8\r\n" .
            "Accept-Language: en-US,en;q=0.9\r\n" .
            "Referer: https://www.google.com/\r\n" .
            "Connection: keep-alive\r\n"
    ]
];
$context = stream_context_create($options);

$html = @file_get_contents($url, false, $context);

if (!$html) {
    http_response_code(500);
    echo json_encode(['error' => 'Failed to fetch Google Images']);
    exit;
}

// Extract image URLs
preg_match_all('/"((https?:\/\/[^"]+\.(jpg|jpeg|png|gif|webp)))"/i', $html, $matches);

$imageUrls = [];
foreach ($matches[1] as $url) {
    if (stripos($url, 'gstatic.com') !== false) continue;
    if (stripos($url, 'encrypted-tbn0.gstatic.com') !== false) continue;
    $imageUrls[] = $url;
    if (count($imageUrls) >= $count) break;
}

$results = [];
foreach ($imageUrls as $url) {
    $results[] = [
        'title' => $query,
        'authors' => [$author],
        'cover' => $url,
        'description' => null,
        'publishedYear' => null,
        'genres' => [],
        'tags' => [],
        'publisher' => null,
        'isbn' => null,
        'language' => null,
        'explicit' => false
    ];
}

echo json_encode(['matches'=> $results], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
?>

Код использовать по аналогии с abs-opds.

Audiobookshelf поиск обложки в гугл
Audiobookshelf поиск обложки в гугл

Авторы

Я часто пользуюсь вкладкой "Авторы" в Audiobookshelf. Поэтому каждому автору проставлено фото, найденное в интернете. Или изображение, ассоциирующееся с этим автором. Это хорошо работает не только непосредственно на вкладке всех авторов, но и в поиске:

Audiobookshelf Авторы
Audiobookshelf Авторы

Редактирование книги

Каждую книгу есть смысл отредактировать, чтобы внести ещё больше информации.

Audiobookshelf Настройки книги
Audiobookshelf Настройки книги

В настройках книги очень рекомендую кнопку "Быстрый поиск". Часто она заполнит и жанры, и описание, и год публикации. Жанр очень полезен, т.к. позже по нему можно фильтровать книги. Описание мне просто приятно видеть, чтобы знать чего ожидать от данной книги.

Коллекции м плейлисты

Ещё одной интересной функциональностью Audiobookshelf являются коллекции. Вполне можно собрать коллекции: "100 лучших книг всех времён и народов", "Лучшие ЛитРПГ по версии ИгроМании", "Фэнтези по рекомендации Васяна", "Прослушать позже" и т.д.

Audiobookshelf Коллекции
Audiobookshelf Коллекции

Коллекции доступны всем пользователям Audiobookshelf. Плейлисты каждый пользователь имеет свои.

Библиотеки и языки

Audiobookshelf поддерживает 2 типа библиотек: книги и подкасты.

Audiobookshelf Библиотеки
Audiobookshelf Библиотеки

Однако, можно создать несколько библиотек одинакового типа. Каждая из них будет иметь свой каталог с данными, настройки, сканер и т.д. Если имеете большие библиотеки на нескольких языках - имеет смысл разделить их в разные библиотеки.

Мне же больше нравится, когда все книги находятся в одном месте. А язык я просто указываю двухбуквенным кодом при редактировании книги.

Оффлайн использование

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

Audiobookshelf Android без подключения к серверу
Audiobookshelf Android без подключения к серверу

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

Озвучка текстовых книг

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

Хотелось чего-нибудь локального, модного, молодёжного, на нейронных сетях. Но обычно оно требует сложной настройки и мощный компьютер. Так родилась Читалка книг в голос - GitHub, 4PDA. Спасибо автору можно сказать здесь в комментариях ;-)

Читалка книг в голос
Читалка книг в голос

Читалка книг в голос у меня крутится на том же локальном NAS, за ночь может озвучить одну-две книги. Или можно использовать версию для компьютера - тогда одна книга озвучивается часа за 4, с полной загрузкой процессора.

Альтернативные клиенты

Audiobookshelf - программное обеспечение с открытым кодом, сервер. К нему могут подключаться неофициальные клиенты. Список клиентов есть в официальном FAQ Audiobookshelf.

Особенно хочу обратить внимание на Lissen, история создания которого есть здесь на хабре: Lissen: как я красивый плеер для аудиокниг писал .

Прослушивание книги в Lissen
Прослушивание книги в Lissen

Чего мне не хватает

Я перешёл на Audiobookshelf со Smart Audiobooks Player - это классный вариант для локального проигрывания книг с телефона:

Прослушивание книги в Smart Audiobook Player
Прослушивание книги в Smart Audiobook Player

Мне не хватает в мобильном клиенте Audiobookshelf:

  1. Предусиление громкости. Это актуально для аудиокниг плохого качества, записанных на тапок. Сейчас мне приходится предобрабатывать такие книги и очищать на компьютере, только потом скармливая их Audiobookshelf. Постобработки звука нет.

  2. Автоматического проигрывания следующей книги в серии. Это актуально при езде на велосипеде, мотоцикле и других ситуациях когда заняты руки. Аналогично не работает подхват следующего выпуска подкаста.

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

Заключение

Я меньше полугода пользуюсь Audiobookshelf, но уже слабо представляю свою жизнь без него. Просто напросто закрываются столько мелких вопросиков и проблем про аудиокниги, о которых даже не задумываешься. А в Audiobookshelf оно уже решено. В общем, очень советую попробовать.

Комментарии (0)


  1. MADLexx
    23.09.2025 18:32

    Тоже на него засматривался. У меня TrueNAS Scale дома крутится, и на него должно нормально установиться. Можно, по идее, установить обратный прокси на nginx, чтобы извне по поддомену удобно заходить было. Но у меня, в отличие от вас, даже не коллекция, а так, несколько десятков гигабайт, я раньше собирал именно радиоспектакли, но сейчас крайне редко встретишь именно аудиоспектакль по ролям со звуковыми эффектами, а не просто читку одним автором. А вы у себя не настраивали OPDS каталог обычных книг? Лежит на компе копия Флибусты, и пока руки не доходят настроить, чтобы нормально можно было извне с мобильного клиента или kindle c Koreader подключаться и читать. Насколько я помню там индексные файлы в формате .inpx. Calibre вообще их будет видеть и по ним искать, интересно?


    1. DeXPeriX Автор
      23.09.2025 18:32

      Несколько десятков гигабайт - тоже дело. Я начинал именно оттуда. И именно там понял, как мне нравится Audiobookshelf.

      Радиоспектаклей да, мало. Но они есть, и продолжают появляться. Например, "Ночной дозор" Лукьяненко есть в версии спектакля. Или недавно появился цикл "Каждому своё! Сергея Тармашева.

      Обратный прокси - да, желательно. По домену как-то удобнее что-ли. Но даже если и по порту заходить, то оно уже нормально. В клиентах адрес сервера вводится только один раз.

      OPDS имею, именно на локальную копию флибусты. Очень советую inpx-web как в целом морду для флибусты, и как OPDS каталог в частности. https://github.com/bookpauk/inpx-web


  1. 13werwolf13
    23.09.2025 18:32

    кручу у себя audiobookshelf для семьи и друзей. отличная штука, и не требовательная. так же перешёл на него с SAP, и те же претензии имею.
    кроме упомянутого тут Lissen есть ещё один кастомный клиент для него Buchable и ещё парочка для ios. а вот для десктопа клиента очень не хватает, я начал было писать свой, заодно познавая kirigami, однако застопорился в самом начале проекта из-за отсутствия времени..

    а ещё ему незватает федеративности, чтобы шарить прогресс между инстансами.


    1. DeXPeriX Автор
      23.09.2025 18:32

      А чем не устраивает стандартный веб-клиент? Вкладки лишние в Хроме тоже не люблю. Но хром позволяет "Установить страниц как приложение" в венде. И работает вроде норм.

      Прогресс между инстансами мне ещё не понадобился - свои книги имею только на своём сервере. Клиентом подключаю много, да. Но надобности во втором сервере пока не вижу.


      1. 13werwolf13
        23.09.2025 18:32

        А чем не устраивает стандартный веб-клиент?

        тем что он веб.

        Но надобности во втором сервере пока не вижу.

        а её и не будет, но я хочу чтобы как в plex "ваш друг прослушал такую-то книгу" и ты "о, у меня с ним совпадают вкусы, пожалуй и я послушаю"


  1. Hopenolis
    23.09.2025 18:32

    500 книг по 200мб - всего 100гб. У современного дешевого телефона есть 250гб(и возможность воткнуть отдельную флешку под это дело). И есть приложения с более менее удобным ориентированием, плеером, закладками, поиском итп.

    Сервер это явный бзик.


    1. meixnt
      23.09.2025 18:32

      Искренне не понимаю категоричность последнего утверждения.

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


      1. GolovaGirafa
        23.09.2025 18:32

        У вас все ещё в дороге на телефоне есть интернет? Завидую.


        1. DeXPeriX Автор
          23.09.2025 18:32

          А причём здесь интернет к клиент-серверной архитектуре?

          Ваш случай рассмотрен в параграфе "Оффлайн использование" в статье ;-)


          1. GolovaGirafa
            23.09.2025 18:32

            Ну вам бы прочесть, что прокомментировал человек, которого прокомментировал я.


            1. DeXPeriX Автор
              23.09.2025 18:32

              Разве я что-то пропустил?

              Синхронизация прогресса делается и пост-фактум, по приезду в месту где есть Wi-Fi.

              Несколько пользователей могут пользоваться так же, как и Вы - пока есть интернет, пользоваться им. Как интернета нет - скачивать книги для оффлайн использования.

              Бэкапы вообще происходят на сервере.


              1. GolovaGirafa
                23.09.2025 18:32

                Посмотрите на ситуацию шире. Мы все вчетвером из этой ветки комментариев скачали книгу на свои телефоны, и там слушаем. Тогда сервис выполняет функцию того же nas. Зачем мне синхронизировать прогресс прослушивания на своём телефоне со своим телефоном?

                Отсюда и печаль по убиенному мобильному интернету, при наличии которого, этот сервис хоть не совсем зазря кушал электричество.


                1. DeXPeriX Автор
                  23.09.2025 18:32

                  Да, конечно, если доступа к сети у устройства нет и никогда не будет - нет смысла пытаться использовать на нём сетевые сервисы.

                  Но может быть придём к какому-нибудь более конкретному примеру?

                  Например, Вы ездите на работу, где у Вас нет доступа в сеть. Во время езды его тоже нет. Но потом Вы вернётесь домой, синхронизируете свой статус. И сможете продолжить прослушивание уже с другого устройства. Например, с телевизора. А поскольку и Ваш сервер с книгами, и мобильный телефон, и телевизор находятся в одной локальной сети - то и доступ в интернет Вам не нужен.

                  Или другой пример. Вы уехали в отпуск в другую страну. И там нет интернета. Тогда Вы просто синхронизируетесь по приезду.

                  Или третий пример - Вы навсегда переехали в страну, где нет доступа ни к интернету, ни к оборудованию, ни к локальным сетям. Тогда, вероятно, аудиокниги Вас не очень интересуют т.к. их негде взять и не на чем прослушивать.

                  Я принимаю печаль по убиенному мобильному интернету. Но к изначальному комментарию она относится мало.


                  1. GolovaGirafa
                    23.09.2025 18:32

                    я уже дал вам конкретный пример, к которому вы хотите перейти, но вы решили устроить театр абсурда с переездами.
                    задам вам вопрос еще раз: для чего мне синхронизировать свой телефон с этим же телефоном?
                    по поводу того, что к чему относится, я уже просил вас перечитать выше. если прочесть не можете, то, простите, аудиокниги у меня про это нет.


    1. DeXPeriX Автор
      23.09.2025 18:32

      Попробуйте посмотреть на это с другой стороны. Естественно, городить целый сервер только ради книг - вряд ли хорошая идея. Но если сервер уже есть? Кто-то крутит фильмы и сериалы через Plex/Jellyfin. У кого-то домашняя система видеонаблюдения настроена. И в этих случаях обычно уже установлены достаточно большие диски. И можно пустить Audiobookshelf как дополнительный сервис. Много ресурсов он не ест.


  1. elgrace
    23.09.2025 18:32

    Я часто пользуюсь вкладкой "Авторы" в Audiobookshelf.

    А нет ли такой вкладки по чтецам? Удобно было бы. Нравится определённый чтец - хотелось бы найти, отфильтровать именно те книги, которые есть с озвучкой этого чтеца.


    1. DeXPeriX Автор
      23.09.2025 18:32

      Есть. Во вкладке "Библиотека" очень мощные фильтры. Фильтр по исполнителю называется "Читает".


      1. elgrace
        23.09.2025 18:32

        Ага, спасибо.


        1. DeXPeriX Автор
          23.09.2025 18:32

          Не за что :-)

          Из ещё вариантов - поле "Чтецы" в самой книге кликабельно. В общем то, перекинет в ту же библиотеку. Но если уже известна книга с желаемым чтецом, то может быть быстрее чем выставление фильтров.


  1. Gl237man
    23.09.2025 18:32

    Отличная вещь! Пользуюсь Audiobookshelf уже несколько лет, но с самого начала столкнулся с проблемой: когда импортирую новую книгу, у меня дублируется автор. Например, есть 10 книг одного автора, но для каждой из них Audiobookshelf создаёт отдельного автора с тем же самым именем — буква в букву. Кто-нибудь знает, что с этим делать?


    1. apdorodin
      23.09.2025 18:32

      Похоже на баг старых версий Audiobookshelf. Обнови сервер до актуальной, затем в «Авторы» переименуй один дубль в основное имя — записи сольются, после этого удали пустые авторы. Если не поможет, можно сделать руками


      1. Gl237man
        23.09.2025 18:32

        Спасибо большое! Трюк с переименованием авторов сработал.


    1. DeXPeriX Автор
      23.09.2025 18:32

      Я с таким не встречался. Сканер у меня настроен, чтобы всегда предпочитал данные с файловой системы. Имя автора всегда идёт из ФС и никогда не дублировалось.

      Бывает, что показывает пустые серии. Тогда нужно какую-нибудь книгу добавить в эту серию, сохранить. А потом удалить серию из книги - и пустая серия уйдёт. Но не знаю, связано ли это с дублирование авторов.


  1. Sevo98
    23.09.2025 18:32

    Благодарю за статью! Прочитал и появился вопрос, а есть ли какой-нибудь софт для организации офлайн библиотеки книг в текстовом формате? Имею небольшую библиотеку, преимущественно в форматах fb2, epub, djvu, и технические книги в pdf, хотел бы представить их в более красивом варианте, на подобии представления из статьи.


    1. DeXPeriX Автор
      23.09.2025 18:32

      Уф. Что-то прям красивое не подскажу. Пока имел небольшую библиотеку - просто хранил её на читалке, рассортированной по папкам по структуре Автор/Серия/Книга. Хватало.

      Сейчас вместо своей личной библиотеки просто использую локальное зеркало flibusta. Для этого использую уже названный в комментариях inpx-web: https://github.com/bookpauk/inpx-web . Inpx-web удобный, быстрый, минималистичный. Но не сказал бы, что прям уж такой красивый.

      Если нужно только на локальном компьютере, знаю что многие пользуются Calibre: https://calibre-ebook.com/ . Но мне интерфейс кажется несколько перегруженным.


    1. RoboSputnik
      23.09.2025 18:32

      Обсуждаемый здесь Audiobookshelf умеет работать с электронными книгами. Создаёте библиотеку, в её настройках выбираете прямоугольные обложки (т.к. для текстовых книг обложки предпочтительнее прямоугольные) и в соответствии со структурой добавляете книги. Если книга в формате EPUB, то её можно будет открывать прямо в Audiobookshelf (работает как в приложении, так и в веб-версии). Остальные форматы Audiobookshelf сам открывать не умеет, он будет отдавать их на скачивание.

      Альтернатива - приложение Calibre-web. Как и Audiobookshelf, ставится на Linux сервер в докере. Оно изначально заточено именно под тексты, но я не нашёл в нём никаких преимуществ перед Audiobookshelf - в частности, открывать бОльшую часть форматов он тоже не умеет и отдаёт на скачивание. Ну разве что можно поставить галку в настройках, чтобы показывал коллекцию без авторизации. Кстати, мобильное приложение под него показывать книги вообще не умеет, только скачивать даёт.

      И вот упомянутый в комментариях Inpx-web, похоже, тоже будет хорошим вариантом. Посмотрел демо-версию, там онлайн-читалка много форматов поддерживает. Из минусов - ни слова про мобильное приложение (видимо, его просто нет), но есть OPDS каталог, что позволяет прикрутить в качестве клиента многие мобильные читалки. Ну и нужен INPX файл коллекции, хотя его сделать не так сложно, тем более что во многих случаях он уже есть.


      1. DeXPeriX Автор
        23.09.2025 18:32

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


  1. RedHead
    23.09.2025 18:32

    Художественная литература - это, скорее, развлечение: как фильмы, только сложнее, потому что задействует память и воображение. Техническую литературу стоит читать с блокнотом - бумажным или электронным - обязательно делая конспекты. Причём удобнее работать с текстовым форматом. Что касается прогулок с аудиокнигами: восприятие новой информации - это не отдых. Это то же самое, что «отдыхать» за игрой в танки: мозг воспринимает её как работу и устаёт, так же как от любой соревновательной деятельности. В итоге такой формат информации оказывается бесполезным.


    1. DeXPeriX Автор
      23.09.2025 18:32

      Согласен со всем, кроме последнего утверждения. Ну, или я его не понял.

      Если я копаю картошку или крашу забор, то руки у меня уже заняты и я совсем не отдыхаю. Но придать туда элемент развлечения в виде аудиокниги - приятно и не мешает основному занятию.


  1. Kundello
    23.09.2025 18:32

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


    1. DeXPeriX Автор
      23.09.2025 18:32

      Я как-то смотрел в сторону Kavita - https://www.kavitareader.com/ . Но у меня с ней почему-то не сложилось. Скорее всего в основном потому, что нет клиента для Kindle :'-D

      В списке Awesome Selfhosted есть ещё несколько вариантов: https://github.com/awesome-selfhosted/awesome-selfhosted?tab=readme-ov-file#document-management---e-books