TVRemotePlus

OVERVIEW

テレビや録画をデバイスを問わずブラウザからリモート視聴できるようにする、ローカルサーバー型ソフトウェア。(2019.03-2022.04)

YEAR 2019 - 2022

テレビや録画を、PC・Mac・タブレット・スマホとデバイスを問わず、ブラウザからリモート視聴できるようにする、ローカルサーバー型ソフトウェアです。

あらかじめ TS 抜き( PC でテレビが受信できる)環境が構築されている必要がありますが、 端末や OS を問わず、サーバーと同じローカルネットワークに繋がっていれば、テレビや録画番組をブラウザから手軽に視聴することができます。 別途 Tailscale などの VPN を併用すれば、外出先から視聴することもできます。

インストールするサーバーは Windows のみの対応ですが、視聴するデバイスは、最新のブラウザ (Chrome・Firefox・Safari) が利用できるすべてのデバイスに対応しています。

さらに、ニコニコ実況のコメントを流したり、テレビを観ながら Twitter に実況ツイートするための機能もあります。というよりこれがやりたくて開発していました…。


もともと、まだ HTML に PHP スクリプトを直書きして動いて喜んでいたくらいのプログラミング超初心者の頃、習作として試しに作ったものがベースです (2019.03)。そのおかげでとんでもないクソコードになってしまったわけですが…。

当初は公開するつもりはなく完全に自分用だったのですが、開発していくうちに(少なくとも機能だけみれば)そこそこ使えるものになったので恐る恐る試しに公開してみたところ、想像以上に反響があり、感激した記憶があります。
それ以来、機能追加を中心に長きにわたり開発していました。

最終バージョンの v2.7.1 は 1,700 回ダウンロードされている など (2022年10月末時点) たいへん多くの方に使って頂けていて、ありがたい限りです。


技術スタックとしては、フレームワーク無しの生 PHP と HTML / CSS 、それと JavaScript (jQuery) という、技術選定からして非常にレガシーな構成です。

さらに Windows 上で動かすために、Windows 向けの Apache と  PHP を(エンコーダーや チューナー受信ソフト などと一緒に)リポジトリにバイナリごと組み込み、専用に C# (WPF) で書いたランチャーソフト (TVRemotPlus-Launcher) をタスクトレイに常駐させて Apache を起動させるという、とてつもなくアクロバティックな構成になっていました。

システム設計はおろか、フレームワークを活用するといった概念や知識をまったく持ち合わせていないド素人の頃に開発をはじめた上に、ユーザーから頂いた要望をリファクタリングを一切せず無計画にひたすら実装していってしまった結果、気づいた頃には秘伝のソース状態のスパゲティプログラムになってしまっていました…。

開発を続けるにつれ、自分で書いたはずのスパゲティプログラムがもはや読めなくなってきた事、さらに根本から書き直さない限り解消不可能なシステム構造上のボトルネックや機能追加の要件が大量に出てきた事もあり、2021年8月をもって開発を終了しました。

2022年4月にバグ修正のために最後のアップデートを行って以降は、後継という位置づけの KonomiTV の開発に専念しています。


後先考えずに「動けばいいや」で適当に書いた結果あとあと大量の技術的負債を生んでしまったりと、開発での反省点は山ほどあります。

セキュリティの知識も考慮もまるでしていなかったうえにフレームワークを使っていなかった(&性質柄処理の多くを exec() 経由での外部コマンドに頼っていた)ことで、OS コマンドインジェクションなど重大な脆弱性を多く抱えてしまい、ほかの強いプログラマーさんに脆弱性の報告と、修正パッチのプルリクエストを頂いた苦い経験もあります(あの時は本当に助かりました…)。

…とはいえ、TVRemotePlus を開発していく中で得た技術、経験、知識、諦めずにググってなんとかする問題解決力、そして『ユーザーの声を聴いて機能追加や改良で応え、ユーザーに喜んでもらえる』成功体験ができたことは、私の中でかけがえのない礎になっています。なんだかんだ3年も作っていただけはあり、思い入れも強いプロダクトです。


WEBSITE