2007/06/22

キーワード自動録画 第2回 試行錯誤編

前回までのあらすじと今回の内容

前回のキーワード自動録画 調査編では、TV番組のキーワード自動録画のために必要な要素を考え、それぞれどんなソフトを使えばいいのかを調査しました。

今回の「試行錯誤編」では、ユーザーがTVチューナー+ビデオキャプチャボードを買ったと仮定して、(というか自分が買ったんですが、)試行錯誤しながら自動録画システムを完成させていきます。



今回買ったTVチューナーボード

これ! (マウスみたい............)


WinFast PalmTop TV (6,980円 + 送料900円)

USBで繋がるやつです。電源供給もUSB経由でできます。
したがって、接続としては

 TVアンテナ線 ~ PalmTop TV ~ USBケーブル ~ 録画用PC

ということになります。



付属ソフトで「iEPG予約」を試してみる

「iEPG対応」と書いてある付属ソフトなら、Yahoo!テレビなどのテレビ番組表サイトで「iEPG」などというアイコンをクリックすると予約画面になると思います。



今回買ったハコの付属ソフト「WinFast PVR」では、上記のような画面になりました。

OKを押すと、実際に予約されます。



誰がOKを押す?

ここで、1つ問題が発覚しました。
OKを押さないと予約されないので、自動録画をするには何らかの仕組みでOKを押してあげる必要があります。



自動クリックソフトを探す

Auto Clicker というソフトを見つけたので、これを使ってクリックさせることにします。

Auto Clicker の設定ウィンドウにある十字アイコンを、
録画予約確認ウィンドウにある OK ボタンにドラッグ&ドロップします。

監視間隔は 5 秒くらいにしておきました。

あとは Auto Clicker をスタートアップに登録しておけば、自動クリックのからくり完成です。



TVスケジューラの設定

自動取得や検索ワードの設定などは本家を見て頂くとして、
WinPVR と組み合わせる際の注意を1つ。

それは、「テレビ局名をデフォルトの2バイト文字から ASCII 文字コードに変える」という事です。

iEPG ファイルに記載されているテレビ局名と WinPVR 側のチャンネル番号を結びつけるために iEPG 予約時には初回だけ録画チャンネルを選ぶ必要があるのですが、この時 iEPG ファイルのテレビ局名に2バイト文字が含まれていると WinPVR がうまくそのテレビ局名を記録してくれず、再起動すると消えてしまうのです。

iEPG のテレビ局名が ASCII なら大丈夫なようなので、TVスケジューラでそのように設定します。

TVスケジューラには、ウェブ番組表から取ってきた iEPG ファイルに含まれるテレビ局名を設定しておいた対応表に従って書き換えてから録画予約ソフトに渡すという機能があります。

これを使って、例えば「テレビ東京」を「JOTX」や「TOKYO」などに変換するように設定します。iEPG と WinPVR でチャンネルの対応が取れればいいだけなので、名前はなんでもよいです。

設定が終わったら、自動録画する可能性のある全チャンネルで初回予約をして WinPVR に覚えさせておきます。

...この問題には解決するまでに結構時間をかけてしまいました(笑)



まとめ

ここまでで一通りキーワード自動録画システムが動くようになりました。

今回の環境の場合、
用意したものは次の通りです。

1. TVチューナー+キャプチャボードが入ったハコ

2. iEPG対応の録画ソフト(TVチューナーに付属の LeadTek WinPVR)

3. TVスケジューラー

4. Auto Clicker

予約した後の実際の録画もちゃんと動くようなので安心しました。

ひとまずこれでしばらくつけっぱなしにしてみようかと思います。



おまけ(1) - 試行錯誤の結果ボツになったもの

自動クリック関係で最初に試したのは、AutoMouse でした。

このソフトを使うと、予め指定しておいた画像パターンと一致する場所をスクリーン上で探し、そこをクリックすることができます。

