VOD API クイックスタートガイド

  • 更新

milviのWebAPIを利用し、ログイン、動画アップロード、アップロードした動画の確認をAPI上で行う方法について説明します。配信者用のWebAPI(VOD API)のその他のAPIについては、VOD APIドキュメントを確認してください。

 

 

配信者用のトークンを取得する


配信者用のトークンを取得することで、コンテンツ管理、動画アップロードなどの配信に関わるWebAPIの操作が可能になります。

当APIでは、Bearer Token (OAuth2.0) を採用しています。

リクエスト

shell

curl -v -X POST 'https://${end_point}/distributors/auth/token'
-H 'Content-Type: application/json'
-d '{
"grant_type": "password",
"refresh_token": "exampleToken",
"password": "password",
"contractor_id": "contractorid",
"distributor_id": "distributorid"
}'

Payload

Content type:application/json

{
"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で取得したトークンをヘッダーに設定してください。

 

動画をアップロードする


millviに動画をアップロードするにはいくつかの段階を踏みます。

Step.1 一時アップロードURLの取得

millviにアップロードする際に一時的にテンポラリ環境へのアップロードを実施する必要があります。

curl -v -X GET 'https://${end_point}/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 ファイルのアップロード

Step1. 一時アップロードURLの取得で返ってきたurlを使ってファイルのアップロードをします。

curl -v -X POST 'https://xxxx.xxx.xxx'

アップロードしたい動画をバイナリーファイルとしてアップロードします。

Step3. コンテンツメタ情報の登録

テンポラリ環境にアップロードされた動画をmillviにメタ情報とともに登録します。

curl -v -X POST 'https://${end_point}/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": "{{アップロードするファイル名.mp4}}",
"key": "tmp:xxxxxxxxx",
"is_multipart": true,
"upload_id": "nl5vrMWgBDUFOa9P",
"parts": [
{
"part_number": 1,
"e_tag": "09b435e72bda3820"
}
]
}
}'

レスポンス例(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": "{{アップロードしたファイル名.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,
"subtitles": [
{
"subtitle_id": "1fb76906-9f13-49fe-a13f-46714d81c250",
"label": "日本語",
"srclang": "ja",
"is_default": false,
"is_enabled": false,
"order": 0,
"status": "PROCESSED",
"created_at": "2022-01-01T00:00:00.000000+0900",
"updated_at": "2022-01-01T00:00:00.000000+0900"
}
],
"chapter": {
"label": "第1章",
"is_enabled": false,
"created_at": "2022-01-01T00:00:00.000000+0900",
"updated_at": "2022-01-01T00:00:00.000000+0900"
},
"pdf_info": {
"image_file_path": "a4f648808d00ce7fdc2ccc7477a66620be490c3/4ba28124-c54g-83d8-9xxb-5324bddbafc9/origin_file",
"total_page_count": 1
}
}

 

アップロードされた動画の情報を取得する


アップロードした動画は、コンテンツ詳細情報取得のWebAPIから確認できます。

curl -v -X GET 'https://${end_point}/contents/{content_id}?thumbnail_url_expires_in_days=1000'
-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": "origin_file.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,
"subtitles": [
{
"subtitle_id": "1fb76906-9f13-49fe-a13f-46714d81c250",
"label": "日本語",
"srclang": "ja",
"is_default": false,
"is_enabled": false,
"order": 0,
"status": "PROCESSED",
"created_at": "2022-01-01T00:00:00.000000+0900",
"updated_at": "2022-01-01T00:00:00.000000+0900"
}
],
"chapter": {
"label": "第1章",
"is_enabled": false,
"created_at": "2022-01-01T00:00:00.000000+0900",
"updated_at": "2022-01-01T00:00:00.000000+0900"
},
"pdf_info": {
"image_file_path": "a4f648808d00ce7fdc2ccc7477a66620be490c3/4ba28124-c54g-83d8-9xxb-5324bddbafc9/origin_file",
"total_page_count": 1,
"thumbnail_url": "https://example.com/a4f648808d00ce7fdc2ccc7477a66620be490c3/4ba28124-c54g-83d8-9xxb-5324bddbafc9/origin_file.0000000.jpg"
},
"thumbnail_info": [
{
"path": "https://example.com/a4f648808d00ce7fdc2ccc7477a66620be490c3/4ba28124-c54g-83d8-9xxb-5324bddbafc9/origin_file.0000000.jpg",
"id": "1",
"is_active": true,
"thumbnail_url": "https://example.com/a4f648808d00ce7fdc2ccc7477a66620be490c3/4ba28124-c54g-83d8-9xxb-5324bddbafc9/origin_file.0000000.jpg"
}
]
}

この記事は役に立ちましたか?

0人中0人がこの記事が役に立ったと言っています