チャンネルAPI

基本動作

チャンネルの詳細情報を取得する

GET https://api.ustream.tv/channels/CHANNEL_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

"channel" 要素の中に、各キーの値が構造化されて入っています。例:

	    "channel": {
	    "id": "1111",
	    "title": "Channel title",
	    "description": "Description of channel",
	    "tags": [
	        "tag1",
	        "tag2"
	    ],
	    "url": "channel-title",
	    "status": "offair",
	    "last_broadcast_at": 1400000000,
	    "tinyurl": "http://ustre.am/asdasd1",
	    "stats": {
	        "viewer_total": 10000000,
	        "viewer": 1000
	    },
	    "thumbnail": {
	        "live": "https://ustvstaticcdn1-a.akamaihd.net/images/defaults/channel_192x108:1.png"
	    },
	    "owner": {
	        "id": "1234",
	        "username": "api-user",
	        "picture": "https://ustvstaticcdn1-a.akamaihd.net/images/defaults/user_48x48:1.png"
	    }
		}
		
	

各値の説明:

キー タイプ 説明
url string チャンネルのURL名
status string "live" か "offair"のいずれかが入ります。
last_broadcast_at int 最後に放送された時間(UNIXのタイムスタンプ形式)
stats.viewer_total int のべ視聴者数
stats.viewer int チャンネルが放送中の場合、現在の視聴者数
エラーコード
エラー値 HTTPレスポンスコード エラー状態
not_found 404 Not Found 指定されたチャンネルは存在しません。
unauthorized 401 Unauthorized このチャンネルはロックされています。


チャンネルを作成する

ログイン中のアカウントで新しいチャンネルを作成します。

必須条件

この処理では、チャンネルの作成を初期化するためにアクセストークンを取得しておかなければなりません。 トークンを取得するには、クライアントソフトは認証サーバに要求しなければなりません。

クライアントソフトは、スコープの値を"offline"に設定することで有効期限なしのトークンを取得することができます。 "offline"スコープを使えば、トークンが期限切れになることはありません。

Example initialization of a web-server token-acquiring flow:

https://www.ustream.tv/oauth2/authorize?response_type=code&client_id=A...Z&redirect_uri=http://...

Example initialization of an implicit token-acquiring flow:

https://www.ustream.tv/oauth2/authorize?response_type=token&client_id=A...Z&redirect_uri=http://...

他の例も参照してください

チャンネルの作成

POST https://api.ustream.tv/users/self/channels.json
各種パラメータ
パラメータ タイプ 重要度 説明
title string REQUIRED このタイトルでチャンネルを作成します。
description string OPTIONAL この説明文でチャンネルを作成します。

The body of the call should contain the channel title optionally it can contain channel description and tags.HTTPリクエストのContent-Typeにはapplication/x-www-form-urlencodedと設定するようにしてください。

例:


POST users/self/channels.json HTTP/1.1
Host: api.ustream.tv
Authorization: Bearer 3c2573673b782f6544405a22636f3d5d3b6f3950
Content-Type: application/x-www-form-urlencoded

title=API+Testing+Channel
	

上記で使用しているトークンはあくまで例として記載しているものなので、便宜書き換えてください。

成功した場合のサーバからの応答
{
    "channel": {
        "id":"13091307",
        "title":"Whatever Test 1234",
        "url":"whatever-test-1234",
        "tiny_url":"http://ustre.am/SVE7"
    }
}
失敗した場合に想定されるサーバからの応答
  • 401 Unauthorized: 指定したトークンは存在しないか、無効になっているか、期限切れか、不正な形式です。
  • 409 Conflict: 指定したチャンネルのタイトル、もしくはURLは既に使用されています。
  • 400 Bad Request: 指定したチャンネルタイトルは無効です。
  • 503 Service Unavailable: サーバ側で一時的なエラーが発生していたため、リクエストを処理できませんでした。


チャンネルの詳細情報を編集する

チャンネルのタイトルや説明文、タグの編集

PUT https://api.ustream.tv/channels/CHANNEL_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
title string REQUIRED チャンネルのタイトル
description string OPTIONAL チャンネルの説明文
tags string OPTIONAL 区切り文字にはコンマを使います。
サーバからの応答

成功すると、中身はないHTTPステータス24の応答が返ってきます。

エラーコード
エラー値 HTTPレスポンスコード エラー状態
lack_of_ownership 403 Forbidden このユーザーは指定したチャンネルの編集権がありません。
input_validation_error 400 Bad request 指定した形式の整合性を検証した結果、エラーがありました。
not_found 404 Not found 指定したチャンネルが見つかりませんでした。


