対応サイトの動画ページURLを元に、saymoveで動画情報を自動的に解析して、登録が行えるAPIです。
urlパラメータに指定する動画ページURLの例:
以下のリクエスト先URLに下記パラメータを付与してPOSTリクエストを投げてください。
認証等の処理はありません。
パラメータ | 型 | 内容 |
---|---|---|
url | string | 登録したい配信元サイトの動画ページのURL (URLエンコード必須) |
password | string | 簡易パスワード |
category | string |
カテゴリ 対応カテゴリ一覧表はこちら |
パラメータ | 型 | 内容 |
---|---|---|
title | string | 動画のタイトル |
パラメータ | 型 | 内容 |
---|---|---|
image_url | string | 画像URL (URLエンコード必須) |
description | string | 説明文 |
seconds | int | 動画の再生秒数 |
is_adult | int | アダルトに登録する場合 1 一般に登録する場合 0 指定しなかった場合は0 |
lang | string | どの言語に登録するか ja tw ko en の4種 指定しなかった場合はja |
通常登録モードでは動画ページURLを用いて、動画ファイルURLをSayMove!側で解析しますが、
詳細登録モードではユーザー側で解析した動画ファイルURLを直接指定しての登録等が可能です。
リクエスト先URL:
リクエスト先URLに下記パラメータを付与してPOSTリクエストを投げてください。
認証等の処理はありません。
パラメータ | 型 | 内容 |
---|---|---|
password | string | 簡易パスワード |
category | string | カテゴリ 対応カテゴリ一覧表はこちら |
title | string | 動画のタイトル |
regist_mode | string | 詳細登録modeにしたい場合 advancedを指定する。 |
パラメータ | 型 | 内容 |
---|---|---|
origin_movie_id | string | 配信元サイトの動画id |
origin_site_domain | string | 配信元サイトのドメイン |
image_url | string | 画像URL |
description | string | 説明文 |
seconds | int | 動画の再生秒数 |
file_url | int | 動画ファイルURL |
is_adult | int | アダルトに登録する場合 1 一般に登録する場合 0 指定しなかった場合は0 |
lang | string | どの言語に登録するか ja tw ko en の4種 指定しなかった場合はja |
APIへのリクエストのレスポンスについては、JSONで結果を返しています。
パラメータ | 型 | 内容 |
---|---|---|
result | boolean | 正常に登録できた場合true 失敗した場合false |
err_code | int | 発生したエラーの種類を表すcode |
err_msg | string | エラー内容についての説明 |
add_comeid | int | 追加したcomeid |
動画登録の成功時には、下記のようなレスポンスが返されます。
add_comeidには、今回の動画登録により追加されたcomeidが含まれます。
登録エラー時には、下記のようなレスポンスが返されます。
err_msgには、JSONエンコードされたエラー内容文字列が含まれます。
この場合は「その動画は既に登録されています。」と記述されています。
err_codeには、エラー内容に応じて割り振られたエラー番号が記述されています。
下記がPHPからAPIにリクエストする際のサンプルコードとなります。
(下記は通常登録モードによる登録を想定しています。)
/**
* Movie Register SayMove! sample code.
* SayMove!に動画ページURLを登録するAPIへの
* リクエスト処理のサンプルコードです。
*/
$SaymoveMovieRegister = new SayMoveMovieRegisterClass();
/*
* パラメータを配列で作成します。
* url:動画ページのURL
* password:動画の編集に必要な簡易パスワード
* title:動画のタイトル
* category:登録したいカテゴリ名の英語表記 ドキュメントの対応表参照
*/
$request_param = array(
'url' => 'http://example.com/',
'password' => 'kupikupi',
'title' => 'hoge',
'category' => 'game'
);
$response = $SaymoveMovieRegister->register($request_param);
var_dump($response);
class SaymoveMovieRegisterClass{
const DOMAIN = 'say-move.org';
const API_PATH = '/publish_api/';
const API_SCRIPT_NAME = 'add_movie.php';
/*
* 動画の登録
* @param array $request_param
* return mixed
*/
public function register($request_param){
$result = $this->request($request_param);
return $this->formatResponse($result);
}
/*
* APIへのリクエスト
* @param array $request_param
* return mixed
*/
private function request($request_param){
$curl = curl_init($this->getApiUrl());
$curl = $this->setCurlOption($curl,$this->buildPostData($request_param));
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
/*
* curlオプションのSET
* @param resource $curl
* @param string $build_param
* return resource
*/
private function setCurlOption($curl,$build_param){
curl_setopt($curl,CURLOPT_POST, TRUE);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$build_param);
return $curl;
}
/*
* POSTリクエスト用に配列を変換
* @param array $request_param
* return string
*/
private function buildPostData($request_param){
return http_build_query($request_param);
}
/*
* API URLの取得
* return string
*/
private function getApiUrl(){
return 'http://'.self::DOMAIN.self::API_PATH.self::API_SCRIPT_NAME;
}
/*
* JSONで返されるレスポンスの整形
* @param array $response
* return mixed
*/
private function formatResponse($response){
return json_decode($response);
}
}