データソースと xvproxy の仕組み

xvproxy.local.io はプロキシに偽装した番組情報配信用のウェブサーバーです。

もともと Xビデオステーションには外部の HTTPプロキシを経由して番組情報の受信を行う仕組みが備わっていますが、当サイトではこの仕組みを流用することによって Xビデオステーション 側での大規模な設定変更無しに番組情報を配信できるようにしてあります。

もちろん 「おまかせ録画」等の iCommand系の通信については外部サーバに問い合わせをする必要があるため限定的なプロキシ機能を実装してありますが番組情報の配信時にはサーバ内に溜めてある独自のデータベースから情報を配信しています。

データソースと合成順

xvproxy.local.io では複数の番組情報源から取得した内容を合成してその合成結果を Xビデオステーション側に配信しています。

地上波アナログ時代に元々 Xビデオステーションで使用されていたテレビ王国の番組情報サーバは先方のサーバからまるごと削除されているため使用できません。また、情報の取得が現在可能なサーバが他にあったとしても これからも同じように動作する保証がありません。

「ひとつのサイトの番組情報が取得できなくなったらおしまい」ではちょっと問題があるので xvproxy.local.io では複数の番組情報元を使用しています。

現在使用している番組情報元は以下のとおりです:

grid データソース

grid データソースは番組情報配信の仕組み上では「最終防衛ライン」です。

grid データソースは朝5時から翌朝5時までの「一日」を一時間毎に区切り、「番組情報がありません チャンネル名」という番組情報を配信します。

アナログ放送時代にはテレビ番組の内容は一定期間分 決まっていましたが、放送波に番組表をいつでも載せられる地デジでは番組の内容が急遽差し変わることが多くなっています。

Xビデオステーションでは当日+7日分の番組情報を必要としていますが、 grid データソースは番組の内容が未確定の日にも一定の内容を提供することによって Xビデオステーションが正しく情報を処理できるようにしています。

grid データソースは動的に生成されているため付随するデータベースを持ちません。

※ 番組情報が無い深夜に放送が1時間毎に分割してしまうのは grid データソースの所為です。申し訳ありません。対策としては「おまかせ録画」してもらうしかたぶんありません。

tvkd データソース

tvkd データソース (tv kingdom = テレビ王国) はテレビ王国の画面を高速に読み取るデータソースです。 詳細な情報を含む sonet データソースの場合は一回のデータ取込処理に半日以上要することもあり、また相手側のサーバに対する負荷も高いため今後は対策されてしまう可能性があります。

tvkd データソースの場合はジャンル情報の取得はできないものの、相手側のサーバへは殆ど負荷をかけずに番組情報を取得できるようになっています。tvkd データソースは「最低限 番組名だけでも取得したい!」という目的のために開発されました。

tvkd データソースの現在状況:
  • tvkd データソースの各地方局への割当、及び番組情報を確認する場合は ds_tvkd を確認してください。

icommand データソース

iCommand データソースは Xビデオステーションで使用されている 「おまかせ録画」 の支援機能です。

Xビデオステーションでは Xビデオステーション独自の自動予約機能以外に テレビ王国のサイトを通じた自動予約機能があります。

xvproxy.local.io では「おまかせ録画」に関連する通信を素通りさせる限定的なプロキシ機能が実装されていますが、 icommand データソースではその通信内容に含まれる番組情報を充当することによって icommand 経由で録画された内容が確実に分割されるように手配します。

icommand データソースの現在状況:
  • icommand データソースの各地方局への割当、及び番組情報を確認する場合は ds_icommand を確認してください。

syobocal データソース

syobocal データソースは アニメ・特撮に関する番組情報を扱っている「しょぼいカレンダー」から情報を取得しているデータソースです。「しょぼい」という名前に反して、しょぼいカレンダーではアニメ・特撮に関しては極めて詳細で正確な番組情報を有しています。

xvproxy.local.io では番組名、放送話数、サブタイトルの取得、野球番組等の放送延長による開始時間遅延の対策のために定期的にしょぼいカレンダーと同期しています。

syobocal データソースの現在状況:
  • syobocal データソースの各地方局への割当、及び番組情報を確認する場合は ds_syobocal を確認してください。

sonet データソース

sonet データソースはテレビ王国のウェブサイトから iEPG 予約データを個別にダウンロードして取り込む、最も詳細なデータが取得できるデータソースです。

詳細なデータが取得できる反面、一秒に一回のデータアクセス頻度でも半日以上の時間を要し、その継続的なデータアクセスはテレビ王国側のサーバに負荷を与えてしまいます。

正確な番組情報を提供するにはこのデータソースが一番なのですが、方法論的にまったくエレガントではありません。

テレビ王国側に対策(締め出し)されないといいなぁ(汗

sonet データソースの現在状況:
  • sonet データソースの各地方局への割当、及び番組情報を確認する場合は ds_sonet を確認してください。

以上のデータソースを順に合成 (後から追加される番組情報は前段階の情報を上書きする) することによって xvproxy.local.io は番組情報を生成して配信しています。

iCommand データソースの残存日数の表示が少ないのは特に問題は無いのですが、 tvkd データソースと sonet データソースの残り日数が 2日を下回る場合は番組の分割に影響が出てしまいます。

その場合は至急 連絡掲示板@LocalioProjects まで連絡をお願いします。
至急データ取得が止まってしまった原因を調査します。