過去ログからニコニコ実況ログを作成する方法

JikkyoRecはテレビ録画時にニコニコ実況ログを保存しますが、保存に失敗したときは外部ツールを使い過去ログを取得してnicoJK形式のログに変換すると便利です。


1. ニコニコ実況コメントビューアをダウンロード


2. ニコニコ実況コメントビューアを使い過去ログをダウンロード。
公式サイトの「過去ログを見る」で番組と時間を選択し、「ブラウザーで見る」ボタンをクリックすると過去ログのURLが生成されるので、それをニコニコ実況コメントビューアのURL欄にコピーすると簡単です。


3. ダウンロードした過去ログ(番組名_時間.xml)を変換。
JKL_conv.batのPATH設定をして、過去ログをJKL_conv.batへドラッグ&ドロップすると、nicoJK形式のログが生成されます。過去ログの中には番組情報が無いため、ログを自動的には適切な番組のフォルダ(jkXX)に移動できません。そのため手動でファイルコピーします。

※2013/2/8にNicoJKPlayModX5がリリースされて、ニコニコ実況コメントビューアのログファイル(.xml)に対応したため、3.の手順は不要になりました。

JKL_conv.bat
@echo off
set output="F:\ts2 data\log"
set perl=C:\Dwimperl\perl\bin\perl.exe
set jkl_conv="F:\ts2 data\log\JKL_conv.pl"

for %%a in (%*) do (
	%perl% %jkl_conv% %%a %output%
)

pause
JKL_conv.pl
use strict;
use utf8;
# use Encode ();
# use Unicode::Japanese;

my $file = $ARGV[0];
my $output_dir = $ARGV[1];

my @lines;
my $start_date = 0;

open FILE, $file or die "can't open file: $file";
while (<FILE>) {
	chomp;
	if (/(<chat .+\/chat>)/) {
		push @lines, $1;
	}
}
close FILE;

if ($lines[0] =~ /date="(.*?)"/) {
	$start_date = $1;
}

if ($start_date != 0) {
	open OUTPUT, ">$output_dir/$start_date.txt" or die "can't open output file: $output_dir/$start_date.txt";
	print OUTPUT join("\n", @lines);
	close OUTPUT;
	
	print "output: $output_dir/$start_date.txt \n";
}