KonomiTV では、各チャンネルを識別する ID の表記が3つある。

1. 識別用の ID (id)

データベースの Channels テーブルの PK (Primary Key) として用いる ID 。

KonomiTV に同梱されている局ロゴのファイル名にも利用されている。

後述の URL 用の ID もユニークなのだが、万が一衝突したときのことなどを考慮して、確実にユニークになるこっちを使っている。

フォーマットは NID(ネットワークID)-SID(サービスID) の形式。

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>

2. URL 用の ID (display_channel_id)

識別用の ID は数値よりかはわかりやすいが、とはいえエンドユーザー視点では分かりにくい。

URL もできるだけシンプルに整えたかったので、別途 display_channel_id を用意して、KonomiTV 内部では display_channel_id を使ってチャンネルを識別することにした。

フォーマットは (小文字にしたチャンネルタイプ)(チャンネル番号) の形式で、識別用の ID よりもよりシンプルになる。