APub アカウントの following だけが閲覧できる streaming server をつくった。 脆弱性を突かれないようにソースコードはしばらく非公開としており、今頑張ってレビューをしている。

Authentication

知っているアカウント同定の方法が OAuth アクセストークンを得て /api/v1/accounts/verify_credentials する方法しか知らないのでとりあえずこれを実装したが、必要な権限スコープが read:accounts であり少し過大である。 つまり、管理者 (私) は視聴者の非公開かつ扶養な情報 (e.g. followers を非公開にできる実装がある) を閲覧できることになる。 対処療法としてトークンを DM してもらい認証するものも実装したが、Single Sign On で対応できないか検討中。 無理な場合は gpg で認証する仕組みでも追加するのがよいか。

Streaming

https://github.com/video-dev/hls.js を使うとフロントエンドが動画の segment があるであろうエンドポイントに勝手にアクセスしてくれる。 配信者は static serve をしてそのパスに動画のセグメントをおいていけばいいのでかなり気軽に配信ができる。

OBS の設定例:

https://www.alpha.co.jp/blog/202201_02/

コメント

10人と少ししかいない following 限定なので顔や声を出してもあんまり恥ずかしくない。 公開できる仕事や、NINTENDO 64 の『糸井重里のバス釣り No.1 決定版!』を実況していきたい。 最近は Radio Frequency くらいのドメインの回路設計に入門していて、演習がてら HDMI splitter を設計しているので これを配信している。 本当は研究もここで議論しながらやってみたいが、大学のコンプライアンス推進室に怒られそうなのでやめておく。

今回 golang で書いたが、いろいろあって Rails に入門する必要がある。 Rails の魅力は開発スピードらしいので、このストリーミングサーバーを Rails で再実装して利点を享受して見る予定。