
2026/10/13 20:32
Show HN: Spotatui,SpotifyのWeb API制限を回避したTUI/GUIアプリケーション
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
SpotAtUI は、Rust を用いて構築された軽量でコミュニティ主導のターミナル音楽再生ソフトであり、公式のプロプライエタリ製クライアントやデーモンの利用なしに、Spotify(プレミアム会員必須)、YouTube、Subsonic/Navidrome、そして多種多様なラジオサービスに対応したネイティブなストリーミングを提供します。その主な利点は極度の効率性であり、メンテナンス中の librespot のフォークを利用することで再生中に約 78 MB の RAM を消費し、重い Electron ベースの代替案を大幅に上回ります。標準的なターミナルとは異なり、SpotAtUI はデスクトップ用 GUI の開発中プレビュー版も備えており、リアルタイムオーディオ可視化や、ローカル LLM を用いて音楽をキュレーションする AI DJ アシスタントといった高度なツールとの統合も行っています。
本ソフトウェアは YAML ファイルと Lua スクリプトによる高いカスタマイズ性を特徴とし、無効な設定であっても起動をブロックせず優雅にデフォルト値に戻す堅牢さを確保しています。「spotify-tui」から派生しており、ストリーミング機能への焦点を明確にする独自の進化を遂げていますが、移行には Spotify での再認証と設定パスの更新が必要です。現時点では Linux、macOS、Windows、WSL で利用可能で、GitHub Releases を通じた自動更新をサポートしています。本ツールは、高価な外部 API や非公式なアクセス方法に頼ることなく、システムリソースの使用を削減しつつ強力かつ拡張可能な音楽再生機能を得ることをユーザーに実現させます。
本文
spotatui: Rust で記述されたターミナル音楽プレイヤー
Rust と Ratatui により駆動される、次世代のターミナル音楽プレイヤーです。Spotify ネイティブストリーミングや同期歌詞、リアルタイムオーディオビジュアライザーなど多機能を実現します。
概要
- コミュニティ開発:
のフォーク版ですが、多方面で分岐しています。spotify-tui - 主な違い:
- バックエンド: 公式 Connect デバイスではなく、組み込みネイティブクライアントを使用します。
- ソース対応: Spotify に限らず、以下の多様なソースをネイティブでサポートしています。
- YouTube
- ローカルファイル
- Subsonic / Navidrome サーバー
- インターネットラジオ
- Qobuz
- macOS 用 Apple Music
機能 (Features)
- 複数ソース対応
- Spotify はオプションです(Premium アカウントが必要)。
- キー
でソースを自由に切り替え可能。d - 無料のソース(Spotify 以外)は登録なしで使用できます。
- ネイティブストリーミング
- Spotify Connect デバイスとして認識され、公式アプリや
を介さずに直接再生します。spotifyd - Electron クライアントよりも軽量です。
- Spotify Connect デバイスとして認識され、公式アプリや
- 同期歌詞 (Synced Lyrics)
- 行単位の歌詞を再生タイミングに合わせて表示します。
- リアルタイムオーディオビジュアライザー
- システム全体の FFT ビジュアライザー(キー
)。v - Spotify 再生時は独自ピッチビューを表示します。
- システム全体の FFT ビジュアライザー(キー
- クロスソースプレイキュー
- キー
で任意のトラックをキューに追加し、ソースを越えて連続再生できます。z
- キー
- プレイリスト同期
- 1 つのプレイリストをマスターとして設定し、複数のソース間でミラーリングできます(例:
コマンド)。spotatui sync
- 1 つのプレイリストをマスターとして設定し、複数のソース間でミラーリングできます(例:
- Lua プラグイン
- イベントフックやキーバインドを通じて UI を拡張・カスタマイズできます。
- リスニング履歴とサマリー
- 演奏履歴を保持し、HTML のサマリー(
)を生成して共有できます。spotatui history recap
- 演奏履歴を保持し、HTML のサマリー(
- フル CLI 対応
- スクリプタブルなコマンドラインインターフェースを提供します(例:検索、プレイリスト操作、シェル補完)。
インストール
Spotify アカウントは初回起動時のソース選択で指定し、後から追加可能です。YouTube の使用には
yt-dlp のインストールが必要です。
ワンラインインストーラー (推奨)
- macOS, Linux, WSL
curl -fsSL https://spotatui.com/install.sh | bash - Homebrew (macOS 限定)
brew tap LargeModGames/spotatui brew install spotatui - Cargo (コンパイルからインストール)
cargo install --locked spotatui # またはプレビルトバイナリを使用 cargo binstall spotatui
特定のリポジトリからのインストール
- Arch Linux (AUR)
yay -S spotatui-bin # プレビルトバイナリ(高速) # またはソースから構築 yay -S spotatui - Void Linux
echo repository=https://raw.githubusercontent.com/Event-Horizon-VL/blackhole-vl/repository-x86_64 | sudo tee /etc/xbps.d/20-repository-extra.conf sudo xbps-install -S spotatui - Windows PowerShell
irm https://spotatui.com/install.ps1 | iex # または Winget を使用 winget install spotatui - NixOS
inputs = { spotatui = { url = "github:LargeModGames/spotatui"; inputs.nixpkgs.follows = "nixpkgs"; }; }; { inputs, ... }: { environment.systemPackages = with pkgs; [ inputs.spotatui.packages.${pkgs.stdenv.hostPlatform.system}.default ]; }
デスクトップアプリ (Preview)
ターミナルではなくウィンドウで動作するバージョンも提供されます。設定や履歴は共有されていますが、両者は同時に動作せず、ウィンドウ閉じで終了します。
- システム要件: glibc 2.39, WebKitGTK 4.1。
- 更新機能:
を設定して無効化可能です。behavior.disable_auto_update
クイックスタート
spotatui
初回起動時、ソース選択メニューが表示されます:
Welcome to spotatui! Choose your music source: 1) Spotify (needs login, Premium required) 2) YouTube (free, needs yt-dlp) 3) Subsonic (free, needs server) 4) Internet Radio (free) 5) Local Files (free) 6) Qobuz (paid subscription) 7) Apple Music (macOS only)
-
基本操作:
: キーバインドヘルプ?
: ソース・デバイス選択メニュー開閉(ソース切り替え)d
: 現在のトラックをプレイキューに追加z
: 検索モードへ切り替え/
: 検索クエリのクリアCtrl+L
-
検索方法:
を押してフレーズを入力。/- Enter で検索実行。
- 結果リストからトラックを選択し、Enter で再生(スペースキーでポーズ/再生)。
-
コマンド例:
spotatui --completions zsh # シェル補完設定 (bash, powershell 対応) spotatui play --name "Name" --random # ランダム再生 spotatui history recap --period 30d # 過去 30 日分のサマリー生成
音楽ソース詳解
d キーで開くサイドバーから以下のソースを切り替えられます。
| ソース | 機能と要件 |
|---|---|
| ローカルファイル | FLAC, MP3, OGG 等を再生(OS デフォルトディレクトリまたは設定指定)。 |
| Subsonic / Navidrome | サーバーアカウントが必要。ブラウザ経由のログイン不要。 |
| インターネットラジオ | ライブメタデータ付き。保存機能あり。検索機能搭載。 |
| YouTube | 必須。匿名検索・再生可能。プレイリスト管理対応。 |
| Qobuz | FLAC 高品質ストリーミング。ブラウザ経由ログイン。定数取得が必要(設定ガイド参照)。 |
| Apple Music | macOS 限定。Music アプリと連携し、spotatui はリモートコントローラーとして動作。 |
ソース固有の設定例 (config.yml
)
config.yml- ローカルファイル:
を指定。behavior.local_music_path - Subsonic:
環境変数でのパスワード管理推奨。SPOTATUI_SUBSONIC_PASSWORD - Qobuz:
で品質設定(例:qobuz_quality
=FLAC 16/44.1)。6 - Apple Music: macOS の自動化許可が必要です(System Settings > Privacy & Security > Automation)。
Apple Music の注意点
- カスタマイズ機能の一部(キュー、ランダム再生、リピート、ライク)は利用不可。
- Music アプリで他のソースが再生中は検出されません。
- 音楽アプリ側の不具合(ファイル欠落等)は spotatui 側でスキップ処理されます。
AI DJ
spotatui は AI を活用したプレイリスト作成機能を提供します。
MCP サーバー方式 (--features mcp-server
)
--features mcp-server- コーディングエージェント(Claude Code, Gemini CLI など)と連携し、AI が DJ を担当します。
- エージェントへの指示設定は
にあります。docs/mcp-setup.md
組み込み TUI AI DJ (--features ai-dj
)
--features ai-dj
でチャット・プロンプト画面を表示。Ctrl-j- 検索、キュー作成、再生の意思確認を AI が行います。
- ローカルモデル(Ollama など)や API キーに対応しています。
インストール:
cargo install --locked spotatui --features mcp-server,ai-dj
ネイティブストリーミング (Native Streaming)
や公式アプリの再起動不要で、Spotify Connect デバイスとして直接機能します。spotifyd- 最新の CDN 問題などの修正をバックポートした librespot フォークを使用しています。
- 要件: Spotify Premium アカウント必須。
オーディオビジュアライザー
キー
v でシステムオーディオのリアルタイム分析を表示します。
| プラットフォーム | 動作状態 | 備考 |
|---|---|---|
| Windows | 動作 (WASAPI) | インストール不要 |
| Linux | 動作 (PipeWire/PulseAudio) | インストール不要 |
| macOS | 設定必要 | BlackHole や Loopback のような仮想オーディオデバイスを介して設定が必要。 |
Spotify 再生中は、元々のピッチビュー(12 ピッチクラス表示)に切り替わります。
v で Cava, バーグラフ, スポッティ ピッチの切り替えが可能。
その他機能
Discord Rich Presence
- デフォルト有効(アプリ ID を使用)。
- 設定で無効化またはカスタマイズ可能です(
指定など)。discord_rpc_client_id
匿名ソングカウンター
- グローバルな再生回数をカウントする機能をオプトインで使用できます。
- 個人情報を収集せず、30 秒再生完了時にのみカウントアップします。
GitHub Profile Widget
- spotatui.com のアカウント連携により、GitHub プロフィールで「現在聴いている曲」を表示可能です。
- カバーアートやピッチビューも表示されます。
設定 (Configuration)
設定ファイル:
config.yml(デフォルト:$XDG_CONFIG_HOME/spotatui/config.yml)
- Alt-, キーで UI 内から設定画面を開くことも可能です。
- カバーアート用のダッティング処理、キーバインド変更、テーマ切り替えなどが可能です。
開発とビルド
- 言語: Rust
- UI Framework: Ratatui
- ライブラリ:
,rspotify
,librespot
などを使用。tokio
プラットフォーム固有の要件
- Linux 開発: ALSA 開発パッケージ(
)、PipeWire(ビジュアライザー用オプション)が必要です。pkg-config - Windows: PowerShell スクリプトでの自動インストール推奨。
Windows Subsystem for Linux (WSL)
リンクエラーが発生する場合は、以下の追加依存関係をインストールしてください:
sudo apt-get install -y -qq pkg-config libssl-dev libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
バグ報告とサポート
- 問題発生時は
フラグで実行し、ログファイルを確認してください。--debug - バグ報告: Issue を作成し、再現手順とログを添付してください。
- コミュニティ: Discord や GitHub Discussions で交流可能です。
ロードマップ
目標は Spotify のほぼ全ての機能を実装することです。高優先度課題として「すべてのビューでの結果ページスクロール」などが計画されています。