PHPに惚れました

今でも多分惚れてます。

何だこれ!!

ニコニコ外部プレーヤのメタデータ見てみようとしたら何かソースみたいなのが取れた。

[考察]
現在外部プレーヤはfc2ブログなど特定のブログサイトやSNSサイトなどに限定されている。
なので、ヘッダーにリファラーとして、fc2ブログのリファラーを付けてやれば、
きちんと面白いデータが取れるかも? ってことでリファラーの付け方を調べて実際にコーディング。

[ソースを書いてみる]

外部プレイヤーのmetaデータを取得のつもり

<?
$option = array('http' =>
 array('method' => 'GET',	'header' => 'Referer: '.'http://deltacolors.web.fc2.com/nicomov.html?sm500873'."\r\n")
);
$context = stream_context_create($option);

$str = file_get_contents('http://ext.nicovideo.jp/thumb_watch/sm500873', FALSE, $context);

print"<pre>";
print_r($str);
print"</pre>";
?>

実行結果(キャプチャ画像)
f:id:Xephy:20090201193451p:image

ん? これメタデータじゃないぞ。
よく見たらifとかfunctionとか書いてあるって事は・・・これ何かのソースだ!!
ちょっと見辛い上にソースが途中で途切れてる。

とりあえず全行を見る為にテキストファイルにプットしてみる。

見た感じJavaScript…かなぁ?

プットしたテキストファイル(キャプチャ画像)
f:id:Xephy:20090201194209j:image

ん〜何か思いのほか想像以上の物が取れてしまった。

予想するに外部プレーヤーに受け渡すパラメータのスクリプトなのかな・・・?


ソース書き直してちゃんとメタデータも取れた。
ん〜メタデータよりこっちのソースの方が面白い。

[余談]
リファラーを渡さなかった場合

組曲『ニコニコ動画』
申し訳ございませんが、お使いの環境ではご利用になれません。
リファラの送信を許可するか、ニコニコ動画上でご覧ください。

最後まで表示されてなかったのはHTMLタグが含まれていたからだった。
htmlspecialchars()をかませれば全て見れました。

                                                                                                                          • -

2/2追記
冷静に見たら外部プレイヤー埋め込むスクリプトですね。
テンション上がって訳分からなかったw
このまま置いても再生はされません。

動画とXMLファイルをこいつに読み込ませればいけるのかな?

                                                                                                                          • -

20:55追記
これってリファラーが必要なモノにリファラー偽装してアクセスしてるし一応不正アクセスに当たるのかな。

ちょっと自重した方が良さそうかも。