番組情報の取得について


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ここまでで、MythTVからチャンネルを指定した録画予約は出来るようになっていると思いますが、
まだ番組情報が取り込めていないため、番組予約が出来ません。

当初は色々問題がありましたが、各種パッチにより安定してactive EIT scanが使えるようになりました。
今までepgdumpやmc2xmlを使っていた方も、これを機に移行してみましょう。


1.MythTVのacive EIT scanを使用する方法

fuse_b25】を導入し、【MythTVのインストール】でパッチを適用していれば、
mythtv-setup】でactive EIT scanにチェックを入れることにより、
空いてる時間に自動的にEIT情報から番組表を取り込みます。

  • 既存の番組表をクリアするには、以下の方法を行います。
    • mythbackendを停止する。
    • mythconvergデータベースの、eit_cacheテーブルとprogramテーブルを空にする。
    • mythbackendを起動する。




2.epgdumpを使用する方法

MythTVとは別の方法で、録画したファイルからEPG情報を抽出し、MythTVに取り込みます。
  1. 30秒ほどTSファイルを保存。
  2. epgdumpコマンドで、保存したTSファイルからxmlファイルを生成。
  3. mythfilldatabaseコマンドで、生成したxmlファイルをmysqlに取り込む。
  4. 上記3つを処理を、全チャンネルに対して実行する。

上記のことを行なうスクリプトの例を、以下に示します。
/usr/local/bin/epgfill.cron
#!/bin/sh

adapter_no=11
channel_list="13 18 19 20 21 22 23"
rec_sec=20
sleep_time="/usr/bin/sleep 2"
outdir="/home/store/epgfill"
prog_epgdump="/usr/local/bin/epgdump"
sourceid=2
prog_mythfilldatabase="/usr/bin/mythfilldatabase --refresh-all --file"

for channel_no in ${channel_list}
do
 /usr/local/bin/tune ${adapter_no} ${channel_no} &
 tune_pid=$!
 $sleep_time
 /bin/cat /dev/dvb/adapter${adapter_no}/dvr0 > ${outdir}/epgtemp${channel_no}.ts &
 cat_pid=$!
 /usr/bin/sleep $rec_sec
 /bin/kill $cat_pid
 $sleep_time
 /bin/kill $tune_pid
 $sleep_time
 $prog_epgdump ${channel_no} ${outdir}/epgtemp${channel_no}.ts ${outdir}/${channel_no}.xml
 $prog_mythfilldatabase ${sourceid} ${outdir}/${channel_no}.xml
done



3.mc2xmlを使ってmythfilldatabaseを更新する方法

mc2xmlとは、MicrosoftがWindows Media Center向けに提供している番組表データを
xmlファイルとして保存するソフトです。

公式サイト:mc2xml
※サイトの中段あたりに、MythTVでの使い方が詳しく書かれています。

東京都渋谷区代々木(〒151-0053)地域を例に説明していきます。

1.mc2xmlディレクトリを作成し、公式サイトからmc2xmlを落として保存してください。

$ mkdir ~/mc2xml
$ cd ~/mc2xml
$ mv ~/Download/mc2xml .

2.mc2xmlに実行権限を与え、番組データをxmltv.xmlに保存してmythfilldatabaseに読み込ませます。

$ su
# chmod 755 mc2xml
# exit
$ ./mc2xml -c jp -g 1510053 -U
Loading ..... : mc2xml (c) <mc2xml@gmail.com> (v1.0)
Reminder .... : Unauthorized redistribution prohibited.
Reminder .... : If this software is useful, please donate!
Connecting .. : microsoft.com

Select lineup:

(CAB) ←(CAB)はCATV、(TER)は地上波、(SAT)は衛星波です。
(TER)
(TER)
(TER)
(SAT)
(SAT)
(CAB)
(CAB)

[mc2xml] (0-7):1
Downloading . : microsoft.com
Downloaded .. : 96968 bytes in 3s
Source ...... : 日刊編集センター
Headend ..... : 45
Version ..... : 2765185880
Start time .. : 2011-01-29T15:00:00 UTC
End time .... : 2011-02-06T14:59:00 UTC
Parsing ..... : 八王子
Writing ..... : xmltv.xml
Writing ..... : mc2xml.dat
Completed ... : 1121099 bytes in 139s, 8 channels, 2651 programs scheduled.

$ mythfilldatabase --refresh-all --file 1 ./xmltv.xml

これだけで、MythTV側へ番組表が読み込めます。
※mythfilldatabaseを実行する前にmc2xmlで作ったxmltv.xmlを開いて、
 各テレビ局の「channel id」をmythtv-setupのチャンネル設定にある「xmltvid」に登録して下さい。

3.cronを使って、毎日am3時27分に番組表を更新するように設定します。

/etc/crontab
27 3 * * * user /home/user/mc2xml/update.sh

