Yahoo動画をBackGroundvideoとして、ランダムに再生するPerlスクリプトをバージョンアップ。
といっても、YahooのHTMLデータにちょっと違うものが見つかったので対応しただけ。
使い方
1. 目的の動画の「動画を見る」ボタンがあるページのURLを見つける。
ブラウザを使って自力で探します。
2. タイトルとURLを定義ファイルyvplay.datに登録する。
エディタで開いて、記入する。
タイトルとURLをタブで区切って記入する。
(1.1とは順番が逆になります)
もちろん、複数のURLを指定することができます。その場合は1行1URLで指定します。
夕刊フジ TVhttp://streaming.yahoo.co.jp/p/t/00039/v00575/
3. 動画をランダム再生する
> perl yvplay.pl
ソース
たいしたものではないので、そのまま載せる。ypplay.pl
#!/usr/bin/perl
# yvplay.pl Rev.1.2
# Copyright (c) YAMAGISHI Norimasa nor@rally.or.jp
# http://rally.jp/comp/archives/
use LWP::Simple;
$IE='"C:\Program Files\Internet Explorer\IEXPLORE.EXE"';
$SRC_FILE='yvplay.dat';
open SRC_FILE, "<$SRC_FILE";
while(<SRC_FILE>) {
chop;
push(@URLS, $_);
}
while ( @URLS ) {
push( @play_list, splice(@URLS , rand @URLS , 1) );
}
while(@play_list) {
$item = shift(@play_list);
if ($item =~ /^$/) {next;};
if ($item =~ /^#.*/) {next;};
($item_title, $item_url) = split /\t/, $item, 2;
print STDERR "Now playing ";
if (!($item_title =~ /^$/)) {
print STDERR $item_title . " ";
}
print STDERR $item_url . "\n";
$play_url = &get_play_url($item_url);
print STDERR "player url = [" . $play_url . "]\n\n";
$cmd_line = $IE . " \"" . $play_url . "\"";
system $cmd_line;
}
print STDERR "## All list up items are END ##\n";
sub get_play_url {
my($item_url)=@_;
my $src_html, @lines_html, $line, $play_url;
$src_html=get($item_url);
@lines_html = split(/\n/,$src_html);
foreach $line (@lines_html) {
$line =~ s/\\//g;
if ($line =~ /document\.write\([\'\"]<a href=\"#\"/) {
chop;
$line =~ s/^.*onClick="wo\('//;
$line =~ s/'.*$//;
$play_url = $line;
last;
}
}
return $play_url;
}