指定した画像パターンが出てくるまで待機していてくれるようなので、ウィンドウがずれたりしても大丈夫そうです。

が、このソフトは CPU 時間を食うようで、AutoMouse を起動しながら実際にテレビ録画をするとまったく録画できませんでした。
PC のスペックによるかもしれませんが、残念ながらうちのシステムでは使えないということでボツになりました。



おまけ(2) - iEPGファイルの中身

ちなみに、iEPGアイコンをクリックしたときにダウンロードされるファイルの中身はこんな感じです。

Content-type: application/x-tv-program-info; charset=shift_jis
version: 1
station: NHK総合
year: 2007
month: 06
date: 21
start: 04:30
end: 08:15
program-title: おはよう日本
program-subtitle:
description:[ニュース]▽[天気]▽夏商戦キーワードは“自分を磨く”▽国会会期延長は与野党攻防▽遺族も裁判に参加へ
performer:[出]松尾剛 [出]首藤奈知子

おはよう日本


こんなテキストファイルになっていて、放送日時や番組の詳細情報が書いてあります。

このファイルが、拡張子 "tvpi" に関連付けられたTV録画ソフトに読み込まれ、そのソフト内で録画予約がスケジュールされるというわけです。

2007/06/07

キーワード自動録画 第1回 調査編

PCでテレビ番組を自動録画する仕組みについて調べてみました。

動機、背景

1. 指定しておいたキーワードにマッチするテレビ番組を自動録画したい!

2. 安く済ませたい!2~3万まで!



ということをやりたくなったので

TVチューナー+キャプチャカード+ソフトで録画システムを組む事を考えています。

実は昨年、Perl + VB でスクラッチから書いてみたんですが、肝心のキャプチャカード(玄人志向のやつ)の動作が不安定だったりして安定運用には至らず、1ヶ月くらいでもう使わなくなってしまいました。


ここで改めて自動録画システムを組むことを考えてみようというわけです。




必要な要素

1. ネットからTV番組表を取得する部分

xmltv など。


2. 指定しておいたキーワードとTV番組表を比較して、合致するTV番組データを抽出する部分

TVスケジューラーは 1, 2 までできます。


3. スケジューラ。TV番組データと時刻から、録画開始/終了プログラムorルーチンを起動する部分

TVチューナ+キャプチャボード付属のソフトが iEPG 対応だったりすると、スケジューラもついていると思います。

単体ソフトとしては、NanoPocketがあります。


4. 録画部分

TVチューナ+キャプチャボード付属のソフトや、GraphEdit(マルチメディア系デバイス?の制御がGUIでできるもの)など。


GraphEdit についてはGraphEdit 非公式ガイドが参考になります。


(5. 必要に応じて、1, 2, 3, 4 間の呼び出しやデータ受け渡しをサポートするスクリプト)




ソリューション

基本的に、前述の 1~4 をうまく組み合わせればできるはずです。

組み合わせる場合、エラー制御が意外と肝になるかもしれません。
例えば、録画に失敗したときに GUI のメッセージボックスが出ちゃうと困るとか。

●xmltv(1)+MythTV (2, 3, 4)

linux only

●TVスケジューラー(1, 2)+iEPG対応したTVキャプチャボード付属ソフト(3, 4)

Windows ではこれが楽かな

●TVスケジューラー(1, 2)+NanoPocket(3)+GraphEdit 起動スクリプト+録画できるように設定したGraphEdit(4)

録画が付属ソフトでうまくいかないとか、付属ソフトがなかったとかいうときはこれでしょうか。

録画して出来たファイルをリネームするスクリプトとかもいるでしょう。

●スクリプト(1, 2, 3)+GraphEdit

去年つくったやつはこのパターンです。1,2,3 は perl、GraphEdit 制御部分は VB です。

勉強用と割り切ればいいですが、そうじゃない方には面倒なだけなのでナシですね。