音声作品をjellyfinで管理してみる
Overview
去年の話
以前こんな記事を書きました。
自分用音楽ストリーミングサーバを考える2 - blog.asterism.xyz
このときに建てたサーバは結局、「jellyfinではyoutube musicみたいに事前ダウンロードしておいてアプリで聞く、みたいな事ができない」というのに気づき一月もしない内に止めたました。
それだとflacのライブラリ200GBをスマホで持ち歩いている現状からの脱却は難しかったので。
ただそれでもこういうメディアサーバーっていいなーなどと思っていましたが、以下のような再生するコンテンツの問題があり手は出してきませんでした。
- 録画サーバーを建てるつもりは無い
- アニメ映画なんかは数本持ってるけどインターネット環境が劣悪な今の家で自宅サーバは厳しい
- だからといってVPSに1本でウンGBになるようなものを何本もアップロードするのはサーバ代が辛い
オタク音声作品買いすぎ問題
昔からR18も非R18も含めて †同人音声作品† をちょいちょい買っておりまして。
大量に買っているわけではないんですが、続けていると流石にそろそろ管理が辛くなってきたという問題があり。
今までやっていた管理は購入後ダウンロードしたファイルを ライブラリroot/サークル名/作品 という形のディレクトリ構成で管理していました。
例えば使っていない音楽管理ソフト(iTunesとかね)を使ってもいいんですが、jellyfinを使えばそのPC以外の端末からでも楽に利用できるので試してみた次第です。
今の所かなり満足。
作業内容
- VPS準備
- docker-composeでjellyfin立ち上げ
- 作品にタグ付け
- WSL2のrsyncでファイル転送
VPS準備
自宅サーバを用意するつもりは今のところ無いのでもちろんお外にサーバを借りてやります。
今回はクレジットが余っていたLinodeでやりました。
適当にUbuntu 20.04 LTSのRAM1GBプランを借りて、ユーザ作ったりssh鍵置いたりdotfiles入れたりdocker入れたりDNS設定したりなどなど。
docker-compose
docker-compose.yml
version: "3.3"
services:
jellyfin:
image: jellyfin/jellyfin
user: 1000:1000
networks:
- private
volumes:
- ./config:/config
- ./cache:/cache
- ./media:/media:ro
caddy:
image: caddy:2-alpine
environment:
- ACME_AGREE=true
ports:
- target: 80
published: 80
protocol: tcp
mode: host
- target: 443
published: 443
protocol: tcp
mode: host
networks:
- private
- public
volumes:
- /caddy_data:/data
- ./Caddyfile:/etc/caddy/Caddyfile
- /var/log/caddy:/var/log/caddy
自分以外のユーザがいるわけではありませんが、お外に公開せざるを得ない以上一応caddyでリバースプロキシしてhttps化してます。
https化せずID, パスワード認証のあるアプリケーションをインターネット経由で使うのは流石にちょっとなぁ…。
VPN貼ればいいじゃんそれはそう。
Caddyfile
<ここにDNS設定したFQDN>
reverse_proxy jellyfin:8096
作品にタグ付け
mp3tagを使いちまちま手作業で付けました。
もとからいい感じのタグをつけてくれている作品もあればそうでないのもあり、あるいはmp3tagの機能でファイル名から自動でタグ付けさせるのにいい感じのファイル名になっているものもあればなっていないものもあり、楽することが非常に難しいです。
トラックタイトルをファイル名から自動でつける程度ならできる作品が多いですが、それしかできないならどうせトラックナンバー入れたりでちまちまやらざるを得ない(自動でトラックナンバー入れさせるためにはファイル名を書き換える必要があり、その作業を手作業でやるんなら結局意味はなく)その程度の自動化しかできないならもう手作業でやっちまえと適当に時間空いたらちまちまやってます。
WSL2のrsyncでファイル転送
元々はSFTPで送ってましたが、せっかくWindowsでもrsyncを使う手段が増えたから試してみようとWSL2から転送しています。
rsync -azvh -e "ssh -i ~/privatekey -p 22" /mnt/d/voice-library/ aries@x.x.x.x:/jellyfin/media/
こんなやつを新しい作品を買ってタグつけるたび実行してます。
ここまでやって
やっぱりベアボーン1個ほしい。