チャンネルを削除する

ログイン中のアカウントから、チャンネルを永久削除します。

DELETE https://api.ustream.tv/channels/CHANNEL_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功すると、HTTPステータス200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
lack_of_ownership 403 Forbidden 指定したチャンネルはこのユーザーのものではありません。
not_found 404 Not Found 指定したチャンネルは存在しません。


このユーザーのチャンネルを一覧表示する

配信状況やサムネイル、mobile 、配信URLを含む、このユーザーのチャンネルの詳細な一覧を取得します。

GET https://api.ustream.tv/users/self/channels.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
p integer OPTIONAL 要求するページ番号 (既定では1)
pagesize integer OPTIONAL 要求するページサイズ (既定では100)
サーバからの応答

"channels" 要素の中に、各キーの値が構造化されて入っています。 これらは以下の情報を保持しています。:

キー タイプ 説明
id string チャンネルの識別番号
title string チャンネルのタイトル
url string チャンネルの未短縮URL (http://www.ustream.tv/channel/ ...)
tiny_url string チャンネルの短縮URL (http://ustre.am/ ...) - ツイッターやフェイスブックで共有するために最適化されたもの
status string "online" か "offline"のいずれかの値が入ります。 "online"はこの放送がUstreamで視聴可能であることは意味します。
broadcast_urls array of string Array of RTMP URLs (strings) where the client can broadcast. Client should fall-back to the second/third one if it provided and the previous element seems failing. Provided only in case of client explicitly asks for with a "broadcaster" detail_level query parameter.
default boolean, optional これがユーザーの既定チャンネルだった場合はTrueとなります。既定のチャンネルではない場合は、Falseとなるかもしくは何も値が入りません。
live_thumbnail string "online"状態のチャンネルの一覧

ページング情報は"paging"要素の中に格納されています。以下、例:


"paging": {
  "previous": {
    "href": "https://api.ustream.tv/users/self/channels.json?pagesize=PAGESIZE&p=PREVIOUS_PAGE"
  },
  "actual": {
    "href": "https://api.ustream.tv/users/self/channels.json?pagesize=PAGESIZE&p=PAGE"
  },
  "next": {
    "href": "https://api.ustream.tv/users/self/channels.json?pagesize=PAGESIZE&p=NEXT_PAGE"
  }
}


セキュリティ

パスワード保護

パスワード保護が有効になっていると、視聴者はパスワードを入力しなければ放送を見ることができません。この機能は、現在iOSとAndroidのアプリでは使用できません。

GET, PUT, DELETE https://api.ustream.tv/channels/CHANNEL_ID/locks/password.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
サポートしている HTTP メソッド:
HTTP メソッド 説明
GET パスワード保護の状態を取得します。
PUT チャンネルにパスワードを設定し、パスワード保護を有効にします。
DELETE チャンネルに設定されたパスワードを削除し、パスワード保護を無効にします。
各種パラメータ

GET と DELETE には設定が必要なパラメータはありません。
以下はPUTで使うパラメータです:

パラメータ タイプ 重要度 説明
password string REQUIRED チャンネルに新しく設定するパスワード
サーバからの応答

DELETE と PUT は空の応答が返ってきます。
以下はGETを実行した際の戻り値です。:

キー タイプ 説明
enabled boolean パスワード保護の状態
エラーコード
エラー値 HTTPレスポンスコード エラー状態
lack_of_ownership 403 Forbidden 指定されたチャンネルはこのユーザーのものではありません。
not_found 404 Not Found 指定されたチャンネルは存在しません。


第三者認証

Ustreamの映像コンテンツ(ライブ配信や録画映像)を視聴するための第三者認証を使用します。 技術的には、あなたのサービスとUstreamのインフラとの間でハンドシェイクが行われます。

ベーシック 認証

PUT https://api.ustream.tv/channels/CHANNEL_ID/locks/hash/basic.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
url string REQUIRED サードパーティのURL
secret string REQUIRED 秘密キー
サーバからの応答

このチャンネルへの新たなハッシュの割り当てが成功した場合、HTTP ステータス 201の応答が返ってきます。
このチャンネルの既存ハッシュをアップデートするのに成功した場合、中身のないHTTP ステータス 204の応答が返ってきます。

専用エラーコード
エラー値 HTTPレスポンスコード エラー状態
invalid_request 400 Bad Request 必須パラメータが1つ以上抜けているか、このユーザはハッシュにアクセスすることができません。
invalid_type 400 Bad Request 指定したタイプが無効か、サポートされていません。

アドバンスド認証

PUT https://api.ustream.tv/channels/CHANNEL_ID/locks/hash/advanced.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
url string REQUIRED サードパーティのURL
secret string REQUIRED 秘密キー
message string REQUIRED 表示するメッセージ
button_caption string REQUIRED ボタンに表示する文字
popup_width int REQUIRED ポップアップの幅
popup_height string REQUIRED ポップアップの高さ
サーバからの応答

このチャンネルへの新たなハッシュの割り当てが成功した場合、HTTP ステータス 201の応答が返ってきます。
このチャンネルの既存ハッシュをアップデートするのに成功した場合、中身のないHTTP ステータス 204の応答が返ってきます。

専用エラーコード
エラー値 HTTPレスポンスコード エラー状態
invalid_request 400 Bad Request 必須パラメータが1つ以上抜けているか、このユーザはハッシュにアクセスすることができません。
invalid_type 400 Bad Request 指定したタイプが無効か、サポートされていません。

認証を削除する

DELETE https://api.ustream.tv/channels/CHANNEL_ID/locks/hash.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、HTTP ステータス 200 OKの応答が返ってきます。



埋め込みの制限

既定では、Ustreamの全てのチャンネルは、世界中どこからでもインターネット経由で埋め込み表示をすることができます。 埋め込みURLを制限することで、一般の視聴を制御してあなたの優先すべきパートナーに限定して映像を配信することができます。

埋め込みの制限状態を取得する

GET https://api.ustream.tv/channels/CHANNEL_ID/locks/embed.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、HTTP ステータス 200 の応答が返ってきます。

キー タイプ 説明
locked string 埋め込み制限がされている場合は TRUE 、そうでない場合はFALSEが入ります。
エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment Required このユーザは埋め込み制限に関する権限を持っていません。

埋め込み制限を編集する

PUT https://api.ustream.tv/channels/CHANNEL_ID/locks/embed.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
locked string REQUIRED パラメータにlocked==TRUEと設定した場合は埋め込み制限が有効になり、locked==FALSEと設定した場合は埋め込み制限が解除されます。
サーバからの応答

成功した場合、中身のないHTTP ステータス 204の応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment Required このユーザは埋め込み制限に関する権限を持っていません。
invalid_request 400 Bad Request 必須パラメータが指定されていないか、無効な値です。

埋め込み制限の除外対象URLを取得する

GET https://api.ustream.tv/channels/CHANNEL_ID/locks/embed/allowed-urls.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、HTTP ステータス 200の応答が返ってきます。

キー タイプ 説明
allowed_urls array 埋め込み制限の除外対象URLの一覧全てが、戻り値として返ってきます。 埋め込み制限が有効になっていない場合は空の値が返ってきます。
エラーコード
エラー値 HTTPレスポンスコード エラー状態
invalid_request 402 Payment Required このユーザは埋め込み制限に関する権限を持っていません。

埋め込み制限の除外対象URLを追加する

POST https://api.ustream.tv/channels/CHANNEL_ID/locks/embed/allowed-urls.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
url string REQUIRED このURLを除外対象URLに追加します。

一回のAPI実行につき1つのURLのみ追加できます。

サーバからの応答

成功した場合、HTTP ステータス 201の応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment Required このユーザは埋め込み制限に関する権限を持っていません。
invalid_request 400 Bad Request 必須パラメータが指定されていないか、無効な値です。

埋め込み制限の除外対象URLを全て削除する

DELETE https://api.ustream.tv/channels/CHANNEL_ID/locks/embed/allowed-urls.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment Required このユーザは埋め込み制限に関する権限を持っていません。


動画の共有を制御する

この機能を有効にすることで、視聴者は共有機能が使用できなくなります。

PUT https://api.ustream.tv/channels/CHANNEL_ID/settings/viewer.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
sharing boolean REQUIRED 共有機能を有効にするか無効にするか
サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTPレスポンスコード エラー状態
invalid_sharing 400 Bad Request 指定した sharingパラメータの値は無効か、サポートされていません。
payment_required 402 Payment Required このユーザは共有制御へのアクセスができません


ホワイトラベル放送

ブランド名表示の制御

共同ブランド表示(co-branding)を設定した場合 , 画面の目立つ位置にあなたのブランド名を表示することができます。 フルブランド表示(full branding)を設定した場合、既定で表示されるUstreamの透かしロゴマークを非表示にできます。 ブランド非表示(No-branding)を設定すると、Ustreamの透かしロゴマークを非表示にし、完全にロゴマークのない状態で放送ができます。



ブランド表示を設定する。

PUT https://api.ustream.tv/channels/CHANNEL_ID/branding.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
type string REQUIRED ブランド表示の種類

メモ:type パラメータはURLではなくbody部に設定しなければなりません。

使用できるブランド表示の種類
タイプ 説明
co 共同ブランド表示(Co-branding)
full フルブランド表示(Full-branding)
no ブランド非表示(No branding)
サーバからの応答

成功した場合、HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_type 400 Bad Request 指定されたタイプは無効か、サポートされていません。
payment_required 402 Payment Required このユーザーは指定したブランド表示タイプへのアクセスができません。


ブランド表示を無効にする

DELETE https://api.ustream.tv/channels/CHANNEL_ID/branding.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合HTTP ステータス 200 OKの応答が返ってきます。



ロゴマークの設定を更新する

PUT https://api.ustream.tv/channels/CHANNEL_ID/branding/logo/LOGO_ID/settings.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)

メモ:現在、LOGO_IDは0の値しかサポートしていません。

各種パラメータ
パラメータ タイプ 重要度 説明
position string REQUIRED ロゴの位置
margin unsigned int REQUIRED 余白の値
link string REQUIRED ロゴをクリックした際に表示されるURL(有効なURLもしくは空白文字を指定してださい。)

メモ:type パラメータはURLではなくbody部に設定しなければなりません。

positionパラメータに指定できる値
position
top-left
top-middle
top-right
middle-left
middle-right
bottom-left
bottom-middle
bottom-right
サーバからの応答

成功した場合、HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_position 400 Bad Request positionパラメータに指定した値が無効か、サポートされていません。
invalid_margin 400 Bad Request marginパラメータに指定した値が無効です。
invalid_link 400 Bad Request linkパラメータに指定した値が無効です。
payment_required 402 Payment Required このユーザーは指定されたチャンネルのブランド表示に対してアクセスができません。


PUT https://api.ustream.tv/channels/CHANNEL_ID/branding/logo/LOGO_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)

メモ:現在、LOGO_IDは0の値しかサポートしていません。

リクエスト

ロゴはHTTPのbody部に設定するようにしなければなりません。

サポートしている画像形式
形式
image/jpeg
image/png
image/gif
最大サイズ
width 170px
height 170px
サーバからの応答

成功した場合、HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_file 400 Bad Request 指定されたファイルは無効か、サポートされていません。
invalid_image 400 Bad Request 指定された画像は無効です。
payment_required 402 Payment Required このユーザーは指定されたチャンネルのブランド表示に対してアクセスができません。


チャンネルページを制御する

あなたのチャンネルや保存動画を、Ustream.tv上からは参照できないようにします。視聴者はUstream外にあるWebサイトの埋め込みプレイヤーからしか視聴できなくなります。 あなたが管理するWebサイトのみでしかチャンネルを視聴できないようにする場には、埋め込み制限機能を併用してください。

ページロックの設定状態を取得する

GET https://api.ustream.tv/channels/CHANNEL_ID/locks/page.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、HTTP ステータス 200 OKの応答が返ってきます。

キー タイプ 説明
locked string 指定したチャンネルにページロックが設定されている場合はTRUEが返り、設定されていない場合はFALSEが返ります。
エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment Required このユーザーはpage_lock権限を持っていません。

ページロックを編集する

PUT https://api.ustream.tv/channels/CHANNEL_ID/locks/page.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
locked string REQUIRED パラメータにlocked==TRUEと設定した場合はページロックが有効になり、locked==FALSEと設定した場合はページロックが解除されます。
サーバからの応答

成功した場合、中身のないHTTP ステータス 204の応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment Required このユーザはページロックの権限を持っていません。
invalid_request 400 Bad Request 必須パラメータが設定されていないか、無効な値です。


視聴者数を非表示にする

この機能を有効することにより、放送中のチャンネルの視聴者数が視聴者に表示されません。

PUT https://api.ustream.tv/channels/CHANNEL_ID/settings/hide-viewers.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
value boolean REQUIRED 視聴者数の非表示を有効にするか無効にするか
サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_value 400 Bad Request 指定された値は無効か、サポートされていません。
lack_of_ownership 403 Forbidden 指定されたチャンネルは、このユーザーのものではありません。


チャンネルデザイン

チャンネルページの背景

取得

現在の背景色を取得する

GET https://api.ustream.tv/channels/CHANNEL_ID/design/background.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

"background" 要素の中に、キーの値が構造化されて入っています。

キー タイプ 説明
color string チャンネルページの背景色を16進RGB形式で表した値。
エラーコード
エラー値 HTTP レスポンスコード エラー状態
lack_of_ownership 403 Forbidden このAPIユーザーは、指定したチャンネルの管理権限がありません。
not_found 404 Not found チャンネルが見つかりませんでした。


背景色を編集する

PUT https://api.ustream.tv/channels/CHANNEL_ID/design/background.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
color string REQUIRED チャンネルページの背景色を16進RGB形式で表した値。
サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
lack_of_ownership 403 Forbidden このAPIユーザーは、指定したチャンネルの管理権限がありません。
bad_request 400 Bad request 指定した形式の整合性を検証した結果、エラーがありました。
not_found 404 Not found チャンネルが見つかりませんでした。


設定を削除する

DELETE https://api.ustream.tv/channels/CHANNEL_ID/design/background.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
lack_of_ownership 403 Forbidden このAPIユーザーは、指定したチャンネルの管理権限がありません。
not_found 404 Not found チャンネルが見つかりませんでした。


チャンネル管理者

この機能を使用することで、ユーザー(マスター管理者)は別の第三者に管理者権限を付与し、チャンネルの管理者に加えることができます。 有効化されたチャンネル管理者にはチャンネル管理権限を付与され、マスター管理者とは別に管理作業を行えます。 チャンネルには最大で500人の管理やを設定することができますが、既定では常時権限を有効にできるのは3人までです。



チャンネル管理者の一覧情報を取得する

GET https://api.ustream.tv/users/self/managers.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

キー タイプ 説明
user_id string チャンネル管理者のユーザ識別情報
email string チャンネル管理者のEメールアドレス
alias string チャンネル管理者の別名
active boolean 有効化フラグ
channels array 管理しているチャンネルの識別番号一覧
エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment required このユーザーは、有効なサブアカウント権限がありません


新しいチャンネル管理者を追加する

POST https://api.ustream.tv/users/self/managers.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
email string REQUIRED 管理者として登録するUstreamユーザーのEメールアドレス
alias string OPTIONAL このチャンネル管理者の別名
サーバからの応答

成功した場合、HTTP ステータス 201の応答が返ってきます。

キー タイプ 説明
user_id string 登録したチャンネル管理者のユーザ識別番号
email string チャンネル管理者のEメールアドレス
alias string チャンネル管理者の別名
active boolean 有効化フラグ (既定ではfalse となっています)
エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment required このユーザーは有効なサブアカウント権限がありません
bad_request 400 Bad request 指定した形式の整合性を検証した結果、エラーがありました。ユーザーが見つからないか、既にチャンネル管理者として登録されています。


チャンネル管理者情報の変更

PUT https://api.ustream.tv/users/self/managers/MANAGER_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
alias string OPTIONAL チャンネル管理者の別名
active boolean REQUIRED 管理者の有効化フラグを設定します
サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment required このユーザーは有効なサブアカウント権限がありません
bad_request 400 Bad request 指定した形式の整合性を検証した結果、エラーがありました。
not_found 404 Not found チャンネル管理者が見つかりませんでした
limit_reached 403 Forbidden 有効なチャンネル管理者の上限に達しています。これ以上有効なチャンネル管理者を増やせません。


チャンネル管理者の情報を取得する(個別に)

GET https://api.ustream.tv/users/self/managers/MANAGER_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

キー タイプ 説明
user_id string チャンネル管理者のユーザ識別情報
email string チャンネル管理者のEメールアドレス
alias string ャンネル管理者の別名
active boolean 有効化フラグ
channels array Array of managed channel identifiers
エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment required このユーザーは、有効なサブアカウント権限がありません


チャンネル管理者を削除する

DELETE https://api.ustream.tv/users/self/managers/MANAGER_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment required このユーザーは、有効なサブアカウント権限がありません
not_found 404 Not found チャンネル管理者が見つかりませんでした。


チャンネル管理者に管理するチャンネルを割り振ります。

PUT https://api.ustream.tv/channels/CHANNEL_ID/managers/MANAGER_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment required このユーザーは、有効なサブアカウント権限がありません
lack_of_ownership 403 Forbidden 指定されたチャンネルは、このマスター権限ユーザーのものではありません。
not_found 404 Not found チャンネル管理者が見つかりませんでした。


チャンネル管理者の管理権限を取り消します。

DELETE https://api.ustream.tv/channels/CHANNEL_ID/managers/MANAGER_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_request 402 Payment required このユーザーは、有効なサブアカウント権限がありません
lack_of_ownership 403 Forbidden 指定されたチャンネルは、このマスター権限ユーザーのものではありません。
not_found 404 Not found チャンネル管理者が見つかりませんでした。


放送の設定

マルチ品質放送

この機能を有効にすると、あなたの放送を異なる品質の複数のバージョンにトランスコートすることができます。

PUT https://api.ustream.tv/channels/CHANNEL_ID/settings/multi-quality.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
value boolean REQUIRED 視聴者にマルチ品質を有効にするか無効にするか
サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_value 400 Bad Request 指定された値は無効か、サポートされていません。
payment_required 402 Payment Required このユーザーはマルチ品質への管理アクセス権限がありません。


録画

録画の開始/停止

動画配信時中、クライアントは自分自身のチャンネルの録画を制御できます。この操作結果について、サーバから直接的なフィードバックが返ってくることはありません。

POST https://api.ustream.tv/channels/CHANNEL_ID/recorder.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
command string REQUIRED commandパラメータには "start" か "stop" どちらかの値を設定するようにしてください
サーバからの応答

成功した場合、HTTP ステータス "202 Accepted"の応答が返ってきます。

stop コマンドを実行した場合、、サーバからの応答のbody部には録画操作の結果情報(IDとAPIリソースURL)が含まれています。

使用例:

POST /channels/42/recorder.json HTTP/1.1
Host: api.ustream.tv
Authorization: Bearer 3c2573673b782f6544405a22636f3d5d3b6f3950
Content-Type: application/x-www-form-urlencoded

command=stop

サーバからの応答例 ("stop"実行時):

{
    "video": {
        "id": 11111,
        "url": "https://api.ustream.tv/videos/11111.json"
    }
}


録画状況を取得する

動画配信時中、そのリソースに対してHTTP GET メソッドを使用することで録画状況を取得できます。

GET https://api.ustream.tv/channels/CHANNEL_ID/recorder.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)

サーバからの応答例:

{
    "video": {
        "id": 11111,
        "url": "https://api.ustream.tv/videos/11111.json"
    }
}


自動録画

放送時に自動的に保存動画を作成することができます。このリソースで自動録画の挙動を制御することができます。

PUT https://api.ustream.tv/channels/CHANNEL_ID/settings/autorecord.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
value string REQUIRED disabled、 private、 publicといった値を設定できます。disabledを設定した場合、放送時に自動録画の保存動画は作成されません。 privateが設定された場合、既定では自動録画はprivateとなります。 publicが設定された場合、既定では自動録画はpublicとなります。
サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_value 400 Bad Request 指定された値は無効か、サポートされていません。
payment_required 402 Payment Required このユーザーは自動録画設定の操作権限がありません。


録画の制限時間を取得する

このチャンネルの録画できる最大時間を取得する。

GET https://api.ustream.tv/channels/CHANNEL_ID/limits/recording.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答
キー タイプ 説明
time integer 録画の制限時間(秒単位)
エラーコード
エラー値 HTTP レスポンスコード エラー状態
lack_of_ownership 403 Forbidden 指定されたチャンネルはこのユーザーのものではありません。
not_found 404 Not Found 指定されたチャンネルは存在しません。


保存動画

チャンネルで保存された動画の一覧を表示する

チャンネルで保存された動画の詳細情報一覧を取得する

GET https://api.ustream.tv/channels/CHANNEL_ID/videos.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
page integer OPTIONAL リクエストするページ番号 (デフォルトでは1が入る)
pagesize integer OPTIONAL リクエストするページサイズ (デフォルトでは50 が入る。最大値は50)
filter set OPTIONAL
パラメータ タイプ 重要度 説明
protect string OPTIONAL 保護レベルを元に保存動画を抽出します。レベルは public、 friends、 private があります。(既定では何も指定されていません)
vod boolean OPTIONAL Filter PPV VODs from result when true (既定ではfalaseが設定されています)
サーバからの応答

"videos" 要素の中に、各キーの値が構造化されて入っています。例:

"videos": [
    {
        "id": "111",
        "title": "Title of video",
        "description": "Description of video",
        "url": "http://www.ustream.tv/recorded/111",
        "length": "12345.123456",
        "created_at": 1399388736,
        "file_size": "120000",
        "views": 0,
        "thumbnail": {
            "default": "https://ustvstaticcdn1-a.akamaihd.net/111.jpg"
        },
        "media_urls": {
            "flv": "http://tcdn.ustream.tv/video/111"
        },
        "links": {
            "channel": {
                "href": "https://api.ustream.tv/channels/1.json"
            }
        }
    },
    ...
]

各値の説明:

キー タイプ 説明
length float 保存動画の長さ(秒単位)
created_at int 保存動画が作成された日付(UNIXのタイムスタンプ形式)
file_size int 保存動画ファイルのサイズ(バイト単位)

ページング情報は"paging"要素の中に格納されています。以下、例:

"paging": {
    "previous": ".../CHANNEL_ID/videos.json?pagesize=PAGE_SIZE&page=PREVIOUS_PAGE"
    "next": ".../channels/17728050/videos.json?pagesize=PAGE_SIZE&page=NEXT_PAGE"
}
エラーコード
エラー値 HTTP レスポンスコード エラー状態
lack_of_ownership 403 Forbidden 指定されたチャンネルはこのユーザーのものではありません。
not_found 404 Not Found 指定されたチャンネルは存在しません。


保存動画の詳細情報

保存されている動画の詳細情報を取得する

GET https://api.ustream.tv/videos/VIDEO_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

"video" 要素の中に、各キーの値が構造化されて入っています。例:

"video": {
    "id": "111",
    "title": "Title of video",
    "description": "Description of video",
    "url": "http://www.ustream.tv/recorded/111",
    "length": "12345.123456",
    "created_at": 1399388736,
    "file_size": "120000",
    "views": 0,
    "thumbnail": {
        "default": "https://ustvstaticcdn1-a.akamaihd.net/111.jpg"
    },
    "media_urls": {
        "flv": "http://tcdn.ustream.tv/video/111"
    },
    "links": {
        "channel": {
            "href": "https://api.ustream.tv/channels/1.json"
        }
    }
}

各値の説明:

キー タイプ 説明
length float 保存動画の長さ(秒単位)
created_at int 保存動画が作成され日付(UNIXのタイムスタンプ形式)
file_size int 保存動画ファイルのサイズ(バイト単位)
エラーコード
エラー値 HTTP レスポンスコード エラー状態
not_found 404 Not Found 指定された保存動画は存在しません。


保存された動画の詳細情報を編集する

PUT https://api.ustream.tv/videos/VIDEO_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
title string REQUIRED 保存動画のタイトル
description string REQUIRED 保存動画の説明
protect string OPTIONAL 保存動画の保護レベル。 public、 friends、 private が設定できます。
サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
invalid_value 400 Bad Request 指定された値は無効か、サポートされていません。
lack_of_ownership 403 Forbidden 指定された保存動画はこのユーザのものではありません。
not_found 404 Not Found 指定された保存動画は存在しません。


保存されている動画を削除する

現在のアカウントから、保存されている動画を永久削除する。

DELETE https://api.ustream.tv/videos/VIDOE_ID.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
lack_of_ownership 403 Forbidden 指定された保存動画はこのユーザーのものではありません。
not_found 404 Not Found 指定された保存動画は存在しません。


保存動画の有効期限

有効期限が切れると保存動画は削除されます。有効期限を設定することで、保存動画が削除されるのを防ぐことができます。



保存されている動画の有効期限を取得する

GET https://api.ustream.tv/videos/VIDEO_ID/expiration.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

キー タイプ 説明
rule string このパラメータには never か at_given_time の値が入ってきます。
expires_at integer ruleパラメータに at_given_time と設定されている場合は、 expires_at パラメータにはUNIXタイムスタンプ形式の有効期限が入ります。 ruleパラメータに never と設定されている場合は、 expires_at パラメータは取得できません。
エラーコード
エラー値 HTTP レスポンスコード エラー状態
lack_of_ownership 403 Forbidden このAPIユーザーは指定したチャンネルの管理権限がありません。
forbidden 403 Forbidden 有効期限の管理ができないシステムレベルになっているか、ユーザーが保存動画の期限を管理する権限を持っていません。
not_found 404 Not found 指定されたvideo_id は存在しません。


保存されている動画の有効期限を設定する

PUT https://api.ustream.tv/videos/VIDEO_ID/expiration.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
rule string REQUIRED このパラメータには never を設定できます。
サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
bad_request 400 Bad request 無効なリクエストボディ:ruleパラメータが設定されていないか、無効な値です。
lack_of_ownership 403 Forbidden このAPIユーザーは指定したチャンネルの管理権限がありません。
forbidden 403 Forbidden 有効期限の管理ができないシステムレベルになっているか、ユーザーが保存動画の期限を管理する権限を持っていません。
not_found 404 Not found 指定された video_id は存在しません


チャンネル予約

チャンネルで発生する各種のイベントに対して予約を登録することができます。チャンネルで指定したイベントが発生した場合、HTTO POSTリクエストが予約登録したURLに送られます。 クライアントの識別情報を使用することで、下記エンドポイントから予約登録ができます


予約の登録

PUT https://api.ustream.tv/channels/CHANNEL_ID/hooks/EVENT.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ
パラメータ タイプ 重要度 説明
recipient string REQUIRED イベント発生時には、このURLに通知が送られます。
サーバからの応答

成功した場合、中身のないHTTP ステータス 204の応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
not_found 404 Not found 指定されたチャンネルは存在しません
bad_request 400 Bad request 入力されたパラメータに無効なものがあります。


チャンネルの予約情報を取得する

GET https://api.ustream.tv/channels/CHANNEL_ID/hooks/EVENT.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

キー タイプ 説明
recipient string 予約したURL
status string pending(保留)か active(実行中) か suspended(中断)の値が入ります。
エラーコード
エラー値 HTTP レスポンスコード エラー状態
not_found 404 Not found チャンネルが存在しないか、このチャンネルには予約が登録されていません。


チャンネル予約を削除する

DELETE https://api.ustream.tv/channels/CHANNEL_ID/hooks/EVENT.FORMAT ("FORMAT"の部分には json か xml を指定することができます。)
各種パラメータ

設定が必要なパラメータはありません。

サーバからの応答

成功した場合、 HTTP ステータス 200 OKの応答が返ってきます。

エラーコード
エラー値 HTTP レスポンスコード エラー状態
not_found 404 Not found チャンネルが見つかりませんでした
bad_request 400 Bad request イベントタイプが無効です


サポートしているイベント

Event 説明
channel.status.live チャンネルは放送中です。
channel.status.offair チャンネルは放送停止中です。


ハンドシェイクの方法

既定では、新たに登録した予約は無効状態になっています。有効化するには、 予約を登録する前にイベント通知受信URLにベーシックハンドシェイクを実装していなければいけません。

予約を登録した後、X-Hook-Secret HTTPヘッダを持ったPOSTリクエストがイベント通知受信URLに送られます。 イベント通知受信URLがAPI使用者自身のものであること証明するために、 受信者はX-Hook-Secretヘッダに記載された秘密の文字列をそのまま送り返さなければなりません。 このハンドシェイクリクエストには、body部に"event"と"channelId"の値がJSON形式で格納されています。 この二つの値は予約登録時にあなたが設定した値と同じものです。 これらの値を識別子として使うことで、同じ予約上で複数の秘密文の処理を行うことができます。



ハンドシェイクの例

あなたのアプリが、「チャンネル123」が放送中になる度にそれを検知しなければならないと想定して、新たに予約の設定を行います。

POST /channels/123/hooks/channel.status.live.json HTTP/1.1
Host: api.ustream.tv
Authorization: Bearer 782f6544405a22636f3d5d3b63c2573673bf3950
Content-Type: application/x-www-form-urlencoded

recipient=http://your-app.url/hook-receiver

全ての処理が正常に完了した場合、以下のようなシンプルな応答が返ってきます。:

HTTP/1.1 204 No Content

非同期的に、ハンドシェイクメカニズムがすぐさま開始されます。Ustream の予約サーバは秘密文字列の交換を行うため、あなたのイベント通知受信URLへ応答を返します。

POST /hook-receiver HTTP/1.1
Host: your-app.url
Content-Type: application/json
Content-Length: 46
X-Hook-Secret: open-sesame!

{
    "event": "channel.status.live", 
    "channelId": 123
}

予約の実装では、受け取った秘密情報を保存してX-Hook-Secretヘッダの値を送り返すようにしてください。

HTTP/1.1 200 OK
Content-Length: 0
X-Hook-Secret: open-sesame!

登録したイベントの発生通知を受け取る。

あなたが登録していた予約イベントが発生すると、Ustreamの予約サーバはあなたのイベント通知受信URLへ通知を送ります。:

POST /hook-receiver HTTP/1.1
Host: your-app.url
Content-Type: application/json
Content-Length: 76
X-Hook-Signature: 61f34d324ac51dde1288825dab2111

{
    "event": "channel.status.live", 
    "channelId": 123,
    "when": 1234567890
}

"when"の項目には、イベントが発生した正確な時間が入っています。時間はUNIXのタイムスタンプ形式で送られてきます。

受信側では、通知内のX-Hook-Signatureヘッダの署名を検証したほうがよいでしょう。 検証にはHMAC-SHA1 アルゴリズムと、前回のハンドシェイクで送られてきた秘密文とbody部の全内容をそのまま使ってください。