KonomiTV では、各チャンネルを識別する ID の表記が3つある。
データベースの Channels テーブルの PK (Primary Key) として用いる ID 。
KonomiTV に同梱されている局ロゴのファイル名にも利用されている。
後述の URL 用の ID もユニークなのだが、万が一衝突したときのことなどを考慮して、確実にユニークになるこっちを使っている。
フォーマットは NID(ネットワークID)-SID(サービスID) の形式。
NID32736-SID1024
NID4-SID211
NID6-SID055
Mirakurun / EPGStation の
3273601024
ように数値にすることもできたが、開発時の視認性とぱっと見の分かりやすさを重視した。
NID は ONID (オリジナルネットワーク ID) と同義。
TSID (トランスポートストリーム ID) は Mirakurun からは残念ながら取得できないし、CATV を除けば一意なチャンネルの特定は NID と SID だけでできるため、NID と SID のみを使っている。
地上波の TSID は NID と同じ値になる。
<aside> 🗒️ 以前 kanreisa 氏に聞いたところ、「TSID は Chinachu を作る上で不要だったので管理していない」だけだそう。
</aside>
<aside> 📎 なお、EDCB バックエンド利用時のみ、Channels テーブルの transport_stream_id フィールドに TSID を設定している。
これは、EDCB ではチャンネルの選局など、あらゆる箇所で TSID を NID と SID と一緒に設定することが前提となっているため。
ユニークな ID としては NID-SID だけで完結できる。
</aside>
識別用の ID は数値よりかはわかりやすいが、とはいえエンドユーザー視点では分かりにくい。
URL もできるだけシンプルに整えたかったので、別途 display_channel_id を用意して、KonomiTV 内部では display_channel_id を使ってチャンネルを識別することにした。
フォーマットは (小文字にしたチャンネルタイプ)(チャンネル番号) の形式で、識別用の ID よりもよりシンプルになる。
gr011