すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:Manage LiveChannels (Node.js SDK)

最終更新日:Nov 30, 2025

このトピックでは、LiveChannel の作成、一覧表示、削除など、LiveChannel の一般的な操作について説明します。

LiveChannel の作成

リアルタイムメッセージングプロトコル (RTMP) 経由で音声および動画データをアップロードする前に、この API 操作を呼び出して LiveChannel を作成する必要があります。PutLiveChannel API 操作は、RTMP アップストリーミング URL と対応する再生 URL を返します。

次のコードは、LiveChannel を作成する方法を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'yourRegion',
  // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // バケット名を指定します。
  bucket: 'examplebucket',
})

// LiveChannel 名を指定します。名前にスラッシュ (/) を含めることはできません。例:mychannel。
const cid = 'mychannel';
const conf = {
  // LiveChannel の説明を指定します。説明の長さは最大 128 バイトです。
  Description: 'this is my channel',
  // LiveChannel のステータスを指定します。この例では、ステータスは enabled に設定されています。LiveChannel を無効にするには、このパラメーターを disabled に設定します。
  Status: 'enabled',
  Target: {
    // ダンプタイプを指定します。HLS のみがサポートされています。
    Type: 'HLS',
    // 各 .ts ファイルの期間を秒単位で指定します。
    FragDuration: '10',
    // Type が HLS に設定されている場合は、.m3u8 ファイル内の .ts ファイルの数を指定します。
    FragCount: '5',
    // Type が HLS に設定されている場合は、生成される .m3u8 ファイルの名前を指定します。名前は .m3u8 で終わり、長さは 6〜128 バイトである必要があります。
    PlaylistName: 'playlist.m3u8'
  }
};

// LiveChannel を作成します。
store.putChannel(cid, conf).then(r=>console.log(r))

LiveChannel 情報の取得

次のコードは、特定の LiveChannel の情報を取得する方法を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'yourRegion',
  // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // バケット名を指定します。
  bucket: 'examplebucket',
})

// LiveChannel 名を指定します。
const cid = 'mychannel'; 

// LiveChannel の情報を取得します。
store.getChannel(cid).then(r=>console.log(r));

LiveChannel ステータスの設定

次のコードは、LiveChannel のステータスを設定する方法を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'yourRegion',
  // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // バケット名を指定します。
  bucket: 'examplebucket',
})

// LiveChannel 名を指定します。
const cid = 'mychannel';

// LiveChannel は有効または無効にできます。
// LiveChannel が無効になっている場合、OSS はそのチャンネルへのアップストリーミングをブロックします。クライアントがチャンネルにストリームをアップストリーミングしている場合、クライアントは約 10 秒の遅延後に切断されます。
store.putChannelStatus(cid, 'disabled').then(r=>console.log(r));

LiveChannel ステータス情報の取得

次のコードは、特定の LiveChannel のアップストリーミングステータスを取得する方法を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'yourRegion',
  // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // バケット名を指定します。
  bucket: 'examplebucket',
})

// LiveChannel 名を指定します。
const cid = 'mychannel';
// LiveChannel のステータス情報を取得します。
store.getChannelStatus(cid).then(r=>console.log(r))

LiveChannel プレイリストの生成

PostVodPlaylist API 操作は、特定の LiveChannel のビデオオンデマンド (VOD) プレイリストを生成します。この操作は、指定された時間範囲内に LiveChannel へのアップストリーミングから生成された .ts ファイルを OSS にクエリし、それらを .m3u8 プレイリストに結合します。

次のコードは、LiveChannel プレイリストを生成する方法を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'yourRegion',
  // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // バケット名を指定します。
  bucket: 'examplebucket',
})

// LiveChannel 名を指定します。
const cid = 'mychannel';

const r = await this.store.createVod(cid, 're-play', {
  // .ts ファイルをクエリする開始時刻を指定します。時刻は UNIX タイムスタンプである必要があります。
  startTime: 1460464870,
  // .ts ファイルをクエリする終了時刻を指定します。時刻は UNIX タイムスタンプである必要があります。
  endTime: 1460465877
  // 終了時刻は開始時刻より後でなければなりません。期間は 1 日を超えることはできません。
}).then(r=>console.log(r))

特定の LiveChannel の一覧表示

次のコードは、特定の LiveChannel を一覧表示する方法を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'yourRegion',
  // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // バケット名を指定します。
  bucket: 'examplebucket',
})

const r = await this.store.listChannels({
  // プレフィックスが 'my' の LiveChannel を一覧表示します。
  prefix: 'my',
  // 最大 3 つの LiveChannel を返すように指定します。
  'max-keys': 3
}).then(r=>console.log(r))

LiveChannel のアップストリーミングレコードの取得

GetLiveChannelHistory API 操作は、特定の LiveChannel のアップストリーミングレコードを取得します。GetLiveChannelHistory API 操作は、指定された LiveChannel の最後の 10 件のアップストリーミングレコードを返します。

次のコードは、LiveChannel のアップストリーミングレコードを取得する方法を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'yourRegion',
  // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // バケット名を指定します。
  bucket: 'examplebucket',
})

// LiveChannel 名を指定します。
const cid = 'mychannel';
// LiveChannel のアップストリーミングレコードを取得します。
store.getChannelHistory(cid).then(r=>console.log(r))

LiveChannel の削除

重要
  • クライアントが LiveChannel にストリームをアップストリーミングしている場合、削除リクエストは失敗します。

  • DeleteLiveChannel API 操作は LiveChannel のみを削除します。アップストリーミングから生成されたファイルは削除されません。

次のコードは、特定の LiveChannel を削除する方法を示しています。

const OSS = require('ali-oss');

const store = new OSS({
  // yourRegion をバケットが所在するリージョンに置き換えます。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'yourRegion',
  // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // バケット名を指定します。
  bucket: 'examplebucket',
})

// LiveChannel 名を指定します。
const cid = 'mychannel'; 

// LiveChannel を削除します。
store.deleteChannel(cid).then(r=>console.log(r))

関連ドキュメント

  • PutLiveChannel API 操作の詳細については、「PutLiveChannel」をご参照ください。

  • GetLiveChannelInfo API 操作の詳細については、「GetLiveChannelInfo」をご参照ください。

  • PutLiveChannelStatus API 操作の詳細については、「PutLiveChannelStatus」をご参照ください。

  • GetLiveChannelStat API 操作の詳細については、「GetLiveChannelStat」をご参照ください。

  • 特定の LiveChannel を一覧表示する API 操作の詳細については、「ListLiveChannel」をご参照ください。

  • PostVodPlaylist API 操作の詳細については、「PostVodPlaylist」をご参照ください。

  • GetLiveChannelHistory API 操作の詳細については、「GetLiveChannelHistory」をご参照ください。

  • DeleteLiveChannel API 操作の詳細については、「DeleteLiveChannel」をご参照ください。