機能概要
本機能は、任意のサイズで分割した動画ファイルを順次アップロードすることができる機能となります。(契約エディション: Business・Expert・Enterpriseエディションのお客様向け)
■アップロードまでの流れ
【利用時の制限事項】
以下の制限事項を必ずお読みいただき、ご理解の上、ご利用ください。
1)アップロード可能なファイル容量は契約内容により制限されます。
(Business :4GB、Expert:8GB、Enterprise:12GB)
※エディションの上限を超える容量のファイルのアップロードをご希望の場合は、弊社担当営業へご相談ください。
2)推奨分割サイズ:100MB~512MB
3)アップロードの有効期限は、「チャンクアップロード開始API」実行時から12時間後までとなります。
4)「チャンクアップロード開始API」で指定できるチャンクファイルの総数には、上限がございます。
(Business :4GB・・・40ファイル、Expert:8GB・・・80ファイル、Enterprise:12GB・・・120ファイル)
5)ファイル名には、以下の制限がございます。
・200文字まで
・ \/ : * ? “ < > の半角記号は使用不可
6)1契約会社ID(1CID)あたりの最大同時接続数は30となります。
制限事項、また補足事項に関しましては、各チャンクアップロードAPI説明ページでもご案内させていただきます。
■チャンクアップロード開始API
分割した動画ファイルを、1つのアップロードファイルとして識別するためのキー情報(チャンクキー)を作成するAPIです。
■APIリンク書式
https://file-platform.stream.co.jp/writeapi/chunk/begin/[アップロードキー]
■プロトコル
https(UTF-8)
(POST or GET)
■引数
項目名 | 必須 | 説明 | デフォルト値 | フォーマット |
chunk_count | ○ | チャンクファイルの総数 | --- | 半角数 |
file_name | ○ | 結合後の動画ファイル名 ※拡張子必須 |
--- | 全角半角、200文字 |
※拡張子を指定しないとトランスコード処理に回った際にエラーとなります。
有効な拡張子 | *.f4v、*.m2ts、*.m2t、*.ts、*.mp4、*.m4v、*.mpg、*.mpeg、*.mov、*.aac、*.m4a |
■レスポンス
・MIME
Content-Type : application/json
・文字コード
UTF-8
項目名 |
JSON要素 |
説明 |
エラーコード |
error_code |
エラーコード |
詳細メッセージ |
message |
エラーメッセージ、受け付け内容 |
チャンクキー |
chunk_key |
チャンクキー(各APIで用いられる識別キー) |
アップロード有効期限 |
upload_expiration_date |
アップロード受け付ける最終日時(yyyy-MM-dd hh:mm:ss) |
■制限事項
・「チャンクアップロード開始API」で指定できるチャンクファイルの総数には、上限がございます。
(Business :4GB・・・40ファイル、Expert:8GB・・・80ファイル、Enterprise:12GB)
・ファイル名には、以下の制限がございます。
200文字まで
\/ : * ? “ < > の半角記号は使用不可
■チャンクアップロードAPI
チャンクファイルのアップロード処理を行うAPIです
■APIリンク書式
https://file-platform.stream.co.jp/writeapi/chunk/upload/[アップロード]
※アップロードキー取得は「認証API」をご参照ください。
■プロトコル
https (UTF-8)
(POST:multipart/form-data)
項目名 | 必須 | 説明 | デフォルト値 | フォーマット |
chunk_key | ○ | チャンクキー(各APIで用いられる識別キー) | --- | 半角 |
chunk_no | ○ | チャンク順を示す番号 | --- | 半角数 |
chunk_file | ○ | チャンクファイル(分割した動画ファイル) | --- |
■レスポンス
・MIME
Content-Type : application/json
・文字コード
UTF-8
項目名 |
JSON要素 |
説明 |
エラーコード |
error_code |
エラーコード |
詳細メッセージ |
message |
エラーメッセージ、受け付け内容 |
アップロードステータス |
status |
アップロード状況(0:受付中/1:完了待ち/2:完了処理中/3:完了) |
■制限事項
・アップロード可能なファイル容量は契約内容により制限されます。(Business :4GB、Expert:8GB、Enterprise:12GB)
※エディションの上限を超える容量のファイルのアップロードをご希望の場合は、弊社担当営業へご相談ください。
・推奨分割サイズ:100MB~512MB
・1契約会社ID(1CID)あたりの最大同時接続数は30となります。
・アップロードの有効期限は、「チャンクアップロード開始API」実行時から12時間後までとなります。
・「チャンクアップロード開始API」で指定したチャンクファイル総数より大きいチャンク順番号を指定した場合、エラーとなります。
・アップロードステータスが以下の場合のみアップロード処理を受け付けます。
①受付中
②完了待ち
■チャンクアップロード状況取得API
アップロード状況を確認するAPIです。
■APIリンク書式
https://file-platform.stream.co.jp/writeapi/chunk/status/[アップロードキー]
※アップロードキー取得は「認証API」をご参照ください。
■プロトコル
https(UTF-8)
(POST or GET)
■引数
項目名 |
必須 |
説明 |
デフォルト値 |
フォーマット |
chunk_key |
○ |
チャンクキー(各APIで用いられる識別キー) |
--- |
半角 |
■レスポンス
・MIME
Content-Type : application/json
・文字コード
UTF-8
項目名 |
JSON要素 |
説明 |
エラーコード |
error_code |
エラーコード |
詳細メッセージ |
message |
エラーメッセージ、受け付け内容 |
アップロードステータス |
status |
アップロード状況(0:受付中/1:完了待ち/2:完了処理中/3:完了) |
アップロード済チャンク順番号 |
done_chunk_no |
アップロードが完了しているチャンク番号(配列で表示します) |
アップロード有効期限 |
upload_expiration_date |
アップロード受け付ける最終日時(yyyy-MM-dd hh:mm:ss) |
■チャンクアップロード完了API
チャンクアップロードを完了し、トランスコード処理への登録を実行するAPIです。
(ファイルの結合処理、メタ情報の登録)
■APIリンク書式
https://file-platform.stream.co.jp/writeapi/chunk/complete/[アップロードキー]
※アップロードキー取得は「認証API」をご参照ください。
■プロトコル
https (UTF-8)
(POST:multipart/form-data)
■引数
項目名 | 必須 | 説明 | デフォルト値 | フォーマット |
chunk_key | ○ | チャンクキー(各APIで用いられる識別キー) | --- | |
file_hash | --- | 分割前のファイルのハッシュ値。指定がある場合、結合後ファイルとの整合性を確認する。 変換アルゴリズム:MD5 |
--- | 半角 |
chunk_count | --- | チャンクファイルの総数 | --- | 半角 |
thumb | --- | サムネイルファイル | 自動サムネイル(50%) | フルパス形式、2MB以下 *.gif; *.jpeg; *.jpg; *.png |
title | --- | タイトル | file_name ※1 | 全角半角、255文字 |
description | --- | 説明文 | 空白 | 全角半角、1000文字 |
keywords | --- | キーワード | 空白 | 全角半角、1000文字 |
copyright | --- | 権利者情報 | 空白 | 全角半角、1000文字 |
copyright_url | --- | 権利者情報に付けるURL | 空白 | URL形式、全角半角、1000文字 |
optional_id | --- | 任意ID | 空白 | 半角英数, -, _ 64桁まで |
publication_date | --- | 公開期限-開始日 | 期限なし | [yyyy-mm-dd] / [yyyy/mm/dd] [yyyy-mm-dd hh:mm] [yyyy/mm/dd hh:mm] |
expiration_date | --- | 公開期限-終了日 | 期限なし | [yyyy-mm-dd] / [yyyy/mm/dd] [yyyy-mm-dd hh:mm] [yyyy/mm/dd hh:mm] |
api_keywords | --- | APIリファレンスコード | 空白 | 全角半角、150文字 |
active_flg | --- | 動画公開フラグ | 1 | [1] / [0] |
security_id | --- | 紐づける視聴制限プロファイルID | 空白 | 半角数 |
use_exlink | --- | 関連ページリンク使用可否 | 使用する | [1] / [0] |
exlink1_txt | --- | 関連ページリンク(1)リンクテキスト | 空白 | 全角半角、100文字 |
exlink1_url | --- | 関連ページリンク(1)リンクURL | 空白 | URL形式、全角半角、1000文字 |
exlink2_txt | --- | 関連ページリンク(2)リンクテキスト | 空白 | 全角半角、100文字 |
exlink2_url | --- | 関連ページリンク(2)リンクURL | 空白 | URL形式、全角半角、1000文字 |
exlink3_txt | --- | 関連ページリンク(3)リンクテキスト | 空白 | 全角半角、100文字 |
exlink3_url | --- | 関連ページリンク(3)リンクURL | 空白 | URL形式、全角半角、1000文字 |
custom_metadata1 | --- | カスタムメタデータの値(1) | 空白 | 全角半角、5000文字 |
custom_metadata2 | --- | カスタムメタデータの値(2) | 空白 | 全角半角、5000文字 |
custom_metadata3 | --- | カスタムメタデータの値(3) | 空白 | 全角半角、5000文字 |
custom_metadata4 | --- | カスタムメタデータの値(4) | 空白 | 全角半角、5000文字 |
custom_metadata5 | --- | カスタムメタデータの値(5) | 空白 | 全角半角、5000文字 |
callback※1 | --- | トランスコード完了時に通知されるCallbackのURL | 空白 | 全角半角、5000文字 |
callback_failure※2 | --- | 分割アップロード失敗時に通知されるCallbackのURL | 空白 | 全角半角、5000文字 |
mail_to※3 | --- | メールアドレス(トランスコード完了時) | --- | メールアドレス形式、半角、255文字 |
mail_subject | --- | メール件名(トランスコード完了時) | トランスコード終了 | 全角半角、255文字 |
mail_body | --- | メール本文(トランスコード完了時) | トランスコード処理が完了しました。 mid:%eqMailMid% error:%eqErrorCode% |
全角半角、1000文字 ※以下の4項目は、パラメータを記載することで取得可能 ・動画ID:%eqMailMid% ・エラーコード:%eqErrorCode% ・URL:%movie_permalink% ・タイトル:%title% |
mail_contenttype | --- | コンテンツタイプ(トランスコード完了時、チャンクアップロードエラー時共通) | text/plain; charset=\"utf-8\" | 半角、255文字 |
mail_to_failure※4 | --- | メールアドレス (チャンクアップロードエラー時) |
--- | メールアドレス形式、半角、255文字 |
mail_subject_failure | --- | メール件名(チャンクアップロードエラー時) | チャンク完了処理エラー | 全角半角、255文字 |
mail_body_failure | --- | メール本文(チャンクアップロードエラー時) | チャンク完了処理が失敗しました。 chunk_key:%eqChunkKey% error:%eqErrorCode% |
全角半角、1000文字 |
transcode_id | --- | 紐付けるトランスコード設定ID | 1 | 半角数 |
redirect_success※5 | --- | 成功時にリダイレクトするURL | --- | URL形式、半角、255文字 |
redirect_failure | --- | 失敗時にリダイレクトするURL | --- | URL形式、半角、255文字 |
user_id | --- | ユーザーID | --- | 半角数 |
playlist_id | --- | プレイリストID | --- | 半角数 |
group_id | --- | 管理グループID | --- | 半角数 |
meta_template_id | --- | メタデータテンプレートID | 半角数 |
※1.『callback』を指定した場合のみ、完了通知が行われます。
※2.『callback_failure』を指定した場合のみ、エラー終了通知が行われます。
なお、タイムアウト等、HTTPリクエストのエラーが発生した場合、リトライは1度のみとなりますので、それ以降は、callback通知失敗となります。タイムアウトとリトライの間隔は15秒です。
※3. 『mail_to』を指定した場合のみ、任意のメールアドレスに完了通知が送信されます。
※4. 『mail_to_failure』を指定した場合のみ、 「mail_subject_failure」及び「mail_body_failure」の内容が任意のメールアドレスに送信されます。
メールアドレスを複数設定する場合は、セミコロンで区切ってください。
メールアドレスが指定されていない場合、管理画面のユーザ操作ログにエラーログが表示されます。
※5. 『redirect_success』を指定した場合、チャンクアップロード完了処理失敗においては、成功時のリダイレクトURLにてリダイレクトの処理が行われます。
※6.タイムアウトの時間は180分です。
■制限・補足事項
・アップロード済のチャンクファイル数が以下のいずれかと一致していない場合、
エラーとなります。
①「チャンクアップロード開始API」で指定したチャンクファイル総数
②「チャンクアップロード完了API」で再指定したチャンクファイル総数
・アップロード済のチャンクファイルに欠番がある場合もエラーとなります。
・アップロードステータスが以下の場合のみアップロード処理を受け付けます。
①受付中
②完了待ち
■レスポンス
・MIME
Content-Type : application/json
・文字コード
UTF-8
項目名 |
JSON要素 |
説明 |
エラーコード |
error_code |
エラーコード |
詳細メッセージ |
message |
エラーメッセージ、受け付け内容 |
動画ID |
mid |
動画ID |
再生速度設定 |
play_speed |
生成される動画の再生速度(0.5-2.0倍で表示します) |
トランスコードID |
transcode_id |
引数のトランスコードID[transcode_id]を指定した場合のみ出力 |
■レスポンスサンプル例
[transcode_id]が指定されていない場合
{"error_code":0,"message":"transcode processing","mid":1}
|
[transcode_id]が指定した場合
{ |
■エラーコード
エラーコードのメッセージとエラー内容を記載します。
エラーコード |
メッセージ |
説明 |
9011 |
simultaneous connection restrictions |
同時接続過多 |
9012 |
upload limit |
アップロード数制限 |
9013 |
upload error limit |
アップロードエラー制限超過 |
9014 |
upload total limit |
動画登録本数制限エラー |
9016 |
upload file not exists or file size over |
アップロードファイルが不明 |
9021 |
(エラー項目) |
パラメータエラー |
9022 |
uncorresponded |
未対応コンテンツ |
9201 |
chunk upload limit |
分割ファイル数制限 |
9202 |
chunk file size over |
分割動画ファイルサイズ過多 |
9203 |
wrong file number |
指定ファイル番号が不正 |
9204 |
combined file size over |
結合後の動画ファイルサイズ過多 |
9205 |
chunk upload request limit |
チャンクアップロード実行回数制限 |
9206 |
expired chunk upload key |
アップロードキー有効期限切れ |
9207 |
already upload |
アップロード完了済 |
9208 |
file hash mismatch |
結合後のファイルハッシュが不一致 |
9209 |
unknown chunk key |
対象のチャンクキーが存在しない(不正なチャンクキー) |
9210 |
same chunk file now uploading |
同一のチャンクアップロードファイルがアップロード中 |
9211 |
chunk file missing |
チャンクアップロードファイルが不足している |
9503 |
unknown |
未登録、削除済み |
■各サンプルコード、コマンド
ファイルの分割(Unix系)
splitコマンドによって分割する
例) 100Mバイトで分割
$ split -d -b -a 3 100M [入力ファイル名] [出力ファイル名]. |
ファイルの分割(Windows系)
解凍・圧縮のフリーソフト”Lhaz”を使用してファイル分割を行う
Unixコマンドを実行できる環境を整え、上記splitコマンドを実行する。
例)UNIX系OSの環境を再現するソフトウェアパッケージ ・Cygwin |
サンプル(Linuxコマンド)
[vagrant@mite file]$ ls |
■分割ファイルを作る際の注意点
分割したファイル名が順番通りになるよう添え字表記にしてください。
※ファイルの送信は、番号順となりますので、分割ファイルの送信順が分かるようにしておくとよいでしょう。
例)File_name.拡張子.添え字
PHPサンプルプログラム(チャンクアップロードAPI実行プログラム)
<?php // 動画分割アップロードAPI // 認証API define("CHUNKFileDIR","/home/httpd/xxxxxxx/_aaaaa/file/split");//分割ファイル格納場所(お客様任意の場所) //アップロードキー取得 $upkey = GetUpkey(API, $postfields); //ファイル一覧取得 } ); echo date("Y/m/d H:i:s");
// 通信パラメーター設定 // 認証APIを呼び出してアップロードキーを取得 // エラー情報取得 // 通信をクローズ // 処理結果をコンソールに表示 function PostCurl($url, $postfields, $upkey){ // エラー情報取得 // 通信をクローズ // 処理結果をコンソールに表示 return $result; |