SayMove! マニュアル

動画登録API

動画登録API 通常登録モード

1.概要

対応サイトの動画ページURLを元に、saymoveで動画情報を自動的に解析して、登録が行えるAPIです。

 

2.URLの具体例

urlパラメータに指定する動画ページURLの例:

  • YouTube 
https://www.youtube.com/watch?v=LIlZCmETvsY
  • veoh 
http://www.veoh.com/watch/v102133292wBjjtC4P

3.APIのURL

以下のリクエスト先URLに下記パラメータを付与してPOSTリクエストを投げてください。
認証等の処理はありません。

http://say-move.org/publish_api/add_movie.php

4.パラメータ一覧

必須パラメータ 無いと登録不可能

パラメータ 内容
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

動画登録API 詳細登録モード

1.概要

通常登録モードでは動画ページURLを用いて、動画ファイルURLをSayMove!側で解析しますが、
詳細登録モードではユーザー側で解析した動画ファイルURLを直接指定しての登録等が可能です。

2.APIのURL

リクエスト先URL:

http://say-move.org/publish_api/add_movie.php


リクエスト先URLに下記パラメータを付与してPOSTリクエストを投げてください。
認証等の処理はありません。

3.パラメータ一覧

必須パラメータ 無いと登録不可能

パラメータ 内容
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が含まれます。

{"result":true,"add_comeid":"1493048"}

 

  • 登録エラー時のレスポンス

 登録エラー時には、下記のようなレスポンスが返されます。
err_msgには、JSONエンコードされたエラー内容文字列が含まれます。
この場合は「その動画は既に登録されています。」と記述されています。
err_codeには、エラー内容に応じて割り振られたエラー番号が記述されています。

{"result":false,"err_msg":"\u305d\u306e\u52d5\u753b\u306f\u65e2\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\u3002","err_code":13}

PHPでのサンプルコード

下記が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);
    }
}