/home/user/mc2xml/update.sh
#!/bin/sh
cd ~/mc2xml
if ~/mc2xml/mc2xml ; then
mythfilldatabase --refresh-all --file 1 ./xmltv.xml
fi

※mythfilldatabaseの、MythTV側での自動実行はOFFにして下さい。

以上で、各設定は完了です。


4.xmltv(tv_grab_jp)を使って、mythfilldatabaseを更新する方法


現在、xmltv(tv_grab_jp)を使用してONTV JAPANより番組表の取得は、公式には出来ない状況です。
ここで紹介する方法は、そのUser Agent拒否を回避して取得していますが利用する側の自己責任でお願いします。
この方法は推奨しません。



1.xmltvをダウンロードして、必要なperlモジュールをインストールする。 ※足りないperlモジュールがあれば各自追加して下さい。

$ wget http://nchc.dl.sourceforge.net/sourceforge/xmltv/xmltv-0.5.59.tar.bz2
$ tar -jxvf xmltv-0.5.59.tar.bz2
$ cd ./xmltv-0.5.59

$ su -
# perl -MCPAN -e shell
cpan> install XML::Parser
cpan> install XML::Twig
cpan> install Date::Manip
cpan> install File::Slurp
cpan> install XML::Writer
cpan> install Lingua::EN::Numbers::Ordinate
cpan> install Lingua::Preferred
cpan> install Term::ProgressBar
cpan> install Unicode::String
cpan> install Text::Kakasi
cpan> install HTML::TreeBuilder
cpan> install Term::ReadKey
cpan> install Tk::TableMatrix
cpan> install LWP
cpan> exit
# exit

2.Makefile.PLの566行からコメントアウトを消して、tv_grab_jpを有効にし修正パッチを当てます。

$ vi Makefile.PL
{ name => 'tv_grab_jp',
  blurb => 'Grabber for Japan',
  exes => [ 'grab/jp/tv_grab_jp' ],
  prereqs => { 'HTML::TreeBuilder' => 0,
              'Text::Kakasi' => 0 } },

修正が済んだら保存して下さい。


3.続いてコンパイルとインストールを行います。 ※tv_grab_jpを含む以下の4つが[yes]になってるか確認して下さい。

$ perl Makefile.PL

<<中略>>

Grabber for Japan (tv_grab_jp) [yes]
Grabber that combines data from other grabbers (tv_grab_combiner) [yes]
Program to report exceptions and changes in a schedule (tv_check) [yes]
CGI program to filter listings (to install manually) (tv_pick_cgi) [yes]

<<中略>>

Checking if your kit is complete...
Warning: the following files are missing in your kit:
       .cvsignore
       filter/.cvsignore
       grab/ch_search/.cvsignore
       grab/hr/.cvsignore
       grab/huro/.cvsignore
       grab/it/.cvsignore
       grab/it_dvb/.cvsignore
       grab/na_dd/.cvsignore
       grab/na_icons/.cvsignore
       grab/no_gfeed/.cvsignore
       grab/se_swedb/.cvsignore
       grab/uk_bleb/.cvsignore
       grab/uk_rt/.cvsignore
       lib/.cvsignore
       tools/.cvsignore
Please inform the author.
Writing Makefile for XMLTV

$ make
$ su
# make install

4.Get_nice.pmへ、ONTV JapanのUA対策の回避パッチを当てる。

# chmod 777 /usr/lib/perl5/site_perl/5.10.0/XMLTV/Get_nice.pm
# vi /usr/lib/perl5/site_perl/5.10.0/XMLTV/Get_nice.pm

$ua->agent("xmltv/$XMLTV::VERSION");
↓
$ua->agent("Mozilla/5.0");

修正が済んだら保存して下さい。

# chmod 444 /usr/lib/perl5/site_perl/5.10.0/XMLTV/Get_nice.pm
# exit

これで、XMLTVのインストールは完了しました。

5.続けて、tv_grab_jpを実行して放送局データを取得しmythfilldatabaseに読み込ませます。

$ cd ~
$ tv_grab_jp --configure
$ cp /home/user/.xmltv/tv_grab_jp.conf /home/user/.mythtv/digital.xmltv
$ cd /home/user/.mythtv

※選択した地域によっては「放送局データ」を取得出来ない場合があります。
その時は、ONTV JAPANを参照の上「tv_grab_jp.conf」を手動で作成して下さい。

※mythfilldatabaseを実行する前に、mythtv-setupのソースファイルをtv_grab_jpで作った「digital.xmltv」を選択します。
そしてdigital.xmltvを開いて「channel」をmythtv-setupのチャンネル設定にある「xmltvid」に登録して下さい。

あとは、通常通りmythfilldatabaseを実行すると番組表が読み込めます。

$ mythfilldatabase

以上で、各設定は完了です。

ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。