このプロジェクトについて

# Psst Psstは、ネイティブグラフィカルユーザーインターフェース(GUI)を備えた高性能・マルチプラットフォームのSpotifyクライアントです。完全にRustで書かれており、Electronベースのアプリケーションのオーバーヘッドを回避し、軽量でレスポンシブな体験を提供します。このソフトウェアは完全にクロスプラットフォームで、Windows、Linux、macOSをサポートしています。 ## 主な機能 - **ネイティブパフォーマンス**: 速度と効率のためにRustで構築され、Druid UIライブラリを使用してネイティブな外観と操作性を実現。 - **中核機能**: Vorbisトラック再生、保存したアルバムやトラックの閲覧、フォロー中のプレイリスト、および「For You」コンテンツを含むジャンルプレイリストをサポート。 - **検索とディスカバリー**: アプリ内で直接アーティスト、アルバム、トラックを検索可能。 - **ポッドキャストサポート**: ポッドキャストの閲覧と視聴機能を含む。 - **再生コントロール**: メディアキーコントロール、オーディオ音量調整、オーディオラウドネス正規化を搭載。 - **テーマ**: ダークテーマオプションを含む。 - **プライバシー**: 公式Spotifyサーバーにのみ接続し、ホームコールは行いません。ユーザー資格情報はローカルに保存されず、代わりにSpotifyからの再利用可能な認証トークンが使用されます。キャッシュはローカルに保存され、いつでも削除できます。 ## 要件 - アプリケーションを使用するには**Spotify Premium**アカウントが必要です。 - 2026年2月時点で、Spotifyの開発者アクセスポリシーの変更により、PsstはWeb API機能(検索、ライブラリアクセス、プレイリストなど)を使用するために、ユーザーが自身のSpotify Developer Client IDを登録する必要があります。ユーザーはSpotify Developer Dashboardでアプリを登録し、Psstのサインイン画面でClient IDを入力する必要があります。 ## プラットフォームサポート - **Windows**: 実行可能ファイルのダウンロードで利用可能。 - **macOS**: DMGインストーラーで利用可能。 - **Linux**: x86_64およびaarch64アーキテクチャで利用可能で、Debianパッケージ(.deb)を含みます。 - **OpenBSD**: 進行中。サポートは安定していない可能性があります。 非公式ビルドはArch User Repository(AUR)およびHomebrewでも利用できます。 ## インストール ビルド済みバイナリは[GitHub Releasesページ](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 ``` インストールバンドル(例: macOS .app)を作成するには: ```shell cargo install cargo-bundle cargo bundle --release ``` ## プロジェクト構造 - `/psst-core`: Spotify TCPセッション、オーディオ取得、デコード、出力、再生キューを処理するコアライブラリ。 - `/psst-gui`: Druidで構築されたGUIアプリケーション。 - `/psst-cli`: トラック再生のためのサンプルCLIツール。 ## ロードマップ 現在の開発は、安定性の向上と、プレイリスト管理(フォロー/アンフォロー、トラックの追加/削除)、キャッシュメカニズムの改善、ネットワークエラーへの耐性、OS固有のアプリケーションバンドルなどの欠落機能の追加に焦点を当てています。将来のUI改善には、2ペインレイアウト、ライト/ダークOSテーマ検出、大規模ライブラリでのパフォーマンス向上のための仮想化リストが含まれます。 ## 貢献 貢献は歓迎されます。このプロジェクトは、機能の強化とバグ修正のためにコミュニティの取り組みに依存しています。コードベース構造と貢献ガイドラインの詳細については、リポジトリの開発セクションを参照してください。