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']);
}
?>