MOVIE CASTER APIと格闘してみる
使い方とか利用法とか導入方法が、Web上にあまりに情報がない・・・
MOVIE CASTER API
http://api.moviecaster.net/
MOVIE CASTER API自体を見つけるのはたやすいのだが
じゃーどうやって使えばいいの?ってなった時にさー困った。
そんなマッシュアップとかapi使って何かやる系はさっぱりです(*´Д`*)
会社の人がなんかテストしてて出来てるっぽいのですが、丸ごと使っても自分の力にならんので、
まーある程度自力でも出来たいなということでWeb上で探してます。
で、必死に探して出てきたのがコチラのサイト様
ぽりぴぃすらいと - MOVIE CASTER API
http://d.hatena.ne.jp/muddydixon/20061024
ムービーキャスだ: ムービーキャスターAPI
http://moviecasda.bmail.cc/archives/2006/08/api_1.html
前者の方の手法が会社の人が作ったやつと似ているなー
そんな感じでレッツトライ!!
1.まずはファイルのアップロードです
HTML部分のソースから(PHPが動く環境ならどこでもいけるハズ。PEARは使うけど)
<form enctype="multipart/form-data" action="Conversion.php" method="POST"> <!--<input type="hidden" name="MAX_FILE_SIZE" value="30000" /> --> 送信ファイル選択: <input name="userfile" type="file" size="50" /> <input type="submit" value="送信" /> </form>
コメントの部分はまー取りあえず残しておきました^^;
2.PHP部分(動画の変換処理)
PEARでソケット通信というものを使ってデータのやり取りをするので、以下URLの通りの作業が必要
Pukiwiki研究/トライアル/PEAR::HTTP_Request
<?php define('PEAR_PATH','/usr/home/test/******/study/php/lib/PEAR/'); ini_set('include_path', PEAR_PATH . ini_get('include_path')); include('HTTP/Request.php'); //エラーチェック switch($_FILES['userfile']['error']){ case 1: exit("php.ini の upload_max_filesize ディレクティブの値を超えています。"); case 2: exit("HTML フォームで指定された MAX_FILE_SIZE を超えています。"); case 3: exit("一部のみしかアップロードされていません。"); case 4: exit("ファイルはアップロードされませんでした。PHP 4.3.10 と PHP 5.0.3で導入"); case 5: exit("テンポラリフォルダがありません。"); case 6: exit("ディスクへの書き込みに失敗しました。PHP 5.1.0 で導入。"); } //ファイルがしっかりアップロードされているか if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { echo "ファイルをアップしました<br>"; } else { echo "_| ̄|●ダメポ<br>"; } //テンポラリにあるファイルを変数に保存(base64にエンコードしつつ) $fp = fopen($_FILES['userfile']['tmp_name'], "r"); base64_encode($str); //stream_filter_append($fp, 'convert.base64-encode'); このやり方はphp5じゃないとダメっぽい $data = fread($fp, filesize($_FILES['userfile']['tmp_name'])); $data = base64_encode($data); $name = urlencode($_FILES['userfile']['tmp_name']); fclose($fp); $today = date("YmdHis"); $api_key = 'APIキーを入れる'; $user_id = 'ユーザIDを入れる'; $key = md5($today.$api_key).$today.$user_id; // ソケットを開き、送信形式を指定し、データを送信する $req = &new HTTP_Request("http://api.moviecaster.net/api.php"); // メソッドをPOSTにする。 $req->setMethod(HTTP_REQUEST_METHOD_POST); // データを設定 $req->addPostData('key', $key); $req->addPostData('name', $name); $req->addPostData('data', $data); // 送信 $req->sendRequest(); // 結果を受け取る $response = $req->getResponseBody(); if (!PEAR::isError($req->sendRequest())) { $response = $req->getResponseBody(); }else { print "pear error"; } //レスポンスは\t(タブ)で帰ってくるらしい $response_list = explode("\t", $response); switch($response_list[0]){ case 0: break; case 90: exit('認証キーが必要です。'); case 91: exit('認証エラーです。'); case 92: exit('引数が正しくありません。'); case 93: exit('md5が食い違っています。'); case 99: exit('システム側でなんらかの異常が発生しました。'); } print <<< HTML_RESULT_END <table border="1" cellpadding="3"> <tr> <th>EROOR</th> <td>$response_list[0]</td> </tr> <tr> <th>MOVIE ID</th> <td>$response_list[1]</td> </tr> <tr> <th>Objectタグ</th> <td>$response_list[2]</td> </tr> <tr> <th>JavaScriptタグ</th> <td>$response_list[3]</td> </tr> <tr> <th>samneil_URI</th> <td>$response_list[4]</td> </tr> <tr> <th>FLV_FILE_SIZE</th> <td>$response_list[5]</td> </tr> <tr> <th>FLV URI</th> <td>???</td><!-- なんか出てこなかった??なんでかなー --> </tr> <tr> <th>timeよ</th> <td>$response_list[6]</td> </tr> </table> HTML_RESULT_END; ?>
あとは
- リスト表示
- データ削除
がありますが、投稿ができたならば同じ要領で出来るでしょう!!