Rust で書かれた端末用の Spotify クライアント。
上記のデモの端末は Rigel テーマを使用しています。
Spotify TUI
自作
スナップ
オーストラリア
ニックス
ボイド・リナックス
Fedora/CentOS
貨物
窓
マニュアル
Linuxに関する注意事項
スクープインストーラー
インストール
Spotify の API に接続する
使用法
構成
高レベルの要件はまだ実装されていない
Linux 用 Windows サブシステム
制限事項
Spotifyd での使用
使用したライブラリ
発達
貢献者
ロードマップ
バイナリ実行可能ファイルはspt
です。
macOS と Linux の両方の場合
醸造インストールSpotify-Tui
更新するには、実行します
醸造アップグレードSpotify-Tui
Snap がインストールされているシステムの場合は、次を実行します。
スナップインストールSPT
安定バージョンは自動的にインストールされます。
夜間ビルドをインストールする場合は、次を実行します。
スナップインストール spt --edge
Arch Linux を使用している場合は、AUR のパッケージをここで見つけることができます。ただし、AUR ヘルパーを使用している場合は、そこから直接インストールできます。たとえば (yay の場合)、次を実行します。
やったーSSpotify-Tui
パッケージspotify-tui
として利用可能です。インストールするには、次のコマンドを実行します。
nix-env -iA nixpkgs.spotify-tui
ここで、 nixpkgs
構成内のチャネル名です。より最新のインストールを行うには、不安定なチャネルを使用してください。パッケージをenvironment.systemPackages
(NixOSの場合)、またはhome-managerを使用する場合はhome.packages
に追加することもできます。
公式リポジトリから入手できます。インストールするには、実行します
sudo xbps-install -Su Spotify-tui
Copr リポジトリで入手できます。インストールするには、実行します
sudo dnf copr Enable atim/spotify-tui -y && sudo dnf install Spotify-tui
ご使用のアーキテクチャが、リリース ページにあるビルド済みバイナリでサポートされていない場合は、このオプションを使用してください。
まず、Rust をインストールします (推奨されるrustup
インストール方法を使用)。
カーゴインストールSpotify-Tui
このメソッドはソースからバイナリをビルドします。
更新するには、同じコマンドを再度実行します。
Linux でコンパイルするには、 libssl
の開発パッケージが必要です。基本的なインストール手順については、「OpenSSL のインストール」を参照してください。依存関係を見つけるために、コンパイルにはpkg-config
もインストールする必要があります。
Linux 用 Windows サブシステムを使用している場合は、追加の依存関係をインストールする必要があります。
まず、scoop インストーラーが Windows ボックスにあることを確認します。手順については、scoop.sh にアクセスしてください。
次に、powershell を開き、次の 2 つのコマンドを実行します。
スクープバケット scoop-bucket を追加 https://github.com/Rigellute/scoop-bucket スクープインストールSpotify-Tui
その後、プログラムはspt
またはspt.exe
として利用可能になります。
OS の最新バイナリをダウンロードします。
ダウンロードしたファイルにcd
して解凍します
cd
spotify-tui
に移動し、 ./spt
で実行します。
名前で音楽を検索したり、トラックを再生したりするには、 spotify-tui
Spotify の API に接続する必要があります。
この設定方法については、アプリを初めて実行するときに表示されます。
しかし、ここで彼らは再びこうなります。
Spotify ダッシュボードに移動します
Create an app
クリックします
Client ID
とClient Secret
が表示されるようになりました。
ここでEdit Settings
クリックします
http://localhost:8888/callback
をリダイレクト URI に追加します
下にスクロールしてSave
をクリックします
これで、Spotify で認証する準備ができました。
ターミナルに戻ります
spt
実行する
Client ID
を入力してください
Client Secret
を入力してください
Enter キーを押してデフォルトのポート (8888) を確認するか、カスタム ポートを入力します。
Spotify の公式 Web ページにリダイレクトされ、許可を求められます。
権限を受け入れると、localhost にリダイレクトされます。すべてがうまくいけば、リダイレクト URL が自動的に解析され、これで完了です。何らかの理由でローカル Web サーバーに障害が発生すると、サーバーが実行されていないため、「接続が拒否されました」などのメッセージが表示される空の Web ページにリダイレクトされます。とにかく、URL をコピーして、ターミナルのプロンプトに貼り付けます。
これで、 spotify-tui
使用する準備ができましたか?
構成はいつでも${HOME}/.config/spotify-tui/client.yml
で編集できます。 (スナップ${HOME}/snap/spt/current/.config/spotify-tui/client.yml
の場合)
バイナリの名前はspt
です。
引数なしでspt
実行すると、UI が表示されます。プレス?
をクリックすると、現在実装されている主要なイベントとそのアクションを示すヘルプ メニューが表示されます。 UI が行うことのほとんどを実行できる CLI もあります。詳細については、 spt --help
使用してください。
ここにあなたを興奮させるいくつかの例があります。
spt --completions zsh # Prints shell completions for zsh to stdout (bash, power-shell and more are supported) spt play --name "Your Playlist" --playlist --random # Plays a random song from "Your Playlist" spt play --name "A cool song" --track # Plays 'A cool song' spt playback --like --shuffle # Likes the current song and toggles shuffle mode spt playback --toggle # Plays/pauses the current playback spt list --liked --limit 50 # See your liked songs (50 is the max limit) # Looks for 'An even cooler song' and gives you the '{name} from {album}' of up to 30 matches spt search "An even cooler song" --tracks --format "%t from %b" --limit 30
構成ファイルは、スナップ${HOME}/snap/spt/current/.config/spotify-tui/config.yml
の${HOME}/.config/spotify-tui/config.yml
にあります (混同しないでください) Spotify 認証を処理する client.yml を使用)
以下は config.yml ファイルのサンプルです。
# サンプル設定ファイル# テーマの色は、「255, 255, 255」形式の rgb 文字列、または端末テーマの色を参照する文字列 (リセット、黒、赤、緑、黄、青、マゼンタ、シアン) にすることができます。 、Gray、DarkGray、LightRed、LightGreen、LightYellow、LightBlue、LightMagenta、LightCyan、White.theme: active: Cyan # リスト内の現在再生中の曲 バナー: LightCyan # 起動時の「spotify-tui」バナー error_border: 赤 # エラー ダイアログの境界線 error_text: LightRed # エラー メッセージ テキスト (例: 「Spotify API がエラー 404 を報告しました」) ヒント: 黄色 # エラーのヒント テキスト hovered: マゼンタ # ホバーされたペインの境界線 非アクティブ: 非アクティブなペインの灰色の境界線 # # playbar_background: 黒 # プログレスバーの背景 playbar_progress: LightCyan # プログレスバーの塗りつぶされた部分 playbar_progress_text: シアン # 曲の長さと再生時間/進行状況バーの左のインジケーター playbar_text: プレーヤー ペイン内の白い # アーティスト名 selected: LightCyan # a) 選択されたペインの境界線、b) リスト内のホバーされた項目、および c) プレーヤー内のトラック タイトル text: "255, 255, 255" # ペイン内のテキスト header: White # ペイン内のヘッダー テキスト (例: 「タイトル」、「アーティスト」など)behavior: seen_milliseconds: 5000 ボリューム増分: 10 # 数値が小さいほど、「1 秒あたりのフレーム数」が高くなります。オーディオの視覚化をよりスムーズにするためにこの数値を減らすこともできますが、コストがかかる可能性があります。 ティックレートミリ秒: 250 # テキストの強調を有効にします (通常は斜体/太字のテキスト スタイル)。ターミナル設定が制限されており、テキスト エスケープのレンダリングが UI に干渉する場合、これを無効にすることが重要になる可能性があります。 Enable_text_emphasis: true # Spotify API と通信するときに常に UI の右上に読み込みインジケーターを表示するかどうかを制御します show_loading_indicator: true # 検索バーを大きくすると小さくなるレスポンシブ レイアウトを無効にします # 画面を表示し、広い検索バーを強制します enforce_wide_search_bar: false # 「いいね!」した Spotify アイテムの横に表示するテキスト アイコンを決定します。 # 曲やアルバムが好きだった、またはアーティストをフォローしていました。任意の長さの文字列を指定できます。 # これらのアイコンには、パッチを適用したオタク フォントが必要です。 気に入ったアイコン: ♥ シャッフルアイコン: ? リピートトラックアイコン: ? repeat_context_icon: ? 再生アイコン: ▶ 一時停止アイコン: ⏸ # ANSI エスケープ コードを使用してウィンドウ タイトルを「spt - Spotify TUI」に設定します。 set_window_title: truekeybindings: # 2 つのキーのみを使用する場合、キー ストロークを使用できます。 # Ctrl-Q は機能します。 # ctrl-alt-q は機能しません。 戻る: 「ctrl-q」 アルバムへジャンプ: "a" # Shift 修飾子は大文字を使用します (他の修飾子キーにも適用されます) # Ctrl-A のように) Jump_to_artist_album: "A" デバイスの管理: "d" 音量減少: "-" 音量増加: "+" トグル再生: " " シークバックワード: "<" シークフォワード: ">" next_track: "n" 前のトラック: "p" copy_song_url: "c" コピーアルバムの URL: "C" ヘルプ: "?" シャッフル: 「ctrl-s」 繰り返し:「r」 検索: "/" オーディオ分析: "v" コンテキストへジャンプ: "o" 基本ビュー: "B" add_item_to_queue: "z"
このアプリは Spotify の Web API を使用しますが、ストリーミング自体は処理されません。したがって、公式の Spotify クライアントを開くか、spotifyd などの軽量の代替クライアントが必要になります。
曲を再生したい場合、Spotify ではプレミアム アカウントが必要です。
Spotifyd のドキュメントに従ってセットアップを行ってください。
その後は特に何もありません。
Spotifyd デーモンの実行を開始します。
spt
起動する
d
押してデバイス選択メニューに移動すると、スポットされた「デバイス」が表示されるはずです。表示されない場合は、これらのドキュメントを確認してください。
ツイール
rspotify
OpenSSL をインストールする
Rustをインストールする
xorg-dev
をインストールします (クリップボードのサポートに必要)
このリポジトリをクローンまたはフォークしてcd
にコピーします
そしてcargo run
リンクエラーが発生する場合があります。その場合は、クリップボード パッケージに必要な追加の依存関係をインストールする必要がある可能性があります。
sudo apt-get install -y -qq pkg-config libssl-dev libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
これらの素晴らしい人々に感謝します (絵文字キー):
アレクサンダー・ケリリス ? ? ? ? ? ? | ミカエル・マルケス ? | グジェゴシュ・コペルワス | オースティン・ガサート | カレン・ロビネット | マ○コ○ ? | アンドリュー・チン |
サム・ナセル | ミーシャ | ネリグリッサール | ティモン | エコーさよなら | D-ナイス ? | グジェゴシュ・パヴリク |
レナート・ベルンハルト | アルノー・ルフェーブル | tem1029 | ピーター・K・モス | ジェフ・シャノン | ザカリー・メイヒュー | ジファルティス |
マルセル・シュラム | 周方儀 | マックス | スヴェン・ファン・デル・フリスト | ジェイコブクリスマーシュ | ニルス・ラウフ | ニック・ストックトン ? ? |
スチュアート・ヒンソン | サム・カルバート | ジェロン・ワイジェンバーグ | キンバリー・クック | オードリー・バクスター | ノーマン | ピーター・マートマン |
アレクサンドルS | フィン・ヴォス | カルロス・ヘルナンデス ? | ペドロ・アウベス | jtagcat | ベンジャミン・キートル | アレシュ・ナジマン ? |
ジェレミー・スタッキー | (´⌣`ʃƪ) | アルテム・ポリシュチュク ? | クリス・ソスニン | ベン・ブーセ | ショーン・リー | ティモシー・ガーバー |
フェルディナンド・ラタイチャク | シェル・チョクシ | マイケル・ヘルウィグ | オリバー・ダニエル | ドリュー・フィッシャー | ncoder-1 | マクガイア・リントゥール |
リカルド・オルギン | 豊田圭介 | クレイグ・アスティル | オニエルファ | ユーザーミー | セルゲイ A. | 岡田秀幸 |
ケパエ | エリコ・ノゲイラ・ロリム | アレクサンダー・マインハルト・シューラー | オンドジェ・キンシュト | クリヤン90 | n-イワノフ | ビユ |
5月 | ブルーノ・A・ムシーニョ | フィン・ヘディガー | dp304 | マルコ・ミセラ | マルコ・イエニ ? | アルトゥール・コヴァチ |
アントニー・ケラーマン | ラスムス・ペダーセン | ノワールZ | デビッド・ベイリー | 羊壁 | あれは何だったのか | ジェシー |
サング | 高橋ユウキ | アレハンドロ・アングロ | アントン・コスティン | ジャスティン・セクストン | ジアティ・レ | マシュー・コビング |
マイロ ? | ディエゴ・ヴェラーリ | マヤ・ボジャルスカ |
このプロジェクトは、全員参加者の仕様に従っています。あらゆる種類の貢献を歓迎します!
目標は、最終的には Spotify のほぼすべての機能を実装することです。
プレイリストに曲を追加する
すべてのビューで結果ページをスクロールできるようにする
この表は、Spotify API で可能なすべてのこと、すでに実装されているもの、そしてそれが必須かどうかを示しています。
APIメソッド | もう実装されましたか? | 説明 | 不可欠? |
---|---|---|---|
追跡 | いいえ | トラックの ID、URI、または URL を指定して単一のトラックを返します | いいえ |
トラック | いいえ | トラック ID、URI、または URL のリストを指定してトラックのリストを返します。 | いいえ |
アーティスト | いいえ | アーティストの ID、URI、または URL を指定して単一のアーティストを返します | はい |
アーティスト | いいえ | アーティスト ID、URI、または URL を指定してアーティストのリストを返します。 | いいえ |
アーティストアルバム | はい | アーティストのアルバムに関する Spotify カタログ情報を取得する | はい |
アーティスト_トップ_トラック | はい | アーティストの国別トップ 10 トラックに関する Spotify カタログ情報を取得します。 | はい |
アーティスト関連_アーティスト | はい | 特定されたアーティストに類似したアーティストに関する Spotify カタログ情報を取得します。類似性は、Spotify コミュニティの視聴履歴の分析に基づいています。 | はい |
アルバム | はい | アルバムの ID、URI、または URL を指定して 1 つのアルバムを返します | はい |
アルバム | いいえ | アルバム ID、URI、または URL を指定してアルバムのリストを返します。 | いいえ |
検索アルバム | はい | クエリに基づいてアルバムを検索 | はい |
アーティスト検索 | はい | クエリに基づいてアーティストを検索 | はい |
検索トラック | はい | クエリに基づいてトラックを検索する | はい |
検索プレイリスト | はい | クエリに基づいてプレイリストを検索 | はい |
アルバムトラック | はい | アルバムのトラックに関する Spotify カタログ情報を取得する | はい |
ユーザー | いいえ | Spotify ユーザーに関する基本的なプロフィール情報を取得します | いいえ |
プレイリスト | はい | Spotify プレイリストの詳細を確認する | はい |
current_user_playlists | はい | プロフィールを取得することなく、現在のユーザーのプレイリストを取得します | はい |
ユーザープレイリスト | いいえ | ユーザーのプレイリストを取得します | いいえ |
ユーザープレイリスト | いいえ | ユーザーのプレイリストを取得します | いいえ |
user_playlist_tracks | はい | ユーザーが所有するプレイリストのトラックの完全な詳細を取得します | はい |
user_playlist_create | いいえ | ユーザーのプレイリストを作成します | はい |
user_playlist_change_detail | いいえ | プレイリストの名前および/またはパブリック/プライベート状態を変更します | はい |
user_playlist_unfollow | はい | ユーザーのプレイリストのフォローを解除(削除)します | はい |
user_playlist_add_track | いいえ | プレイリストにトラックを追加します | はい |
user_playlist_replace_track | いいえ | プレイリスト内のすべてのトラックを置き換える | いいえ |
user_playlist_recorder_tracks | いいえ | プレイリスト内のトラックを並べ替える | いいえ |
user_playlist_remove_all_occurrences_of_track | いいえ | 指定されたプレイリストから指定されたトラックがすべて削除されます。 | いいえ |
user_playlist_remove_ specific_occurrenes_of_track | いいえ | 指定されたプレイリストから指定されたトラックがすべて削除されます。 | いいえ |
user_playlist_follow_playlist | はい | 現在認証されているユーザーをプレイリストのフォロワーとして追加します。 | はい |
user_playlist_check_follow | いいえ | 指定されたユーザーが指定されたプレイリストに従っているかどうかを確認する | はい |
自分 | いいえ | 現在のユーザーに関する詳細なプロフィール情報を取得します。 | はい |
現在のユーザー | いいえ | me にとっての別名 | はい |
current_user_playing_track | はい | 現在トラックを再生している現在のユーザーに関する情報を取得します。 | はい |
current_user_saved_albums | はい | 現在許可されているユーザーの「Your Music」ライブラリに保存されているアルバムのリストを取得します | はい |
current_user_saved_tracks | はい | ユーザーの保存したトラックまたは「気に入った曲」を取得します | はい |
current_user_followed_artists | はい | 現在許可されているユーザーがフォローしているアーティストのリストを取得します | はい |
current_user_saved_tracks_delete | はい | 現在のユーザーの「あなたのミュージック」ライブラリから 1 つ以上のトラックを削除します。 | はい |
current_user_saved_tracks_contain | いいえ | 現在の Spotify ユーザーの「Your Music」ライブラリに 1 つ以上のトラックがすでに保存されているかどうかを確認します。 | はい |
current_user_saved_tracks_add | はい | 1 つ以上のトラックを現在のユーザーの「あなたの音楽」ライブラリに保存します。 | はい |
current_user_top_artists | いいえ | 現在のユーザーのトップアーティストを取得する | はい |
current_user_top_tracks | いいえ | 現在のユーザーのトップトラックを取得する | はい |
current_user_recently_played | はい | 現在のユーザーが最近再生したトラックを取得します | はい |
current_user_saved_albums_add | はい | 現在のユーザーの「あなたの音楽」ライブラリに 1 つ以上のアルバムを追加します。 | はい |
current_user_saved_albums_delete | はい | 現在のユーザーの「あなたの音楽」ライブラリから 1 つ以上のアルバムを削除します。 | はい |
user_follow_artists | はい | 1 人以上のアーティストをフォローする | はい |
user_unfollow_artists | はい | 1 人以上のアーティストのフォローを解除する | はい |
user_follow_users | いいえ | 1 人以上のユーザーをフォローする | いいえ |
user_unfollow_users | いいえ | 1 人以上のユーザーのフォローを解除する | いいえ |
注目のプレイリスト | いいえ | Spotify のおすすめプレイリストのリストを取得する | はい |
新しいリリース | いいえ | Spotify で特集されている新しいアルバム リリースのリストを取得する | はい |
カテゴリ | いいえ | Spotify でアイテムのタグ付けに使用されるカテゴリのリストを取得する | はい |
推奨事項 | はい | シードに基づいて推奨事項を取得する | はい |
オーディオ機能 | いいえ | トラックのオーディオ機能を取得する | いいえ |
オーディオ機能 | いいえ | 複数のトラックのオーディオ機能を取得する | いいえ |
オーディオ分析 | はい | トラックのオーディオ分析を取得する | はい |
デバイス | はい | ユーザーの利用可能なデバイスを取得する | はい |
現在の再生 | はい | ユーザーの現在の再生に関する情報を取得する | はい |
現在のプレイ中 | いいえ | ユーザーの現在再生中のトラックを取得する | いいえ |
転送_再生 | はい | ユーザーの再生を転送する | はい |
再生開始 | はい | ユーザーの再生を開始/再開する | はい |
再生を一時停止する | はい | ユーザーの再生を一時停止する | はい |
次のトラック | はい | ユーザーの再生を次のトラックにスキップ | はい |
前のトラック | はい | ユーザーの再生を前のトラックにスキップ | はい |
シークトラック | はい | 現在再生中のトラックの位置をシーク | はい |
繰り返す | はい | ユーザーの再生時にリピート モードを設定する | はい |
音量 | はい | ユーザーの再生の音量を設定する | はい |
シャッフル | はい | ユーザーの再生用にシャッフルを切り替え | はい |