YACReader объединяет отдельную читалку и менеджер коллекции: один компонент открывает CBR, CBZ, PDF и папки со страницами, второй хранит обложки, прогресс, метаданные и списки чтения. На Xeon Live можно скачать YACReader бесплатно, а ниже разобран рабочий процесс от первой библиотеки до поиска, Comic Vine, лупы, резервных копий и доступа с другого устройства.
Десктопная ветка 10.x заметно расширила программу: появились непрерывная прокрутка, выбор метода масштабирования Lanczos, светлые и тёмные темы, редактор тем, резервные копии базы, восстановление библиотеки, улучшенная поисковая справка, Web UI и экспериментальные инструменты организации файлов по метаданным. Базовая логика при этом осталась простой: файлы комиксов продолжают лежать в обычных папках, а YACReaderLibrary строит поверх них каталог.
YACReader рассчитан на локальные коллекции цифровых комиксов, манги, сканов и графических альбомов. YACReader открывает RAR, ZIP, CBR, CBZ, TAR, PDF, 7z, CB7, JPEG, GIF, PNG, TIFF и BMP; в более новых сборках также поддерживаются WebP и RAR5. В версии 10.2 добавлена экспериментальная работа с EPUB, содержащими изображения, поэтому этот формат пока разумно считать дополнительным, а не основой коллекции.
Программа состоит из трёх связанных частей. YACReader — окно чтения с перелистыванием, масштабом, разворотами, закладками, лупой, настройкой изображения и сохранением страниц. YACReaderLibrary — каталог с библиотеками, деревом папок, обложками, статусами, поиском, Reading Lists, тегами и метаданными. YACReaderLibraryServer обслуживает удалённый доступ и Web UI. Такое разделение удобно для постоянной коллекции: каталог остаётся открытым отдельно, а конкретный выпуск запускается в собственном окне чтения.
Для PDF-комиксов YACReader работает как визуальная читалка. Для документов с комментариями, формами, выделением текста и другими офисными задачами удобнее специализированный просмотрщик Okular. Такое разграничение важно: YACReader не пытается заменить редактор документов и сосредоточен на последовательном просмотре страниц.
YACReaderLibrary строится вокруг трёх зон. Слева находятся LIBRARIES, FOLDERS и READING LISTS. В центре отображается содержимое выбранной папки или списка: сетка обложек, Flow, информационное представление или табличный вид. В верхней панели расположены переходы назад и вперёд, настройки, сервер, справка, переключатели представления и строка поиска. Информационная панель показывает данные выбранного выпуска, включая серию, номер, дату, количество страниц, авторов, издателя и описание, когда эти сведения занесены в базу.
LIBRARIES хранит отдельные каталоги с собственными корневыми папками. FOLDERS повторяет физическую структуру каталогов на диске. READING LISTS предназначен для логических подборок, которые не обязаны совпадать с расположением файлов. Поэтому одну и ту же серию удобно оставить в папке издателя, а отдельные выпуски одновременно добавить в Reading, Favorites или тематический список. Цветные теги дополняют эту схему и работают как быстрые пометки для состояния файла.
Сетка удобна для визуального выбора по обложке. Info view раскрывает подробности выбранного выпуска. Боковая информационная панель оставляет сетку на экране и выводит сведения справа. Flow создаёт горизонтальное перелистывание обложек. Табличный вид полезен при проверке серий, номеров и других полей; набор столбцов настраивается через контекстное меню заголовка таблицы. Переключение вида не меняет файлы на диске — меняется только способ работы с каталогом.
В отдельном окне YACReader находятся команды открытия файла и папки, переходы Previous и Next, переход к соседнему комиксу, Go to page, режимы Fit to width и Fit to height, полный размер, поворот, Double page, Continuous scroll, Magnifying glass, закладки, Options, Shortcuts, Save current page и Extract page. Эти действия вынесены в панель инструментов и систему настраиваемых сочетаний клавиш. Такой набор покрывает чтение без обращения к библиотеке: отдельный CBZ открывается напрямую, а папка с изображениями читается как последовательность страниц.
Начните с структуры на диске. Создайте один понятный корневой каталог, внутри оставьте серии и тома в отдельных папках. Для манги практична схема Manga → название серии → тома, для западных комиксов — Comics → издатель → серия → выпуски. Файлы CBR, CBZ, CB7, PDF и поддерживаемые архивы оставляйте в исходном виде. YACReaderLibrary не требует массовой распаковки и не переносит коллекцию в закрытое хранилище. После подготовки откройте несколько файлов в YACReader напрямую и проверьте порядок страниц. Числовой порядок в именах страниц и выпусков снижает риск хаотичной сортировки.
В YACReaderLibrary нажмите кнопку с плюсом в секции LIBRARIES. В диалоге новой библиотеки задайте понятное имя и выберите корневую папку коллекции. После подтверждения программа просканирует дерево каталогов, создаст собственную базу и извлечёт обложки. Во время первого прохода не переименовывайте и не переносите исходные файлы в проводнике: стабильная структура упрощает построение базы. По завершении откройте корень библиотеки, затем несколько вложенных папок. В центре должны появиться обложки, а слева — то же дерево каталогов, которое видно в файловой системе.
Проверка после сканирования состоит из трёх действий. Сначала сравните число выпусков в одной небольшой папке с числом карточек в YACReaderLibrary. Затем откройте первый и последний файл этой папки через библиотеку и убедитесь, что reader запускает правильный выпуск. После этого закройте читалку и посмотрите на статус: библиотека должна зарегистрировать факт открытия и текущую позицию. Такой контроль выявляет ошибки быстрее, чем просмотр всей коллекции.
Большую разнородную коллекцию удобнее разбить на несколько библиотек, а не на одну гигантскую. Отдельные Comics, Manga, Webtoons, PDF Comics и Archive уменьшают глубину дерева и упрощают обслуживание. Тип библиотеки также задаёт контекст содержимого; в современных версиях YACReaderLibrary доступна команда смены типа библиотеки, которая распространяет выбранный тип на её содержимое. Для манги это полезно, потому что признак manga дальше учитывается при чтении.
Новые выпуски добавляйте в уже существующие папки на диске, затем запускайте обновление библиотеки или текущей папки. YACReaderLibrary повторно сканирует структуру, добавляет новые файлы и обновляет обложки. Для крупного каталога локальное обновление текущей папки экономит время по сравнению с полным пересканированием. Во время автоматического обновления большинство действий с базой временно блокируется; индикатор занятости рядом с LIBRARIES показывает активную операцию и позволяет остановить её.
После обновления отфильтруйте Recent или используйте поисковый пресет недавно добавленного содержимого. Откройте новые карточки и проверьте обложку, число страниц и порядок томов. Повторное сканирование не заменяет файловую дисциплину: понятные имена и стабильные каталоги остаются основой. В версии 10.3 появилась экспериментальная организация файлов по метаданным, но её правильное место — после заполнения и проверки полей, а не до первой индексации.
Для одиночного выпуска запустите YACReader и используйте Open, затем выберите CBR, CBZ, CB7, PDF или поддерживаемый архив. Для папки со сканами применяйте Open Folder: reader собирает изображения каталога в последовательность и листает их как один комикс. При работе через YACReaderLibrary дважды откройте карточку или используйте команду открытия выбранного комикса — отдельное окно reader получит путь к файлу и вернёт прогресс в библиотеку.
Сразу после открытия проверьте три вещи. Номер текущей страницы должен соответствовать ожидаемому началу, изображения должны идти в правильной нумерации, а обложка должна занимать отдельную первую позицию. При неверном порядке причина чаще находится в именах файлов внутри архива. YACReader не предназначен для перестановки страниц внутри CBR/CBZ, поэтому такой архив исправляют отдельно, затем обновляют библиотеку. При повреждённом контейнере reader сообщает об ошибке открытия; рабочую копию архива проверяют обычным архиватором и заменяют в исходной папке.
Первую настройку чтения выбирайте по геометрии страницы. Fit to width растягивает страницу по ширине окна и оставляет вертикальную прокрутку; это основной режим для манги, сканов с мелким текстом и высоких страниц. Fit to height помещает страницу целиком по высоте и сохраняет композицию; этот вариант удобен для стандартных американских и европейских страниц на широком мониторе. Full size показывает исходный масштаб и подходит для проверки мелких деталей, качества скана и артефактов сжатия.
В Options откройте параметры подгонки. Настройка Enlarge images to fit width/height управляет увеличением маленьких изображений до размеров окна. Для старых низкоразрешённых сканов чрезмерное увеличение подчёркивает пиксели, поэтому его разумно отключить. Для цифровых страниц нормального разрешения увеличение делает картинку крупнее без постоянного ручного зума. После изменения режима пролистайте две-три страницы разной геометрии: результат оценивают не по обложке, а по обычной странице, развороту и странице с мелким текстом.
Для печатных комиксов на широком экране включите Double page. Затем откройте Options → Double Page options и оставьте Show covers as single page включённым: обложка занимает одну позицию, а внутренние страницы формируют пары. Перейдите на известный разворот и проверьте, что его половины стоят рядом в правильном порядке. При смещении пары на одну страницу используйте команды перемещения двойной страницы влево или вправо; для них предусмотрены настраиваемые сочетания, а по умолчанию добавлены Ctrl+Shift+Left и Ctrl+Shift+Right.
Для длинного выпуска Go to page быстрее последовательного перелистывания. Введите номер страницы или воспользуйтесь Go to flow: визуальная лента показывает соседние страницы и подходит для грубого перехода по главе. Закладки ставятся командой Set Bookmark, а список открывается через Show bookmarks. Закладка полезна не только для продолжения чтения: ею удобно отметить разворот, страницу с картой, спорный скан или место для последующего сравнения. После закрытия выпуска YACReaderLibrary хранит текущую позицию отдельно от пользовательских закладок.
Для японской манги задайте тип manga на уровне библиотеки, папки или конкретного содержимого. В reader включите manga mode; направление чтения меняется справа налево, а логика двойной страницы и Go to flow учитывает этот порядок. Затем откройте начало тома и проверьте первые три перехода: следующая страница должна появляться в ожидаемом направлении, а двойной разворот должен строиться зеркально относительно западного режима. Настройка сохраняется для комикса и переносится на следующие выпуски, открытые в этом режиме.
На небольшом дисплее используйте одиночную страницу и Fit to width. Такой набор увеличивает реплики и оставляет вертикальную прокрутку. На широком мониторе Double page manga подходит для разворотов, но качество чтения оценивают по обычным страницам с мелким текстом. При слишком маленьком шрифте вернитесь к одиночному режиму. Статус manga в библиотеке полезен и для мобильных клиентов: удалённое чтение получает признак типа из YACReaderLibrary.
В десктопной ветке 10.0 появился Continuous scroll. Переключите reader в этот режим для длинных вертикальных страниц и веб-комиксов. После активации пролистывание перестаёт быть жёстко постраничным: соседние изображения образуют непрерывную ленту. Настройте ширину так, чтобы текст оставался читаемым, затем пройдите несколько экранов колесом или трекпадом. Версия 10.1 улучшила определение последней страницы, производительность и уменьшила мерцание при изменении размера окна.
Для трекпада полезна отдельная настройка scroll animations и scroll smoothing. При задержке от колеса или сенсорной панели эти эффекты отключаются в настройках чтения. После отключения сравните движение в одном и том же комиксе: реакция на короткие жесты становится прямее. На мобильной версии тот же класс контента читается через continuous vertical mode, а Android дополнительно предлагает continuous horizontal mode.
Автоматическое распознавание разворотов помогает в Double page mode, но финальную проверку делайте вручную на нескольких известных местах. Перейдите к развороту через Go to page, посмотрите порядок половин и при необходимости сдвиньте пару на одну страницу. Для страниц, отсканированных боком, используйте Rotate left или Rotate right. Поворот действует на отображение и не перепаковывает исходный архив, поэтому файл на диске остаётся без изменений.
Смешанные коллекции удобнее держать с разными настройками по типам. Манга получает manga mode и Fit to width, европейские альбомы — Fit to height или Double page, вебтуны — Continuous scroll, архивные журналы — поворот и лупу. Так reader не приходится каждый раз настраивать с нуля. После смены режима вернитесь к нескольким страницам, которые уже читали: в 10.1 исправлена потеря позиции при переключении fit-режимов, поэтому текущая страница должна сохраняться.
Строка поиска расположена в верхней панели YACReaderLibrary. Для простого поиска введите часть названия серии, выпуска, автора или другого индексируемого поля. В версии 10.2 в выпадающее меню строки добавлены справка по синтаксису и быстрые пресеты. Preset Unread подставляет read:false, In progress — hasBeenOpened:true AND read:false, Highly rated — rating>=4. Recently added строится по числу дней, заданному для признака недавнего содержимого.
Для точной фильтрации используйте поля и операторы. Движок поддерживает равенство через двоеточие или знак =, точное совпадение ==, а также , =. Даты добавления фильтруются относительными значениями: added>7 показывает содержимое, добавленное за последние семь дней, а added
Поисковая строка работает поверх текущего контекста библиотеки. После очистки поля возвращается обычный просмотр папки. Для больших коллекций это быстрее ручного раскрытия дерева: поиск по серии и статусу сразу выводит непрочитанные выпуски, а поиск по рейтингу формирует временную подборку без создания отдельного Reading List. В Web UI версии 10.3 также появился поиск по отдельной библиотеке.
YACReaderLibrary различает непрочитанное, начатое и завершённое содержимое. После открытия выпуска reader возвращает текущую позицию в библиотеку. На домашнем экране Continue Reading показывает то, что читается сейчас; список Reading сортируется по активности чтения, а Recent собирает недавнее содержимое. Favorites работает как постоянная подборка. Для контроля серии откройте папку, включите отображение статусов и двигайтесь по выпускам по порядку. После окончания тома закройте reader и проверьте отметку в библиотеке перед переходом к следующему.
В длинной серии полезна простая дисциплина: Favorites оставляйте для действительно постоянного доступа, Reading — для активных серий, Recent используйте как историю последних действий. Тогда три механизма не дублируют друг друга. Блок Continue Reading в домашнем представлении можно скрыть настройкой YACReaderLibrary, когда библиотека используется преимущественно для каталогизации, а не для ежедневного чтения.
Reading Lists не меняют расположение файла на диске. Создайте отдельный список для очереди чтения, проверки сканов или тематической подборки, затем добавляйте туда выпуски из разных папок. Теги решают более короткие задачи: to fix, bad scan, alternate cover, manga и другие собственные пометки. Текстовые теги индексируются поиском, поэтому технические проблемы удобно собирать одним фильтром и исправлять пакетно позже.
Порядок внутри Reading Lists настраивается перетаскиванием. Это полезно для кроссоверов и сюжетных арок, где файловая нумерация разных серий не отражает реальную последовательность. Сначала соберите нужные выпуски в один список, затем расставьте их в нужном порядке и открывайте прямо из списка. YACReader передаёт reader последовательность списка, поэтому переход к следующему комиксу сохраняет заданный порядок.
Для интеграции Comic Vine укажите персональный API key в настройках YACReaderLibrary. Затем выделите выпуск или группу выпусков и запустите получение информации. Диалог сопоставления ищет серию и выпуск, показывает найденные варианты, обложку и поля. Сверяйте минимум четыре признака: название серии, номер, том и год. После подтверждения библиотека заполняет доступные метаданные — название, авторов, издателя, персонажей, описание и другие поля, которые поддерживает карточка.
На серию из нескольких выпусков работайте последовательными партиями. Сначала обработайте один характерный выпуск и убедитесь, что найден правильный том. Затем применяйте те же параметры к соседним номерам. В современных версиях есть настройка точного совпадения тома и улучшенный исходный текст поиска Comic Vine; она уменьшает число ложных совпадений у серий с перезапусками. После массовой обработки откройте Info view и пролистайте несколько карточек: несоответствие года или номера заметно раньше, чем по одной обложке.
Автоматическое сопоставление не заменяет контроль. Для спорного выпуска откройте редактор метаданных, исправьте серию, номер, том, дату, авторов или описание и сохраните карточку. При одинаковых значениях для нескольких выпусков выделите их вместе и используйте bulk edit — так общие поля назначаются намеренно, а не копируются от предыдущей карточки. В 10.0 отдельно исправлена ситуация, когда переход между выпусками в редакторе мог переносить значения в пустые поля; массовое редактирование оставлено как правильный способ общих правок.
Обложку также задают вручную. В редакторе метаданных поддерживается выбор файла и перетаскивание изображения на область обложки; для нескольких выпусков доступны массовые обложки и возврат к исходной. Для папок пользовательская обложка задаётся через контекстное меню. После правки сравните сетку и Info view: новая обложка должна появиться в карточке, а текстовые поля — в информационной панели и поиске.
Organize files в 10.3 относится к экспериментальным инструментам и физически переименовывает или переносит файлы по шаблону, основанному на метаданных. Перед запуском заполните серию, номер и другие поля, которые входят в шаблон. В диалоге выберите базовое место назначения — selected folder или library root — и настройте Path format. Предварительный список показывает новое расположение рядом с исходным. Просмотрите несколько строк в начале, середине и конце списка и только после этого запускайте Move files.
Эта функция полезна после очистки метаданных, а не вместо неё. Пустой или ошибочный том превращается в ошибочную папку, а неверный номер закрепляется в имени файла. Для первой операции возьмите маленькую серию и сохраните резервную копию исходной структуры. После переноса вернитесь в YACReaderLibrary, откройте изменённую папку и проверьте обложки, порядок, прогресс и несколько файлов. Версия 10.3 сохраняет состояние папок при переименовании внутри приложения, включая статусы чтения и даты.
Откройте Options и перейдите к Image adjustments. Яркость изменяет общий уровень света, контраст раздвигает светлые и тёмные участки, гамма воздействует прежде всего на средние тона. Для старого скана начинайте с гаммы и небольшого контраста, затем корректируйте яркость. Проверяйте результат на участках с тонкой штриховкой и белыми пузырями речи: детали не должны исчезать в чёрном или белом. Команда Reset возвращает исходное отображение, поэтому эксперимент не меняет файл на диске.
В разделе Scaling доступны методы Nearest, Bilinear и Lanczos. Nearest работает быстрее и подчёркивает пиксельную структуру; Bilinear даёт мягкий компромисс; Lanczos в ветке 10.x предназначен для более качественного масштабирования. Для цифрового комикса высокого разрешения используйте Lanczos, затем сравните мелкий текст на 100% и в режиме Fit to width. На слабом компьютере снижение качества масштабирования уменьшает нагрузку при частом изменении размера окна.
Включите Magnifying glass на странице с мелкими деталями. В версии 10.2 лупа поддерживает прямоугольную и круглую форму, опциональное кольцо и edge easing, которое помогает рассматривать область у самой кромки страницы. Размер и уровень увеличения сохраняются между сессиями. Переместите лупу к краю панели, проверьте, что нужный фрагмент остаётся внутри увеличенной области, затем настройте форму и размер под свой экран. Команда сброса лупы имеет стандартное сочетание slash, а все сочетания переназначаются в Shortcuts settings.
Лупа работает с исходным материалом страницы, поэтому подходит для технической проверки скана. Сначала сравните мелкий текст в обычном режиме, затем под лупой; размытый исходник останется размытым, а качественный мелкий текст станет читаемее. Так быстро отделяется проблема масштаба от реально плохого файла. Для постоянного чтения лучше подобрать Fit to width, а лупу оставить для отдельных деталей.
Save current page сохраняет отображаемую страницу как изображение. В версии 10.1 имя по умолчанию включает имя файла комикса и номер страницы, а выбранный каталог назначения запоминается между запусками. Используйте эту команду для заметки, сравнения качества или отдельного кадра, затем откройте сохранённый файл в обычном просмотрщике и проверьте разрешение. В 10.1 исправлено сохранение страниц с низким разрешением, поэтому актуальная ветка выдаёт корректный результат.
Extract page решает другую задачу: команда извлекает исходные видимые страницы при работе с вариантами на основе изображений. Она полезна, когда важны оригинальные байты страницы, а не отрисованное представление reader. Сначала перейдите на нужную страницу, убедитесь в её номере, выберите Extract page, сохраните результат и сравните размеры изображения с исходным содержимым архива. Для двойного разворота команда ориентируется на видимые страницы, поэтому перед извлечением проверьте, какие две страницы стоят в текущей паре.
В YACReaderLibrary 10.2 появились встроенные резервные копии и восстановление. База автоматически копируется в каталог .yacreaderlibrary/backups. Перед крупной правкой метаданных или организацией файлов создайте ручную резервную копию через действие backup, затем убедитесь, что она появилась в списке доступных копий. При пропавших обложках или файлах запустите Repair Library: функция восстанавливает отсутствующие обложки и повторно сканирует материалы, которые раньше не добавились.
При обнаружении повреждения базы программа предлагает попытку ремонта или восстановление из резервной копии. Повреждённый оригинал сохраняется в .yacreaderlibrary/recovery, поэтому диагностика не начинается с удаления базы вручную. После восстановления откройте несколько папок, проверьте обложки, прогресс и поиск, затем выполните обычное обновление библиотеки. Для headless-сервера доступны отдельные команды repair-library, backup-library, list-backups, restore-library и repair-library-db.
Откройте серверный диалог кнопкой на верхней панели YACReaderLibrary. В нём видны доступный IP, порт, QR-код и флажок включения сервера. В мобильном YACReader откройте добавление сервера, отсканируйте QR-код или вручную внесите IP и порт. После соединения выберите библиотеку, откройте нужную папку и проверьте, что видны обложки и статусы. Для чтения дома файл открывается удалённо; для поездки используйте Import и сохраните выбранный комикс в локальную библиотеку телефона или планшета.
Связь работает внутри сети при доступности выбранного адреса и порта. Брандмауэр операционной системы должен разрешать соединения YACReaderLibrary. В версии 10.2 серверный диалог получил прямое открытие Web UI, а сам Web UI — базовый reader и управление обновлением библиотеки. В версии 10.3 добавлены поиск по отдельной библиотеке и Continue Reading. Для постоянного NAS-сценария используется YACReaderLibraryServer без графического интерфейса; для обычного домашнего ПК достаточно встроенного сервера YACReaderLibrary.
Ошибка открытия CBR или CBZ проверяется от файла к приложению. Сначала откройте архив обычным архиватором и убедитесь, что внутри находятся читаемые изображения. Затем проверьте расширение и имя файла, перенесите тестовую копию в короткий локальный путь и откройте её через Open. Успешное открытие копии указывает на проблему исходного пути или контейнера, а повторная ошибка на корректном архиве требует проверки конкретного формата и сборки YACReader. После замены файла запустите обновление текущей папки библиотеки.
Пропавшая обложка или отсутствующая карточка после обновления лечится встроенным Repair Library. Сначала откройте корневую папку библиотеки из приложения и убедитесь, что сам файл существует. Затем запустите восстановление и дождитесь повторного сканирования. При повреждении базы используйте предлагаемое восстановление из backups, а не ручное удаление .yacreaderlibrary. Такой порядок сохраняет прогресс, списки и метаданные.
Неверные данные Comic Vine исправляются до организации файлов. Откройте карточку, сверяйте том, год и номер, включите точное совпадение тома для сложной серии и повторите получение информации. После подтверждения откройте Info view и проверьте соседние выпуски. Перенос Organize files запускайте только после этой проверки, потому что инструмент строит новые пути из метаданных.
Торможение колесом или трекпадом проверяется в Options: отключите scroll animations и scroll smoothing, затем сравните тот же участок в Continuous scroll. Длинные пути в Windows поддерживаются экспериментально с ветки 10.1 для создания библиотек и открытия файлов; сама Windows должна иметь включённый LongPathsEnabled. Для спорной папки перенесите один файл ближе к корню диска и сравните результат, после чего уже меняйте системную настройку для всей коллекции.
YACReader сильнее всего раскрывается как связка reader + library. Отдельная читалка остаётся простой, а каталог берёт на себя структуру, метаданные, прогресс, поиск, Reading Lists и сервер. Ветка 10.x добавила современные темы и более качественное масштабирование, а версии 10.2–10.3 заметно улучшили обслуживание крупных библиотек. При этом программа сохраняет ориентацию на собственные локальные файлы, а не на встроенные магазины или онлайн-каталоги.
Для максимально простого чтения одиночных архивов подойдёт MComix: он сосредоточен на открытии CBR/CBZ и классических режимах просмотра. Ещё один Windows-вариант — GonVisor. Для PDF-документов с аннотациями и текстовыми инструментами практичнее Okular. OpenComic отличается более широким набором сетевых протоколов и OPDS, тогда как YACReader делает упор на локальную библиотеку, Comic Vine и собственный серверный контур.
Практический выбор сводится к масштабу коллекции. Один-два файла открываются напрямую в YACReader без создания каталога. Постоянная серия выигрывает от YACReaderLibrary, статусов и Reading Lists. Архив из сотен выпусков требует поиска, метаданных и резервных копий. Коллекция на NAS получает дополнительную пользу от YACReaderLibraryServer и Web UI. При таком подходе программа остаётся предсказуемой: файлы принадлежат пользователю, структура папок сохраняется, а библиотека добавляет удобный индекс поверх обычного диска.