2007-11-27 phpと外部プログラムを使用してサイトをキャプチャー+α
phpでニコニコ動画のflvファイルをゲットする方法
簡単にfunction化しました。
<?php //get nico flv function get_nicoflv( $id ){ //$id = "sm1580278"; /** * @see http://blog.livedoor.jp/dankogai/archives/50900305.html */ //extension=php_openssl.dll //extension=php_curl.dllをphp.iniにて有効にしておく $mail = 'めーる'; $pwd = 'ぱすわーど'; require_once 'HTTP/Client.php'; $argv[1] = $id; $conf = array('mail' => $mail, 'password' => $pwd); preg_match('/(sm\d+)$/', @$id, $matches); $video_id = $matches[1]; $client = new HTTP_Client(); $client->setDefaultHeader('Keep-Alive', 4); $client->post('https://secure.nicovideo.jp/secure/login?site=niconico', $conf); $res = $client->currentResponse(); $client->get("http://www.nicovideo.jp/watch/{$video_id}"); $client->get("http://www.nicovideo.jp/api/getflv?v={$video_id}"); $res = $client->currentResponse(); parse_str($res['body'], $q); $url = @$q['url'] or die('Failed: ' . $res['body']); $client->get($url); $res = $client->currentResponse(); file_put_contents("./{$video_id}.flv", $res['body']); } ?>
2007-11-21 ニコニコ動画をPHPで検索
ニコニコ動画検索をPHPで
ニコニコ動画の検索APIを見つけたので早速PHPで使えるようにしてみました。
って単なるRSS解析です。
<?php //ニコニコ動画ゲット //検索キーワード $_GET['query'] = "ハルヒ"; //URL作成 $query = urlencode( mb_convert_encoding( $_GET['query'] , "UTF-8" , "SJIS" ) ); $url = "http://zio3.net/nicoRss/Search.ashx?p={$query}"; //XMLとしてファイル取得 $file = file_get_contents( $url ); //XML解析 $xml = simplexml_load_string( $file ); foreach( $xml->channel->item as $key => $val ){ $MAIN .= <<<EOD {$val->title} {$val->description} <hr> EOD; } echo mb_convert_encoding( $MAIN , "SJIS", "UTF-8"); exit; ?>
ちなみにニコニコ動画をダウンロードする方法 by PHP
検索した動画をゲットする方法はこちらが便利です。
http://puchiko.lowtech.ne.jp/?itemid=1071&catid=26
http://blog.livedoor.jp/dankogai/archives/50900305.html
使用してて気をつけるところは、phpの拡張機能をいくつか有効にします。
curl,opensslです。opensslを有効にしてなくてちょいハマッたよ( -.-)ノ
php.iniの中のextentionで上記の二つを有効にしてapacheの再起動でOKです。


















$query = urlencode( mb_convert_encoding( $_GET[’query’] , ”UTF-8” , ”SJIS” ) );
の部分の第3引数を無くすとちゃんと検索結果取得できたんですけど、SJISだと自分の環境だと動かなかったです。
Macだからなのかもしれないですけど。
macですと文字コードがおそらくUTF-8なのでmb_convertの部分はいらないかもです。
また、aomori-ringoさんのようにautoでもOKです。ってこっちのほうがいろんな環境でもOKなのでいいっすね。>情報ありがとう。
詳細はこちら
http://axe1lyze.blogspot.com/2011/09/api.html