動画をアップロードして再生する
millviのWebAPIを利用し、ログイン、動画アップロード、アップロードした動画のブラウザでの再生までを一通り行う方法について説明します。上から順番に実行することで、APIだけで動画をアップロードしてプレイヤーで視聴できる状態にすることができます。配信者用のWebAPI(VOD API)のその他のAPIについては、VOD APIドキュメントを確認してください。
1. 配信者用のトークンを取得する
配信者用のトークンを取得することで、コンテンツ管理、動画アップロードなどの配信に関わるWebAPIの操作が可能になります。
当APIでは、Bearer Token (OAuth2.0) を採用しています。
リクエスト
curl -v -X POST 'https://api.millvi.com/crm/distributors/auth/token'
-H 'Content-Type: application/json'
-d '{
"grant_type": "password",
"refresh_token": "exampleToken",
"password": "password",
"contractor_id": "contractorid",
"distributor_id": "distributorid"
}'
REQUEST BODY SCHEMA: application/json
- grant_type(required):Enum: "password" "refresh_token"
- refresh_token:リフレッシュトークン
- password:配信者用パスワード
- contractor_id:契約者ID
- distributor_id:配信者ID
レスポンス例(200OK)
{
"distributor_id": "distributorid",
"access_token": "exampleAccessToken",
"access_token_expires_at": "2020-01-01T00:00:00.000000+09:00",
"refresh_token": "exampleRefreshToken",
"refresh_token_expires_at": "2020-01-01T00:00:00.000000+09:00"
}
以降、各APIへのリクエスト時には、当該APIで取得したトークンをヘッダーに設定してください。
2. 動画をアップロードする
millviに動画をアップロードするにはいくつかの段階を踏みます。ここでは大容量ファイル向けのマルチパートアップロードではなく、シンプルな単一アップロードの流れを説明します。
Step.1 一時アップロードURLの取得
millviにアップロードする際に一時的にテンポラリ環境へのアップロードを実施する必要があります。
curl -v -X GET 'https://api.millvi.com/vod/file/upload/tmp'
-H 'Authorization: Bearer {access_token}'
レスポンス例(200OK)
{
"url": "https://xxxx.xxx.xxx",
"key": "tmp:xxxxxxxxx",
"expires_at": "2020-01-01T00:00:00.000000+0900"
}
urlとkeyには有効期限(expires_at)が設定されています。※5分
Step.2 ファイルのアップロード
Step.1で返ってきたurlに対して、アップロードしたい動画ファイルを本文にそのまま指定したPUTリクエストを送ります。追加のヘッダーは不要です。
curl -v -X PUT --upload-file movie.mp4 'https://xxxx.xxx.xxx'
Step.3 コンテンツメタ情報の登録
テンポラリ環境にアップロードされた動画をmillviにメタ情報とともに登録します。upload_infoにはStep.1で取得したkeyと、アップロードしたファイル名を指定します。
curl -v -X POST 'https://api.millvi.com/vod/contents'
-H 'Authorization: Bearer {access_token}'
-H 'Content-Type: application/json'
-d '{
"title": "タイトル",
"description": "説明",
"tag": [
"tag1",
"tag2"
],
"recipe_id": "1",
"public_setting": {
"type": "period",
"start": "2022-03-01 00:00:00+09:00",
"end": "2022-04-01 00:00:00+09:00"
},
"is_password_required": false,
"password": "password",
"upload_info": {
"file_name": "movie.mp4",
"key": "tmp:xxxxxxxxx"
}
}'
大容量ファイルをマルチパートアップロードする場合は、upload_info.is_multipartをtrueにした上でupload_id・partsを指定する必要があります。詳細はVOD APIドキュメントを参照してください。
レスポンス例(200OK)
{
"content_id": "4ba28124-c54g-83d8-9xxb-5324bddbafc9",
"title": "タイトル",
"status": "WAIT_TO_CONVERT",
"created_at": "2022-03-01 00:00:00.000000+09:00",
"updated_at": "2022-04-01 00:00:00.000000+09:00",
"description": "説明",
"origin_file_name": "movie.mp4",
"origin_file_size": 1024,
"public_setting": {
"type": "period",
"start": "2022-03-01T00:00:00.000000+0900",
"end": "2022-04-01T00:00:00.000000+0900"
},
"media_type": "video",
"tag": [
"tag1",
"tag2"
],
"is_password_required": false,
"conversion_rate": 0,
"recipe_id": "1",
"duration": 10
}
登録直後は動画の変換(status)が完了しておらず再生できません。変換が完了する(statusがCONVERT_COMPLETEDになる)まで、次のステップで状態を確認します。
3. アップロードされた動画の情報を取得する
アップロードした動画は、コンテンツ詳細情報取得のWebAPIから確認できます。statusがCONVERT_COMPLETEDになっていることを確認してください(動画の長さに応じて変換に時間がかかります)。
curl -v -X GET 'https://api.millvi.com/vod/contents/{content_id}'
-H 'Authorization: Bearer {access_token}'
レスポンス例(200OK)
{
"content_id": "4ba28124-c54g-83d8-9xxb-5324bddbafc9",
"title": "タイトル",
"status": "CONVERT_COMPLETED",
"created_at": "2022-03-01 00:00:00.000000+09:00",
"updated_at": "2022-04-01 00:00:00.000000+09:00",
"description": "説明",
"origin_file_name": "movie.mp4",
"origin_file_size": 1024,
"public_setting": {
"type": "period",
"start": "2022-03-01T00:00:00.000000+0900",
"end": "2022-04-01T00:00:00.000000+0900"
},
"media_type": "video",
"tag": [
"tag1",
"tag2"
],
"is_password_required": false,
"conversion_rate": 100,
"recipe_id": "1",
"duration": 10
}
4. Embedキーを発行する
コンテンツを視聴するには、プレイヤーの埋め込みコードに必要なEmbedキーを発行します。content_idにはStep.3で確認したコンテンツIDを指定します。
player_idには視聴に使うプレイヤーのIDを指定しますが、以下の標準プレイヤーがあらかじめ用意されているため、クイックスタートでは新規にプレイヤーを作成する必要はありません。
| player_id | player_type | player_name |
|---|---|---|
| 1 | video | デフォルトVIDEOプレイヤー |
| 2 | デフォルトPDFプレイヤー | |
| 3 | audio | デフォルト音声プレイヤー |
curl -v -X POST 'https://api.millvi.com/vod/embedkey'
-H 'Authorization: Bearer {access_token}'
-H 'Content-Type: application/json'
-d '{
"content_id": "4ba28124-c54g-83d8-9xxb-5324bddbafc9",
"player_id": 1
}'
レスポンス例(200OK)
{
"embed_key": "AQICAHgkhJIMl9..."
}
5. プレイヤーで動画を再生する
発行したembed_keyを、millviのプレイヤーライブラリ(player.js)に渡すことで動画を再生できます。以下のHTMLをブラウザで開くと動画が再生されます。
<!DOCTYPE HTML>
<html>
<body>
<div id="player"></div>
<script src="https://cdn.millvi.com/player/player.js"></script>
<script>
const player = new Millvi.MillviPlayer({
containerId: "player",
});
player.setContent({
embedKey: "AQICAHgkhJIMl9...",
});
</script>
</body>
</html>
JavaScriptから再生の制御(再生・一時停止・シークなど)やイベントの監視を行う方法については、プレイヤーAPIで再生を制御するを参照してください。