こんばんは。気が付いたらブログの更新が途絶えたまま丸1年が経過しておりました。
この1年は色々な事が有りました。
世の中のあれやこれやが始まり、島に篭りっきりとなり、以来右肩上がりになった預金残高にふと気付いてしまったり。
思い返してみれば大した事も無いまま過ぎ去ってしまった1年でしたね。

そんな中、勉強も兼ねて自分でメディアサーバーを組んだりしてたので何回かに分けて覚え書きのメモを残していこうと思っております。
◇◇◇◇◇◇◇

昨年息絶えてしまった「Google Play Music」、皆様は使われておられたでしょうか。
Apple Music等と同様に音楽ストリーミングが可能なほか、「手持ちの音源を50,000曲まで無料でアップロードして保存可能」という滅茶苦茶美味しい機能が有りました。
これのお陰で携帯のストレージ容量を気にしながらの曲入れ替え・保存が必要無くなった(なお通信制限)のはもちろん、単純シャッフルではなく似たようなアーティストの曲を抽出してシャッフルプレイリストを作ってくれたり、まあとにかくお世話になったサービスでした。

が2020年5月、突然の余命宣告。


この地点では後継アプリもあるし良いか……と思っていたのですが、いざYouTube Musicへライブラリを移行してみたところまあ使いづらい。
端末サイドにライブラリ情報をキャッシュしてくれないらしく、画面遷移の度に情報を取りに行く上に細切れに取ってくるもんだからアーティストやらアルバムの一覧を開いてソート順が下位の項目を開こうとするといくらスクロールしても読み込みの嵐で全く辿り着けずまあ大変。
一週間もしない間に嫌気が差し、だいぶ前に自前ストリーミングサーバーを建てた後輩が居たし自分もこれを真似るか……と決意を固める一方、まあ年末まではサービス終了しないからと計画進捗は牛歩さながらの進み具合。

が、10月頃に突然の締め出し。
(色々あってメンタルが死にかけていた頃なのでスクリーンショットすら自前で取っていなかったですよ) 慌てて調べると「10月以降はアクセス不能、ただしエクスポートは12月まで可」ということで完全な読み違い。冬ボーナスが入ってから考えりゃいいや……と思っていたハード選定等を急ぎ進める羽目に陥ったのでした。

◆ OSとかサーバーアプリとか
今回はメディアサーバーアプリとしてJpsonicを採用することとしました。

先に紹介した後輩も利用していたSubsonicがルーツのため、機能は概ねそれに準じているようです。
日本語ユーザーによる日本語ユーザーのための音楽管理サーバーと言った立ち位置での開発が進められているようです。

OSは「適当にUbuntu辺り入れときゃええんちゃう?」くらいの考えで居ましたが、NAS構築に特化したOSを見つけてこちらのお世話になることに。

標準でソフトウェアRAIDやファイル共有用プロトコルのSMBが利用でき、自分のような情弱かつ面倒臭がり野郎には最適のOSと言えるのではないでしょうか(ほんまか?)。

◆ ハードウェア構成とか
ケース: Fractal Design Core 500 Black
電源: SilverStone SST-ST30SF V2(300W)
マザーボード: ASRock A320M-ITX
CPU: AMD Ryzen 3 3100
メモリ: (流用…DDR4-2666 16GB)
ストレージ: SanDisk SDSSDA-120G-J27(OS用, 128GB) + Western Digital WD60EZAZ-RT(6TBx2)
  • Minecraft等を動かすためのサーバーとしても動かしたいのでCPUはそれなり
  • 電力バカ食いされると困るので電源もそれなり
  • なるべく小さいケースに収めたいのでマザーボード選定はサイズ優先
  • サーバーだけど24時間稼働はしないのでHDDはサーバー・NAS向けではなく通常用途向け
…なんか欲張りすぎてどこを狙ってるんだかよく分からんいつもの悪癖を見事に発動してる気がせんでもないですが良いんでしょうかこれ。
なお、メモリは32GBのものを購入→メイン機と入れ替えで16GBのものをサーバーへ投入の流れとなりました。

◆ 案の定初っ端からやらかす
12月下旬、組み立て開始。
PXL_20201219_090651022
狭いスペースのやりくりに苦労しつつも組み付け完了、さあOSのインストールだと張り切るが起動しても画面には何も映らず。
あれ、BIOSすら起動しない…???と四苦八苦すること数十分。そして気付く。
このPC、画面出力するためのパーツ載せてねえな?

敗因は「マザーボードには最低限のグラフィック機能が備わっているのが当然」と今思えば謎の勘違いをしていたこと。
お前これで自作PC組み立てるの何回目なん???って感じのミスですが、今までグラフィックボードを載せる事が多かったことも有り勘違いが表面化していなかったようで。
そして一番痛いのはCPUの選定段階でグラフィック機能が載ってる「Ryzen 3 3200G」の存在に気付いていたにも関わらず脳死で「Ryzen 3 3100」を採用してしまってた点。なんてこった。
ひとまず物置に放り込まれてた余り物のグラフィックボードを刺してセットアップ期間を凌ぐこととしました。PCI-Expressのソケットが1つしかない関係上常設が出来ないものの、最初さえ凌げば基本操作は全てWebブラウザからになるのでまあ良いでしょうということで。

次に躓いたのがJpsonicの稼働環境整備。今回採用したTrueNASは「追加パッケージは基本インストール不可、それやりたいなら仮想環境(Jail)作ってそっちで」という作りになっているようで、Jpsonicを動かすためにJavaのインストールをするのにもまずはJailのお勉強から。TrueNASはFreeBSD系のOSらしいんですが、そもそもが「FreeBSDってLinuxとは別物なんですか?????」とか真顔で言い出す程度のITリテラシーなもんだからJailが無くとも一苦労でございました。

最終的にはこの辺を手がかりにセットアップを完了することができました。先人の遺産は偉大だ。

サーバーに置いた可逆圧縮音源をMP3に再エンコードして携帯等へ伝送する運用にしてますが、Windows機でテスト運用していた際には上手く行っていたエンコード処理がなかなか上手く行かずに再び時間を溶かす羽目に。
手引き通りにやってるしなんかデータも送られてきてるのに何故…???と思いつつ読み返したんですが。
ffmpeg on FreeBSD
「このコマンド叩けばええんやな!」を脳死でキメた結果半日を溶かす羽目になったことをここに白状します。

◆ できた
スキャン済みのライブラリを携帯から見るとこんな感じに。ちゃんと読み仮名反映でソートされてるのが滅茶苦茶良いですこれ。
Screenshot_20210709-214751
日本語索引に対応してくれている準拠アプリがあまりないことも有り、だいぶ前に更新が止まっているSubsonic Music Streamerを普段使いしています。シャッフル再生の自由度が低かったり、再生キューの順序を弄ったりとかが出来ないっぽいのを除けば悪くないのではないかと思います。
開発元のブログでも触れられている通りBubbleUPnPで聴くのが一番痒い所に手が届きそうで良きですが、外出中に使おうとするとVPN接続が必須になってしまうような。

ネットワーク絡みの設定やらファイルのタグ付けやらメディアサーバー以外の機能やら、色々メモせねばならんことはあるんですが出張先で勢いのままに書き始めてしまい色々資料が足りないので続きはまた後日。