Об этом проекте

# Psst Psst — это высокопроизводительный многоплатформенный клиент Spotify с нативным графическим интерфейсом пользователя (GUI). Написанный полностью на Rust, он избегает накладных расходов приложений на основе Electron, обеспечивая легкий и отзывчивый опыт. Программное обеспечение полностью кроссплатформенно и поддерживает Windows, Linux и macOS. ## Ключевые особенности - **Нативная производительность**: Создан на Rust для скорости и эффективности, использует библиотеку пользовательского интерфейса Druid для нативного внешнего вида и ощущения. - **Основная функциональность**: Поддерживает воспроизведение треков в формате Vorbis, просмотр сохраненных альбомов и треков, отслеживаемых плейлистов и жанровых плейлистов, включая контент «Для вас». - **Поиск и обнаружение**: Позволяет искать исполнителей, альбомы и треки непосредственно в приложении. - **Поддержка подкастов**: Включает функциональность для просмотра и прослушивания подкастов. - **Управление воспроизведением**: Оснащено управлением медиаклавишами, регулировкой громкости звука и нормализацией громкости аудио. - **Темы**: Включает опцию темной темы. - **Конфиденциальность**: Подключается только к официальным серверам Spotify; не передает данные домой. Учетные данные пользователя не хранятся локально; вместо этого используются многоразовые токены аутентификации от Spotify. Кэши хранятся локально и могут быть удалены в любое время. ## Требования - Для использования приложения требуется учетная запись **Spotify Premium**. - Начиная с февраля 2026 года, из-за изменений в политике доступа для разработчиков Spotify, Psst требует, чтобы пользователи регистрировали собственный идентификатор клиента разработчика Spotify для функций Web API (таких как поиск, доступ к библиотеке и плейлистам). Пользователи должны зарегистрировать приложение на панели управления разработчика Spotify и ввести идентификатор клиента на экране входа в Psst. ## Поддержка платформ - **Windows**: Доступно через загрузку исполняемого файла. - **macOS**: Доступно через установщик DMG. - **Linux**: Доступно для архитектур x86_64 и aarch64, включая пакеты Debian (.deb). - **OpenBSD**: Работа в процессе; поддержка может быть нестабильной. Неофициальные сборки также доступны через Пользовательский репозиторий Arch (AUR) и Homebrew. ## Установка Готовые бинарные файлы можно загрузить со [страницы релизов GitHub](https://github.com/jpochyla/psst/releases/latest). ### Сборка из исходного кода Для сборки Psst из исходного кода вам понадобится последняя стабильная версия Rust (не менее 1.65.0). #### Зависимости для Linux - **Debian/Ubuntu**: `sudo apt-get install libssl-dev libgtk-3-dev libcairo2-dev libasound2-dev` - **RHEL/Fedora**: `sudo dnf install openssl-devel gtk3-devel cairo-devel alsa-lib-devel` #### Команды сборки ```shell cargo build # Добавьте --release для релизной сборки. ``` Для запуска GUI: ```shell cargo run --bin psst-gui ``` Для создания установочного пакета (например, .app для macOS): ```shell cargo install cargo-bundle cargo bundle --release ``` ## Структура проекта - `/psst-core`: Основная библиотека, обрабатывающая TCP-сессии Spotify, получение аудио, декодирование, вывод и очередь воспроизведения. - `/psst-gui`: GUI-приложение, созданное с помощью Druid. - `/psst-cli`: Примерный CLI-инструмент для воспроизведения треков. ## Дорожная карта Текущая разработка сосредоточена на улучшении стабильности и добавлении отсутствующих функций, таких как управление плейлистами (подписка/отписка, добавление/удаление треков), улучшенные механизмы кэширования, устойчивость к сетевым ошибкам и специфичные для ОС пакеты приложений. Будущие улучшения интерфейса включают двухпанельный макет, определение светлой/темной темы ОС и виртуализированные списки для лучшей производительности с большими библиотеками. ## Вклад Вклад приветствуется. Проект полагается на усилия сообщества для улучшения функций и исправления ошибок. Для более подробной информации о структуре кодовой базы и руководствах по внесению вклада обратитесь к разделу разработки в репозитории.