有馬総一郎のブログ

(彼氏の事情)

2024年12月07日 07:37:55 JST - 4 minute read - Linux

ターミナル(端末)で動くNavidromeアプリ、jellycli、stmp、stmps

Navidromeに乗り換えて快適なミュージックライフを送っているが、それまで GitHub - jeffvli/feishin: A modern self-hosted music player.で満足していたが、仕事中だとマウスを使わないでキーボードだけで操作できる方が良いということで、いくつかのターミナルアプリを試してみた。

Navidrome Overview | Navidromeに対応しているアプリの一覧がある。

デスクトップ版はfeishinがおすすめだ。

feishin
feishin

jellycli

GitHub - tryffel/jellycli: Jellyfin terminal client

jellycli

ARM系でないアーキテクチャーを積んだ端末なら、ビルドせずにさくとバイナリファイル落してきて使えるのはありがたい。

しかし、なにかレイアウトが崩れる。フォントのせいか?またキーバインドもvimライクなのは嬉しいのだけど、タブの遷移して再生が、どうもやりづらい。

レイアウトが整理されており、ライブラリーも単純なアーティストの羅列でなく、最近追加したアルバムとか検索できるのとか、実用的なのだけど、どうもUIが私にはシックリこない。また、若干、不安定なのか、キーが反応しなくなったりする。

動作がもっと安定したらなぁ。おま環なのかも知れないけど。

stmp

GitHub - wildeyedskies/stmp: subsonic terminal music player

stmp
Browser
stmp
Queue
stmp
Playlist

こちらもバイナリファイルが用意されている。アーティスト一覧がずらっと並んで、そこから/で検索して、右のアルバム一覧を表示してaでキュー追加などして、pで再生/一時停止できる。アルバム、曲を選択してのEnterでも再生が始まる。

シンプルなので一番動作が安定しているような気がする。ただ機能が少ないのと、最近、開発が活発でないように見える1

stmps

GitHub - spezifisch/stmps: Subsonic Terminal Music Player S

stmps
Browser
stmps
Queue
stmps
Playlist
stmps
Search

上で紹介したstmpのフォークのようで、?押すとBrowser、Queue、Playlist、Search、Logモードでのヘルプが出るので初心者にも優しい。またjellycliほどでないにしての、stmpよりも見た目が整えられている。

Search機能やカヴァーアートの表示、細かいところで機能が追加されている。 [Feature] Search by genre · Issue #52 · spezifisch/stmps · GitHubのPullReuestも既にされているようで、今後の更なる機能拡張にも期待できる。

自分でビルドしなければならないのがハードルが高いが、なんとか上手くいったので作業をメモしておく。goの開発経験がないので、とんちんかんなことしてるだろうが、ご容赦願いたい。stmpも今のところ、同じ手順でビルドできるようになる。

ビルド

$ go version
go version go1.19.1 linux/amd64 #1.22以上でない駄目
$ sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf ~/Nextcloud/Public_Ubuntu/packages/go1.23.3.linux-amd64.tar.gz
$ go version
go version go1.23.3 linux/amd64
$ go get github.com/rivo/tview@master
$ go get github.com/YouROK/go-mpv@master
$ git clone https://github.com/spezifisch/stmps.git
$ cd stmps
$ go build
# github.com/supersonic-app/go-mpv
../../go/pkg/mod/github.com/supersonic-app/go-mpv@v0.1.0/async.go:4:10: fatal error: mpv/client.h: No such file or directory
    4 | #include <mpv/client.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.
$ sudo apt install pkg-config libmpv libmpv-dev
$ go build
$ ls -l stmps
-rwxrwxr-x 1 arimasou16 arimasou16 17506784 12月  7 09:19 stmps
$ mkdir -p /home/arimasou16/.config/stmps
$ cp stmp-example.toml ~/.config/stmps/stmp.toml
$ nvim ~/.config/stmps/stmp.toml

goは仕様変更が激しいのか、go installだったり、アンイストールはgo clean -iとかるのだけど、これだと削除できないくて、go get github.com/rivo/tview@noneでアンインストールはできた。

設定ファイルは、 stmps.toml でなくて stmp.toml 。格納ディレクトリは~/.config/stmpでも、~/.config/stmpsでも良いようだ。

stmp.toml

[auth]
username = 'ユーザ名'
password = 'パスワード'
plaintext = false

[server]
host = 'https://example.com/navidrome'
scrobble = true

ということで、個人的にはstmpsをおすすめしたいのだけど、たまにaしても曲が追加されなかったり、アルバムをEnterしても曲一覧が空になったり、そこら辺の挙動の不安定さが。そもそも曲が56763あるので、遅延するのは分かるんだけどね。

stmpのほうが余計な機能がない分安定してる感じはある。


  1. 2024/12/7時点で最新は2023/08/30にリリースされたのが最新となる。 ↩︎