ImageFlux Live Streaming APIオプション ドキュメント

ImageFlux Live Streaming APIオプション仕様

目次

  1. 概要
  2. 機能一覧
  3. API仕様

概要

このドキュメントは、ImageFlux Live Streaming APIオプションの仕様を記述します。

機能一覧

機能名 機能概要
認証 配信ユーザーにより、システムに登録されたユーザーのみ、認証を行うことができる。
ユーザー管理 配信ユーザー, 視聴ユーザーの管理を行うことができる。
配信スケジュール管理 配信ユーザーは、配信のスケジュール管理, チャンネル作成を行うことができる
配信 配信ユーザーは、配信を行うことができる
視聴 視聴ユーザーは、視聴を行うことができる
チャット 配信ユーザーと視聴ユーザーがチャットを行うことをできる

API仕様

  • APIのURLは https://opt.imageflux.jp/ です。
  • リクエスト毎のメソッド, パス, パラメータは各項目に記述します。
  • リクエストのデータタイプは application/json とします。
  • ログイン認証API以外のAPIをリクエストする際は、ログイン認証APIで使用したトークンを Authorization ヘッダに指定して使用してください。
  • 下記にcURLで送信する場合のサンプルを記述します。
curl --request POST \
  --url https://opt.imageflux.jp/api/example \
  --header 'Authorization: Bearer API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{"key": "value"}'

日付のフォーマットについて

Datetimeのフォーマットについては、下記のような形式とします。

2021-11-20 10:00:00

API一覧

  1. ログイン認証
  2. 配信スケジュール取得
  3. 配信スケジュール登録
  4. 配信スケジュール編集
  5. 配信スケジュール削除
  6. 配信情報取得
  7. 視聴情報取得
  8. ユーザー一覧取得
  9. ユーザー情報登録
  10. ユーザー情報編集
  11. ユーザー情報削除
  12. パスワード変更
  13. アクセスコード変更
  14. チャット取得
  15. チャット送信

1. ログイン認証

システムに登録されたメールアドレス及びパスワードを利用して、システムへの認証を行なう。 認証に成功した際、APIを利用するためのトークンを取得する。

Path

POST /api/login

Request

クエリ名 必須 制約
email string email形式 imageflux@example.com
password string n < 8 Password123
access_code string - 0987654321

Response

{
    "token" => xxxxxxxxx,
    "expires_at" => "2021/10/10 20:00:00"
}

2. 配信スケジュール取得

使用されたトークンのシステムに登録されたスケジュールの一覧を取得する。

Path

GET /api/schedule

Response

[
    {
        "schedule_id": "76543210-abcd-1234-efgh-1234abcd",
        "name": "スケジュール名1",
        "start_datetime": "2021-11-19T12:00:00",
        "end_datetime": "2021-11-20T12:00:00",
        "created_datetime": "2021-11-15T12:20:00",
        "created_user_name": "user_name"
    },
    {
        "schedule_id": "01234567-abcd-1234-efgh-abcd1234",
        "name": "スケジュール名2",
        "start_datetime": "2021-11-16T12:00:00",
        "end_datetime": "2021-11-17T12:00:00",
        "created_datetime": "2021-11-15T12:15:00",
        "created_user_name": "user_name"
    }
]

3. 配信スケジュール登録

使用されたトークンのシステムに、新規のスケジュールを登録を行なう。 ただし、スケジュールの時間帯が重複する場合は登録に失敗する。

Path

POST /api/schedule

Request

クエリ名 必須 制約
start_datetime datetime Y/m/d H:i:s 2021/10/30 12:00:00
end_datetime datetime Y/m/d H:i:s, start_datetime < n 2021/10/30 15:00:00
name string 0 < n <= 30 テスト配信
imageflux_params json ※別表参照 ※別表参照
imageflux_params

ImageFlux Live Streaming APIの配信パラメータ定義内 "hls" の設定と同様となります。
ドキュメントを参照して下記の様な形式のjson形式でリクエストしてください。

[
    {
        "durationSeconds": 1,
        "startTimeOffset": -2,
        "video": {
            "width": 640,
            "height": 480,
            "fps": 12,
            "bps": 2465792
        },
        "audio": {
            "bps": 64000
        }
    }
],

Response

{
    "schedule_id" => "01234567-abcd-1234-efgh-abcd1234"
}

4. 配信スケジュール編集

使用されたトークンのシステムに登録されている、指定したスケジュールの編集を行なう。

Path

PATCH /api/schedule

Request

クエリ名 必須 制約
schedule_id string - 1234abcd-1234-abcd-5678-1234abcd5678
start_datetime datetime Y/m/d H:i:s 2021/10/30 12:00:00
end_datetime datetime Y/m/d H:i:s, start_datetime < n 2021/10/30 15:00:00
name string 0 < n <= 30 テスト配信

