東芝 RD シリーズで電子番組表から番組予約する

Posted by
ぴろり
Posted at
2011/12/22 21:46
Trackbacks
関連記事 (1)
Post Comment
コメントできます
Category
電算室 カテゴリ
カバーイメージ

 2011年7月24日、地上波のアナログ放送が終了しました。しかし、地元 CATV 局が暫くの間、デジタル放送をアナログ電波に変換して放送(デジアナ変換)してくれているお陰で、従来のアナログ放送専用機器でもデジタル放送を受信できるようになっています。
 ところで、自宅で使用していた DVD-HDD レコーダは、アナログ チューナーのみを搭載している東芝製 RD-XS38 なのですが、アナログ放送終了と同時に電子番組表の提供も併せて停止されてしまったため不便な思いをしていました。番組を録画することはできても、目的の番組を録画予約したい場合には、古いビデオデッキのように、テレビ欄を見ながらチャンネル、放送開始時間、放送終了時間を都度設定しなければなりません。機械的にも全く問題ないのに、そのためだけにデッキを買い換えるのも勿体無いです。
 そこで、番組表から一発で録画予約できるようにしてみました。以前のようにデッキだけで録画予約というわけにはいきませんが、テレビ欄を見ながらちまちまとチャンネルや放送時間を設定するよりは格段に楽チンだと思います。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  

動作の概要

 RD シリーズには、電子メールで番組予約をする機能があります。なんらかの方法で、番組表から予約メールを飛ばすことができれば、チャンネル番号や放送開始時間、放送終了時間を都度都度入力して録画予約する手間が省けます。

  1. Web ブラウザを用いて、テレビ番組表 Yahoo! テレビ から、録画予約したい目的の番組を選択します。
  2. ブックマークレット(後述)を選択します。ブックマークレットは、ブラウザに表示中の番組詳細ページの URL をプロキシ(後述)に渡します。
  3. プロキシは、ブックマークレットから受け取った番組詳細ページの URL を取得し、HTML から番組名やチャンネル名、放送開始時刻などを取得します。
  4. プロキシは、取得した番組の内容をメールに整形し、番組予約用のメールアドレスに送信します。
  5. デッキは番組予約メールに従って番組を予約します。

プロキシ

 ソースコードを Trac リポジトリから取得してください。バグ チケットの管理および最新版の配布等も Trac 上で行っています。

設置方法

 プロキシは Web サーバ上で動作する CGI スクリプトになっています。Web サーバはレンタル サーバを借りるなり、自宅サーバを建てるなり、何とか頑張って用意してください(^^;)ゞ ダウンロードしたスクリプトを、以下の設定項目を適切に変更した後に設置してください。この記事では、Web サーバの構築方法や一般的な CGI の設置手順などは説明していません。

 もし、公衆ネットワークに公開された Web サーバに CGI を設置した場合には、その存在を秘密にするか、または適切な認証方法で CGI の実行を保護してください。そうしなければ、あなた以外の誰もが自由にあなたのデッキに番組予約できてしまいます。

########################################################################
### ユーザごとの各種設定
########################################################################

### 予約用メールアドレス
my $mail_address    = 'rd@your.domain.example.com';
my $from_address    = 'EPG2RD Proxy';

### メール予約パスワード
my $mail_password   = 'rdstyle';

### チャンネル名とチャンネル番号の対応表
my %ch_name_num = (
    'NHK総合1・京都'    => 1,
    'NHKEテレ1大阪'     => 2,
    'MBS毎日放送'       => 3,
    'KBS京都'           => 4,
    'ABCテレビ1'        => 5,
    '関西テレビ1'       => 6,
    '読売テレビ1'       => 7,
);

### メール送信プログラムの指定
my $sendmail = '/usr/sbin/sendmail';
$mail_address
 番組予約のためのメール アドレスです。デッキの設定に合わせて変更して下さい。
$mail_password
 デッキで設定したパスワードです。もし、番組予約用のメールアドレスが漏れた場合でも、ここで指定されたパスワードを正しく指定しなければ、誰でも番組予約できないように保護します。デッキ側でパスワードを設定しない場合、rdstyle が使われるようです。
%ch_name_num
 Yahoo! テレビの番組表には、録画すべきチャンネル番号が記述されていませんし、また放送エリアなどによって、テレビ局と実際のチャンネル番号が異なる場合があります。ここには、番組表に表示されたテレビ局の名称と、それに対応するチャンネル番号のリストを定義します。
$sendmail
 Web サーバがメール送信に使用するプログラム名です。サーバに合わせて変更してください。たいていの Linux サーバであれば、このままで動作すると思います。

ブックマークレット

 通常、ブックマークを選ぶと、登録しておいた Web ページに一発で移動することができます。これと同じように、ブックマークを選ぶと、登録しておいた JavaScript が実行されるのがブックマークレットです。
 録画予約したい番組の番組詳細ページを表示しているタイミングで、ブックマークレットを選ぶことで、その番組詳細ページをプロキシに渡すようにします。

javascript:void(location.href='http://your.domain.com/EPG/booking.cgi?pid='+location.href.replace(/D/g,''));

 http://your.domain.com/EPG/booking.cgi の部分は、あなたが設置したプロキシ CGI の URL に変更してください。

いろいろ

  • 自宅の RD-XS38 でのみ動作確認済みです。他機種でも多分、動作すると思いますが、よろしければコメント欄に一報下さると幸いです。
  • 電子番組表は Yahoo! テレビ のみ対応しています。
  • 番組表から、チャンネル、放送開始時刻、放送終了時刻が取得できればよいので、他のテレビ番組表サービスにも対応できる可能性があります。
  • $mail_address をデッキ宛のメールアドレスに設定すると、上手く番組予約できない場合などにハマるので、先ずは自分宛のメールアドレスを設定して動作確認してから、デッキのメールアドレスに変更すると better です。
  • 番組表の解析は、文字列による単純なマッチングのみで行っています。そのため、番組詳細ページの HTML が少しでも変更されると、解析に失敗し、番組予約できなくなる可能性が高いです。
  • その場合、プロキシ CGI の番組表の解析部分のソースコードを修正する必要があります。ご連絡頂くか、ご自由に修正してご利用ください。
  • ライセンスは GPL とします。
  • GPL ですので、修正されたり、改造されたソースコードを自由に配布できます。
この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  



関連記事/トラックバック (全 1 件中、最新 5 件まで表示しています)

Open MagicVox.net のスクリーンショット
タイトル
東芝 RD シリーズで電子番組表から番組予約する その2
Trackbacked at
2011/12/23 13:33
from
Open MagicVox.net
概要
 テレビ欄から目的の番組をグラフィカルに選んで、東芝 RD シリーズ宛に番組予約メールを飛ばすために、ブックマークレットを選択して CGI を呼び出して...

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。