ImageFlux Live Streaming APIオプション仕様
目次
- 概要
- 機能一覧
- 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. ログイン認証
システムに登録されたメールアドレス及びパスワードを利用して、システムへの認証を行なう。 認証に成功した際、APIを利用するためのトークンを取得する。
Path
POST /api/login
Request
クエリ名 | 型 | 必須 | 制約 | 例 |
---|---|---|---|---|
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 | ユーザー名 |
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,
}