Response

{
    "ok" => true
}

5. 配信スケジュール削除

使用されたトークンのシステムに登録されている、指定したスケジュールの削除を行なう。 ただし、配信開始時間以降のスケジュールの削除は行えない。

Path

DELETE /api/schedule

Request

クエリ名 必須 制約
schedule_id string - 1234abcd-1234-abcd-5678-1234abcd5678

Response

{
    "ok" => true
}

6. 配信情報取得

指定したスケジュールにおいて、配信を行なうにあたって必要な情報を取得する。

Path

GET /api/delivery

Request

クエリ名 必須 制約
schedule_id string - 1234abcd-1234-abcd-5678-1234abcd5678

Response

{
    "channel_id" => "xxxxxxx",
    "sora_url" => "wss://xxxxx.imageflux.jp/xxxxx",
}

7. 視聴情報取得

指定したスケジュールにおいて、視聴を行なうにあたって必要な情報を取得する。

Path

GET /api/view

Request

クエリ名 必須 制約
schedule_id string - 1234abcd-1234-abcd-5678-1234abcd5678

Response

{
    "playlist_url" => 'https://xxx.imageflux.jp/xxxxx.m3u8'
}

8. ユーザー一覧取得

使用されたトークンのシステムに登録されている、ユーザーの一覧を取得する。

Path

GET /api/user

Response

[
    {
        "user_id": 1,
        "name": "name",
        "email": "name@example.jp",
        "is_master": true,
        "created_datetime": "2021-11-01 12:00:00",
        "permissions": {
            "delivery": 1,
            "view": 1,
            "schedule": 1,
            "user": 1
        }
    },
    {
        "user_id": 11,
        "name": "test",
        "email": "test@example.jp",
        "is_master": false,
        "created_datetime": "2021-11-01 13:00:00",
        "permissions": {
            "delivery": 1,
            "view": 1,
            "schedule": 0,
            "user": 0
        }
    }
]

9. ユーザー情報登録

使用されたトークンのシステムに、ユーザーの登録を行なう。

Path

POST /api/user

Request

クエリ名 必須 制約
name string 0 < n <= 30 ユーザー名
email string email形式 imageflux@example.com
password string n < 8 Password123
delivery boolean boolean true
view boolean boolean true
schedule boolean boolean true
user boolean boolean true

ユーザー権限と対応するパラメータは下記の通りとなります。

クエリ名 対応権限
delivery 配信権限
view 視聴権限
schedule スケジュール管理権限
user ユーザー管理権限

Response

{
    "ok" => true,
    "user_id" => 10
}

10. ユーザー情報編集

使用されたトークンのシステムに登録されている、指定したユーザー情報の編集を行なう。

Path

PATCH /api/user

Request

クエリ名 必須 制約
user_id integer - 15
name string - 0 < n <= 30 ユーザー名
password string - n < 8 Password123
delivery boolean - boolean true
view boolean - boolean true
schedule boolean - boolean true
user boolean - boolean true

ユーザー権限と対応するパラメータは下記の通りとなります。

クエリ名 対応権限
delivery 配信権限
view 視聴権限
schedule スケジュール管理権限
user ユーザー管理権限

Response

{
    "ok" => true,
}

11. ユーザー情報削除

使用されたトークンのシステムに登録されている、指定したユーザー情報の削除を行なう。

Path

DELETE /api/user

Request

クエリ名 必須 制約
user_id integer - 15

Response

{
    "ok" => true,
}

12. パスワード変更

認証しているユーザーのパスワードの変更を行う。

Path

PATCH /api/password

Request

クエリ名 必須 制約
password string - n < 8 Password123

Response

{
    "ok" => true,
}

13. アクセスコード変更

使用されたトークンのシステムに紐づく、アクセスコードの変更を行う。
※ ユーザーが認証をする際のアクセスコードも変更されるため、注意をしてください。

Path

PATCH /api/access-code

Request

クエリ名 必須 制約
access_code string - 0987654321

Response

{
    "ok" => true,
}

14. チャット取得

指定したスケジュールに対して送信されたチャットの内容一覧を取得する。

Path

GET /api/chat

Request

クエリ名 必須 制約
schedule_id string - 1234abcd-1234-abcd-5678-1234abcd5678

Response

{
    "ok" => true,
}

15. チャット送信

指定したスケジュールに対して、チャットメッセージの送信を行う。

Path

POST /api/chat

Request

クエリ名 必須 制約
schedule_id string - 1234abcd-1234-abcd-5678-1234abcd5678
body string 0 < n <= 50 テキストメッセージ

Response

{
    "ok" => true,
}