【自家製】MythTV Part.3【HDDビデオ】 (823レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
394
(17): 2010/02/21(日)19:40 ID:PC15BNbc(1)調 AAS
うあああああああああああああああああああああああああ

lenny + debian-multimediaでmythtv使ってたんだけど、今日の昼間なんとなくupdateしたのさ。
半年ぶり位に、
そしたらmythtvが0.22になってさ。
データベースのエラーが出てさ、起動しなくなったよ…
DBのエラーが出るとこ消して起動はするようになったけど、
oldprogram oldrec recordedを消したから録画したやつ見れなくなったよ。マジ泣きそう。。。
多分、古い書式を新しい書式に変えるところがうまく動いてないっぽい

つか、stableでメジャーupdateすんなよな。。バカだろ

オリンピックをかえせ
395
(3): 2010/02/21(日)21:57 ID:+cuQ1Lof(1)調 AAS
>>394
ああ、うちも全部文字化けしてデータベース死んだわ。ご愁傷様。
396: 2010/02/21(日)22:37 ID:dzeZITDd(1)調 AAS
>394
0.21が残っていれば戻してみれば?
DBのバックアップは録画データ保存ディレクトリに
mythconverg-xxxxx.sql.gzで
残っているはずだから、
それを
zcat ファイル名 | mysql -u mythtv -p mythconverg
で戻す事が出来そうだけど。
#私は0.22に上げて一度しくったから、holdしている。
>395
私はやったことはないけど、
mysqlで
1. DBの文字コードをbinaryに変える。
2. mysqldumpでDBをダンプ
3. ダンプしたファイルの編集
DEFAULT CHARSET=binary を
DEFAULT CHARSET=utf-8 に変更
4. restore
って手順を踏めばいけそうな気がする。
416: 394 2010/02/28(日)16:16 ID:RDNWwDwL(1/2)調 AAS
>>395->>400
レスサンクス。やはりcharactersetの問題みたいですね。
0.21は手元に残ってないし、今週分の録画は0.22でしてしまったし、で0.22で行くことにしました。
古い録画のデータを0.22のdbに足せば良いのではと思った。で、やったこと。

mysqlに新しいdbを作り、そこに0.21のデータをリストア。SET NAMESはいじらず。(いじるとリストア出来ない。)
mysqlを起動。
そのまま足すと、recordedテーブルのtitle、subtitle、category、descriptionが文字化けするのを確認。
どうも、文字列にエンコードの情報が付いているらしく、それがlatin1になってる。新しいdbはutf8
ALTER TABLEを使い、 文字列のエンコード情報をutf8に変更。
insertで、新しいrecordedテーブルに修正した古いテーブルを足す。
417: 394 2010/02/28(日)16:18 ID:RDNWwDwL(2/2)調 AAS
mysqlのコマンドラインから見た感じは、うまくいったぽい。
ところが、
mythwebから録画済みをみると、0.21で録画した部分のsubtitleのあとが文字化け。
「メルボルン」???????????????????????????????こんな感じ。「メルボルン」がsubtitleね。
で、mythfrontendから見るとメディアライブラリが空になってて、0.22で録画したものも見れなくなった。

0.22でダンプされたdbはutf8→latin1の変換が入ったらしくレストア不能。参ったね。

俺の週末とテレビをかえせ。
421
(1): 394 2010/03/03(水)21:04 ID:Jib32jZV(1/2)調 AAS
0.21から0.22への移行がやっと出来た。
DBに登録されているタイトル等が、0.21から0.22でlatin1からutf8に切り替わる。
その時に、変換に失敗するタイトルがあったのがアップデート出来ない原因だった。
http://www.mythtv.org/wiki/Fixing_Corrupt_Database_Encodingこれは多分関係ない。俺も凄くハマった。
0.22のDBに0.21のデータを足すことが上手く行かなかったので、mythbackendのupdateを成功させる方向で試行。
mythbackendをストップ。0.22のデータをmysqldump --default-character-set=utf8でセーブ。
0.21のデータをmythconvergにレストア。手作業でdbcheck.cppのアップデートを当てて行った。
うちの場合は、oldprogramの中の、「ヒューマン ドキュメンタリー あと数か月の(文字化け)」が失敗してた。
ALTER TABLE oldprogram MODIFY oldtitle varbinary(128) NOT NULL default '';
ALTER TABLE oldprogram
DEFAULT CHARACTER SET default,
MODIFY oldtitle varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '';
をmysqlで実行。エラーが出るので
delete from oldprogram where oldtitle like 'ヒューマン%';
で該当する行を全部消して対処した。
その後、mythbackendを起動。 schemaのupgradeが上手く行った。
結局、たった一箇所の文字コード変換失敗(しかもoldprogramっていう一番いらない場所)で振り回されまくった。
oldprogramは古い番組表を保持してるっぽいので、引っかかってる人は同じ原因かも。
422: 394 2010/03/03(水)21:30 ID:Jib32jZV(2/2)調 AAS
>>395
文字化けしてるのはタイトル等を納めたカラムがutf8以外の文字設定になってるんだと思う。
まず、mysql -umythtv -p mythconverg -e 'set charset binary;select title from recorded;'
こんな感じでカラムに納まってる文字列がutf8で正しい文字列か確認すると良いと思います。
格納されてる文字列は正しいのに文字化けが出るなら、カラムの設定がおかしいので、
前述したように、mythbackendのupgradeを動かせば直るかも。
mysql -umythtv -p mythconverg -e 'update settings set data=1215(戻したいバージョン) where value='DBSchemaVer';'
こんな感じでバージョンナンバーを無理やり書き換えて、backendを起動すればupgradeをまたできます。
結構失敗するけど。
DBに格納されてる文字列自体がぶっ壊れてる時は、どうすればいいのかわかんないっす。
>>401
うちは平気っぽい。
tv_grab_jp --version
XMLTV module version 0.5.52
This is tv_grab_jp version 1.12, 2006/04/12 08:19:16
539: 394 2011/05/22(日)06:56 ID:kEtj9XOt(1/5)調 AAS
もうontv使っている人はほとんどいないと思うけど、変更点を書いておきます。
地域コードも変わってるのでxmltvの設定のregionを適当に書き換えてください。
東京は013です。他の地域はontvから適当に拾ってください。
540: 394 2011/05/22(日)07:00 ID:kEtj9XOt(2/5)調 AAS
番組表に関する変更点。
611,613c611,613
< $hsid =~ m/hsid=(\d{8})(\d{4})(\d{3})/;
< return undef if (not defined $1) or (not defined $3) ;
< my $date = $1;
---
> $hsid =~ m/program_id=(\d{4})(\d{8})(\d{4})/;
> return undef if (not defined $2) or (not defined $3) ;
> my $date = $2;
762c762
< if ($href =~ m/^gridChannel.php\?tikicd=${regionid}&ch=(\d\d\d\d)/) {
---
> if ($href =~ m/^?ch=(\d\d\d\d)/){
541: 394 2011/05/22(日)07:05 ID:kEtj9XOt(3/5)調 AAS
続き

838c838
< my $url = "$urlbase/program/gridChannel.php?ch=${channelid}&genre=all";
---
> my $url = "$urlbase/pg_grid_channel/?frame_status=0&ch=${channelid}";
847c848
< my $url = "$urlbase/program/gridChannel.php?tikicd=${regionid}&";
---
> my $url = "$urlbase/pg_grid_channel/?bc_code=00&service_code=${regionid}&";
542: 394 2011/05/22(日)07:20 ID:kEtj9XOt(4/5)調 AAS
文字コードに関する変更点。utf-8になったっぽい。
kakasiがうまく動かないけどとりあえず。
from_to及び、utf8::encodeで始まる行を全てコメントアウト。
kakasiに関する、-ieucを-iutf8に置換。
709及び712-716をコメントアウト
717に $readstr=$title;を追加。 (kakasiを使わない)
841,851にあるreturn $content;の前に
utf8::decode($content);を挿入。
543: 394 2011/05/22(日)07:29 ID:kEtj9XOt(5/5)調 AAS
肝心なことを書き忘れたけど、tv_grab_jpの変更です。
大量にエラー吐くけど、上記の設定でとりあえず動きます。
アナログtv+perl+漢字コードまわりっていう究極のオワコンブラザーズなんで、これ以上fixする気はありません。
これで水戸黄門の再放送が録画できそうで幸せです。
デジタルにするの面倒くせぇな。。。
544: 2011/05/22(日)15:24 ID:aZ+BTeaP(1)調 AAS
>394
おかげさまで、取り込むことができました。助かりました。
こちらのxmltv-0.5.53-2と行数が異なっていましたが、推測で設定したらうまくいきました。
709行目は、# read string (Romaji) of title の辺りでしたか?
もう延命措置なので、デジタルに移行したいですね。PT2を入手したい。
548
(2): sage 2011/05/25(水)01:05 ID:gkYnJ7Jk(1/2)調 AAS
>394 544
すまんが、

709及び712-716をコメントアウト
717に $readstr=$title;を追加。 (kakasiを使わない)

の部分を詳しく教えてくれないだろうか?
549: 394 2011/05/25(水)22:11 ID:oiZ5FRoi(1/2)調 AAS
>>548
行数しか書いてなかったら普通わかんないですよね。
titleをローマ字だかひらがなだかにする部分です。
自分の環境だとうまく動かなかったので削除しました。
下に変更後のコード置いとくんで、参考にしてください。
>>547
おお、有難うございます。
550: 394 2011/05/25(水)22:13 ID:oiZ5FRoi(2/2)調 AAS
# utf8::encode($t);
# Text::Kakasi::getopt_argv('kakasi', ' -iutf8','-oeuc', '-JH', '-KH', '-aE');
# from_to($t, "utf8", "euc-jp"); # convert to EUC
my $readstr = '';
# if ($t ne '') {
# $readstr=Text::Kakasi::do_kakasi($t);
# from_to($readstr, "euc-jp", "utf8"); # convert to UTF-8
# }
# Text::Kakasi::close_kanwadict();
$readstr=$title;
551: 548 2011/05/25(水)23:05 ID:gkYnJ7Jk(2/2)調 AAS
>394 >547
を参考に変更して動くようになったよ。
ありがとう。 助かった。
562: 534 2011/06/05(日)01:36 ID:PgxN3ZMn(1)調 AAS
>394 >547 ありがとうございます。参考にして、抜けてたとこまで
取れるようになりました。

foreach my $elem_td (@elems_td) の行が自分のtv_grab_jpになかったので
ちょっと考えたけど、回してるとこで入れてあげれば良いだけですね。

いきおいでPT2購入してきたけど、停波&再送停止まではアナログボードも使えるので
とても助かります。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.028s