- BrainTools - https://www.braintools.ru -

Навайбкодил десктоп-клиент для «Яндекс Книг» на WinUI 3

Привет, хабр!)

Периодически хочется почитать книги с ноутбука, особенно в дороге. Но у «Яндекс Книг» есть только мобильные приложения и сайт, а отдельного клиента для Windows нет. Через браузер читать можно, пока есть нормальный интернет, однако в поезде или за городом этот план иногда заканчивается одновременно с мобильной сетью.

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

Что я хотел получить

Изначальная идея была довольно простой: открыть приложение, увидеть свою библиотеку, скачать нужную книгу и спокойно читать её без интернета.

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

Для интерфейса я выбрал WinUI 3, потому-что хочу чтобы всё было в стиле 11 винды. В результате приложение умеет загружать библиотеку пользователя, искать текстовые книги, добавлять и удалять их, скачивать EPUB для офлайн-чтения и хранить локальный прогресс. Есть светлая и тёмная темы, настройка размера текста, оглавление, горячие клавиши и двухстраничный режим для широких окон.

Библиотека книг пользователя

Библиотека книг пользователя

Собственно, вайбкодинг

До этого я пытался писать приложения на WinUI 3, но это не моя сфера деятельности поэтому проект делался в основном силами Codex и Claude opus 4.8.

Перед тем как что-либо делать, я прошерстил интернет на наличие готовых API и был очень рад что такое есть [1]. Затем последовал 1 день плотного вайбкодинга и что-то получилось. Единственная проблема текущего приложения и API в том, что нет возможности отправлять Яндексу обновлённый прогресс чтения любой книги(Несмотря на возможность добавлять и удалять книги из библиотеки пользователя, в чей аккаунт залогинено приложение)

Что получилось

Сейчас это вполне пригодная для использования первая версия.

Клиент показывает личную библиотеку, позволяет искать и добавлять книги, загружает их на компьютер и открывает во встроенной читалке. Обложки и метаданные кэшируются локально, поэтому уже загруженная библиотека остаётся доступной без сети. OAuth-токен хранится не в обычном конфигурационном файле, а в Windows Credential Locker.

Режим чтения

Режим чтения

Разумеется, пока не всё идеально. Например, сейчас поддерживаются именно текстовые книги, аудиокниг пока нет.

И, пожалуй, самое важное ограничение: клиент использует внутренний недокументированный API Bookmate, на котором работает сервис. Это означает, что после очередного обновления со стороны Яндекса что-нибудь может внезапно сломаться. Такой проект по определению живёт немного на пороховой бочке.

А это вообще законно?

Проект не связан с Яндексом и не пытается обходить подписку или открывать недоступный контент. Для работы нужен собственный аккаунт(с подпиской), а полный текст можно скачать только для тех книг, которые доступны этому аккаунту.

Тем не менее это неофициальный клиент, использующий непубличный API. Поэтому я рассматриваю его прежде всего как эксперимент и инструмент для личного использования, а не как стабильную альтернативу официальному приложению.

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

Навайбкодил десктоп-клиент для «Яндекс Книг» на WinUI 3 - 3

Ссылки

Исходный код [2] и Скачать [3]

Спасибо за внимание [4])

Автор: kvch

Источник [5]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/32957

URLs in this post:

[1] есть: https://github.com/stepan163s/yandex-book-ap

[2] Исходный код: https://github.com/Gorbachevvv/yandex-books-desktop

[3] Скачать: https://github.com/Gorbachevvv/yandex-books-desktop/releases/tag/Latest

[4] внимание: http://www.braintools.ru/article/7595

[5] Источник: https://habr.com/ru/articles/1058126/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1058126

www.BrainTools.ru

Rambler's Top100