Contents
Streamlabs Chat Bot の入手とインストール
配信の自動化を始める第一歩は、公式サイトから最新バージョンを取得し、環境に合わせて正しくインストールすることです。本セクションでは、ダウンロード方法とインストーラ実行時に確認すべきポイントを順を追って解説します。
公式サイトからのダウンロード
公式ページ(https://streamlabs.com/ja-jp/desktop-chatbot)で常に最新ビルドが配布されています。現在(2024 年時点)のシステム要件は「Windows 10 以降」および「macOS 12 以降」です。※詳細は公式の System Requirements ページをご確認ください。
- トップページ右上の 「ダウンロード」 ボタンをクリック
- 使用している OS を選択し、「Windows 用」(
.exe)または 「macOS 用」(.dmg)を保存 - ダウンロードが完了したらファイルを右クリックし、「管理者として実行」(Windows)のチェックを推奨
インストーラ実行時のチェックポイント
インストール中に見落としやすい点は 依存関係の有無と初回起動設定 です。以下の項目を必ず確認してください。
- .NET Runtime(Windows) / Homebrew(macOS)
- インストーラは実行時に必要なランタイムがインストールされているかチェックし、未検出の場合は ダウンロードページへのリンク を表示します。自動でのインストールは行われないため、指示に従って手動で導入してください。
- インストール先フォルダ
- デフォルトは
C:\Program Files\Streamlabs(Windows)または/Applications/Streamlabs(macOS)。カスタムパスを指定した場合は、環境変数PATHに追加することを忘れないでください。 - 自動アップデートの有効化
- 初回起動時に表示される「アップデートの自動チェック」をオンにすると、最新版がリリースされた際に通知が届きます。
インストール完了後、アプリ左下に表示されるバージョン番号で 最新ビルドかどうか(例:v2.9.3‑2024)を確認しましょう。
Twitch・YouTube アカウント連携と Cloudbot 有効化
配信プラットフォームとの OAuth 認証が完了しない限り、Bot はチャットに介入できません。ここでは Twitch と YouTube の認証手順、およびクラウド上で常時稼働する Cloudbot の有効化方法を説明します。
Twitch との OAuth 連携手順
Twitch は最も利用者が多いプラットフォームです。以下の流れでトークンを取得し、Bot に紐付けます。
- Streamlabs Chat Bot 左メニューの 「設定」 → 「連携」 を開く
- 「Twitch へ接続」 ボタンをクリックし、表示された Twitch の認証画面で 「承諾」 を選択
- 認証が成功すると Bot に OAuth アクセストークン が自動入力されます。
注意:トークンの有効期限は Twitch の仕様に従い、最大 60 日です(変更の可能性あり)。最新情報は公式ドキュメントをご確認ください → Twitch Token Expiration。
YouTube との OAuth 連携手順
YouTube は Google アカウントを介した認証になるため、二段階認証が有効な場合は追加の確認が入ります。
- 同じく 「設定」 → 「連携」 から 「YouTube へ接続」 を選択
- Google のログイン画面でアカウントを入力し、「YouTube データへのアクセスを許可」 をクリック
- 成功すると チャンネル ID が自動入力され、Cloudbot 用の API キーが生成されます。
注意:YouTube の OAuth トークンは 最大 90 日(変更の可能性あり)。最新情報は Google の公式ページをご参照ください → Google OAuth Token Expiration。
Cloudbot の有効化と運用ポイント
Cloudbot はサーバ側で常時稼働するため、PC を起動していなくてもコマンドは利用可能です。
- メイン画面右上の 「Cloudbot」 タブを開く
- 「Cloudbot を有効化」 スイッチをオンにし、保存 ボタンをクリック
- 「バックアップ自動保存」 を併せて有効にすると、設定がクラウドに同期され、別端末でも同一環境が再現できます
この状態で Twitch/YouTube の認証情報が正しく登録されていれば、配信開始と同時にチャットコマンドが使用可能です。
基本設定画面の主要項目解説
Bot が期待通りに動作するかは 「基本設定」 の正確さに依存します。以下では、よく使う項目を順番に説明し、複数チャンネル運用時の留意点も併せて紹介します。
認証トークン・チャンネル名入力
- 認証トークン は Twitch / YouTube で取得した文字列です。期限が近づいたら設定画面右上の 「トークン再取得」 ボタンで新しいトークンを発行できます。
- チャンネル名(ID) は実際の配信者 ID を入力します。大文字小文字は区別されませんが、スペースや特殊記号は除外してください。
言語・タイムゾーン設定
- 言語:デフォルトを「日本語」に変更すると、システムメッセージやエラーログが日本語で表示されます。
- タイムゾーン:配信時間の計算に使用されるため、「Asia/Tokyo」 を選択し、サマータイムはオフにします(日本国内では不要)。
権限レベルとデフォルト設定
Bot には Viewer / Moderator / Broadcaster の三段階権限があります。コマンドごとに必要な権限を設定できるため、運用方針に合わせて調整してください。
| 権限レベル | 主な操作例 |
|---|---|
| Viewer | !hello などの情報取得系 |
| Moderator | ユーザータイムアウト、キーワード削除 |
| Broadcaster | Bot の全設定変更、スクリプトアップロード |
デフォルトは Viewer ですが、ミニゲームや投票機能で参加者を制限したい場合は Moderator に昇格させると安全です。
カスタムコマンド作成とミニゲーム実装例
視聴者とのインタラクションは カスタムコマンド から始まります。ここでは基本的な作成手順と、代表的なミニゲームのサンプルコードを示します。
テキスト返信コマンドの基本構造
- 左メニューの 「コマンド」 → 「新規作成」 をクリック
- コマンド名(例:
!hello)と返信テキストを入力 - 必要に応じて権限やクールダウンを設定し、「保存」 で有効化
ポイント:1 回の返信は最大 500文字。長文が必要な場合は別ファイルに分割し、
!rules等でリンクさせると見やすくなります。
変数活用例
Bot が提供する組み込み変数を使うと、メッセージが動的になります。代表的な変数は以下の通りです。
| 変数 | 説明 |
|---|---|
$user |
コマンド実行者の表示名 |
$uptime |
配信開始からの経過時間(例:2h15m) |
$followers |
チャンネル登録者数 |
使用例
|
1 2 3 |
コマンド名: !info 返信テキスト: こんにちは $user さん!配信開始から $uptime が経過しています。現在のフォロワーは $followers 人です。 |
権限・クールダウン設定
- 権限:作成画面下部の「権限」ドロップダウンで対象ユーザーを選択します。
- クールダウン:スパム防止のため、
10秒など適切な間隔を設定してください。
Python / JavaScript によるミニゲームサンプル
dice コマンド(Python)
|
1 2 3 4 5 6 7 8 |
# cloudbot/scripts/dice.py import random def on_command(data, bot): user = data["user_name"] roll = random.randint(1, 6) # 1〜6 の乱数を生成 bot.send_message(f"{user} がサイコロを振って … {roll} が出ました!") |
- 設定手順:
「スクリプト」 → 「新規作成」でファイル名dice.pyを入力し、上記コードを貼り付けて保存。 - コマンド名は
!diceに割り当てます。範囲(d20, d100)に変更したい場合はrandom.randint(1, N)の N を変えるだけです。
coin コマンド(JavaScript)
|
1 2 3 4 5 6 7 8 |
// cloudbot/scripts/coin.js function onCommand(data, bot) { const user = data.user_name; const result = Math.random() < 0.5 ? "表" : "裏"; bot.sendMessage(`${user} がコインを投げて … ${result} が出ました!`); } module.exports = { onCommand }; |
- ポイント:
Math.random()は 0〜1 の実数を返すので、0.5 未満で「表」、それ以外で「裏」と判定します。 - クールダウンは
5秒程度が目安です。
簡易クイズ(JSON + Python)
- 質問リスト作成(
questions.json)
|
1 2 3 4 5 |
[ {"q":"日本の首都は?","a":"東京"}, {"q":"Streamlabs の創業年は?","a":"2014"} ] |
- クイズロジック(Python)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import json, random with open("questions.json", "r", encoding="utf-8") as f: Q_LIST = json.load(f) def on_command(data, bot): user = data["user_name"] # ランダムに 1 問出題 q = random.choice(Q_LIST) bot.send_message(f"{user} さん、クイズです! {q['q']}") # 正解は別コマンド !ans で判定させる想定 bot.store_temp(user, "quiz_answer", q["a"]) |
- 回答判定コマンド
!ans(同様に Python) - ユーザーが入力した文字列と一時保存された正解を比較し、正解ならポイント付与、外れたら再挑戦メッセージを返す。
以上のサンプルを組み合わせれば、視聴者参加型ミニゲームを数分で実装できます。
高度なモデレーションと外部 API 連携
チャットの健全性確保は配信成功の鍵です。ここでは スパムフィルタ、自動タイムアウト/バン の設定方法と、天気情報や Discord ロール同期といった外部サービス連携例を紹介します。
スパムフィルタ・リンクブロック設定
- 「モデレーション」タブ → 「スパムフィルタ」を有効化
- キーワードリストに
!spam,http://などの禁止語句を追加し、「自動削除」 と 「タイムアウト(30 秒)」 を設定 - リンクブロック は許可ドメイン欄に公式配信 URL(例:
twitch.tv/yourchannel)だけ残すと、安全にリンク共有ができます
自動タイムアウト/バンの条件付け
| 条件 | アクション |
|---|---|
| 同一ユーザーが警告を 5 回 超えた場合 | タイムアウト 60 秒 |
正規表現 /(\\b(?:fuck|shit)\\b)/i にマッチしたコメント |
即時バン(永久) |
| 短時間に同一メッセージが 3 回以上 投稿された場合 | 自動ミュート 30 秒 |
設定は UI の「条件」→「アクション」で選択し、保存 だけで適用されます。
天気情報取得コマンド(Python例)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import requests API_KEY = "YOUR_OPENWEATHER_API_KEY" BASE_URL = "https://api.openweathermap.org/data/2.5/weather" def get_weather(city: str) -> str: params = {"q": city, "appid": API_KEY, "units": "metric", "lang": "ja"} resp = requests.get(BASE_URL, params=params) if resp.status_code != 200: return "天気情報が取得できませんでした。" data = resp.json() temp = data["main"]["temp"] desc = data["weather"][0]["description"] return f"{city} の現在の天気は {desc}、{temp:.1f}℃です。" def on_command(data, bot): args = data.get("args", "").strip() if not args: bot.send_message("使用例: !weather 東京") return bot.send_message(get_weather(args)) |
!weatherコマンドに割り当て、API キーは 「設定」→「外部 API」 で安全に管理してください。
Discord ロール同期スクリプト(JavaScript例)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
// cloudbot/scripts/syncrole.js const fetch = require('node-fetch'); async function syncRole(data, bot) { const twitchId = data.user_id; // Twitch ユーザー ID const discordId = data.custom_fields?.discord_id; if (!discordId) { bot.sendMessage(`${data.user_name} さんの Discord ID が設定されていません`); return; } const roleId = "YOUR_ROLE_ID"; const guildId = "YOUR_GUILD_ID"; const url = `https://discord.com/api/v9/guilds/${guildId}/members/${discordId}`; const response = await fetch(url, { method: 'PATCH', headers: { Authorization: `Bot ${process.env.DISCORD_BOT_TOKEN}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ roles: [roleId] }) }); if (response.ok) { bot.sendMessage(`${data.user_name} に Discord ロールを付与しました`); } else { const txt = await response.text(); bot.sendMessage(`ロール付与に失敗 (${response.status}) ${txt}`); } } module.exports = { onCommand: syncRole }; |
- 環境変数
DISCORD_BOT_TOKENは 「環境設定」 で登録し、コード上に平文を書かないようにしてください。 - このスクリプトは
!syncroleコマンドとして配布すれば、視聴者が自分の Discord アカウントと Twitch アカウントを紐付けた瞬間にロール付与できます。
テスト・デバッグ、バックアップ、コミュニティ参加方法
本番環境でエラーが出ないように 事前テスト と 定期的なバックアップ を行うことは必須です。ここでは実践的な手順と公式サポートリソースへのアクセス方法をまとめます。
デバッグモードとローカルテスト手順
- 「設定」→「高度な設定」から デバッグモード をオンにすると、コマンド実行時の詳細ログがコンソールに出力されます。
- メイン画面右上の テストチャットウィンドウ(自分だけが見る)で
!test等を入力し、返信とログを確認します。 - Python スクリプトは「スクリプトエディタ」下部にある 「実行」 ボタンで即座に結果が表示されるため、ロジックの検証が容易です。
よくあるエラーと対処法
| エラー例 | 主な原因 | 推奨対策 |
|---|---|---|
403 Forbidden(Bot がメッセージ送信不可) |
コマンド権限が Viewer のまま | 設定画面で対象コマンドの 権限 → Broadcaster に変更 |
Invalid OAuth token |
トークン期限切れ、または削除された | 「設定」→「トークン再取得」から新しいトークンを取得し保存 |
スクリプトがクラッシュ(例:ModuleNotFoundError: No module named 'requests') |
必要な外部パッケージ未インストール | 「設定」→「Python パッケージ」で pip install requests を実行 |
設定のエクスポート/インポートと自動バックアップ
- 右上の 「バックアップ」 アイコン → 「エクスポート」 を選択し、JSON ファイルをローカルに保存します。
- 別 PC や新規アカウントで同じ Bot を使用したいときは 「インポート」 から先ほどの JSON を読み込むだけで全設定が復元できます。
- 自動バックアップ オプションを有効にしておくと、毎日 00:00 にクラウドへ最新設定が保存されるため、手動エクスポートは緊急時のみにすべてで構いません。
公式 Discord・サポートリソースへの案内
- Streamlabs Community Discord – カスタムスクリプトや不具合相談が活発に行われています。参加リンク: https://discord.gg/streamlabs
- 公式ヘルプセンター – 各機能の最新マニュアルと FAQ が掲載されています。https://support.streamlabs.com
- GitHub リポジトリ(サンプルスクリプト) – Python / JavaScript の実装例が随時更新中です。 https://github.com/Streamlabs/Chatbot-Scripts
これらのコミュニティに参加すれば、最新情報や他配信者のベストプラクティスを素早く取得できます。
まとめ
- 公式サイトから最新版をダウンロードし、依存ランタイム(.NET / Homebrew)が揃っているか確認する。
- Twitch と YouTube の OAuth 認証はトークン期限が変動するため、公式ドキュメントへのリンクを常にチェック。
- Cloudbot を有効化すれば PC がオフでもコマンドが利用可能で、設定のクラウド同期も同時に行える。
- 基本設定・権限・変数を正しく使い分けることで、安定したチャット自動化が実現できる。
- Python / JavaScript のサンプルスクリプトはそのままコピペでミニゲームや外部 API 連携に活用可能。
- モデレーション機能とバックアップを忘れずに設定し、テスト・デバッグで本番前に動作確認を行う。
以上の手順とポイントを抑えておけば、初心者でも安全かつ効果的に Streamlabs Chat Bot を配信環境へ組み込むことができます。ぜひ実践して、視聴者とのインタラクションをさらに充実させてください。