React to YouTube chat
Alpha (as of October 2026). Subject to change without notice.
Make your ESKEES work react to YouTube live chat, Super Chats and new members.
To read YouTube chat, each streamer creates their own YouTube Data API key and runs eskees live (a relay) from the ESKEES CLI on the streaming PC. The key stays on your PC and never goes into an OBS URL.
Overview
- Install the ESKEES CLI (once)
- Create an API key in Google Cloud (once)
- Save the API key on your PC (once)
- Start
eskees livewhen you go live - Connect the OBS page to the relay
1. Install the ESKEES CLI
Use the one-line install in Step 1 of Make games with AI. No account is needed.
2. Create an API key
- Open the Google Cloud console and sign in with your Google account (accept the terms the first time; it's free).
- From the project picker at the top, create a New project. Any name works (e.g.
eskees-live). - In APIs & Services → Library, search for YouTube Data API v3 and press Enable.
- In APIs & Services → Credentials → Create credentials → API key. Copy the key that appears.
- Edit the key: under API restrictions, choose “Restrict key”, select only “YouTube Data API v3”, and save. Leave “Application restrictions” as “None”.
Keep the API key private. Save it on your PC as below so it never appears on stream or in an OBS URL.
3. Save the API key on your PC
eskees live --save-key (your API key)
The key is saved in your user folder (~/.eskees/youtube.json), so you don't have to type it again.
4. Start the relay when you go live
Once your stream has started (or a scheduled stream with open chat exists), pass its URL:
eskees live --youtube https://www.youtube.com/watch?v=(stream ID)
- You can pass
@yourhandleinstead, but finding the live video uses much more quota (see “Quota” below). - It prints “中継: ws://127.0.0.1:7357” and then each incoming message on its own line. Keep the terminal open until the stream ends (Ctrl+C to stop).
- To try it without YouTube, run
eskees live --demo(sends dummy messages every 3 seconds).
5. Connect the OBS page to the relay
- From ESKEES Studio: in the Reactions tab of the bottom panel, check that the YouTube field says
ws://127.0.0.1:7357and press Connect and try to see reactions in the test play. Export for OBS then produces HTML that connects to the relay. - With a URL: add
&relay=ws://127.0.0.1:7357to the Browser source URL, e.g.https://showcase.eskees.com/overlay?src=(URL of your work)&relay=ws://127.0.0.1:7357 - Run OBS and
eskees liveon the same PC (the relay only accepts connections from that PC). - You can use Twitch at the same time (
&twitch=channel&relay=…).
What arrives
| Chat messages | Trigger “Chat” (chat) |
|---|---|
| Super Chats and Super Stickers | Trigger “Gift” (gift). Amounts are converted to yen as a rough guide (approximate exchange rates) |
| New members, milestones, gifted memberships received | Trigger “Member” (member), with months for milestones |
Messages from moderators and the owner match “moderators only”; messages from members match “members/subs only”.
Quota (how much you can read per day)
- The YouTube Data API gives 10,000 units per day for free. Each read of the chat costs about 5 units.
eskees livereads every 8 seconds by default, which covers about 4–5 hours of streaming per day. For longer streams use something like--interval 15(reactions come later).- Starting from a handle (
@…) costs 100 units to find the live video. Passing the stream URL saves quota. - When the quota runs out, reading stops until midnight Pacific Time. The relay says so and stops.
Troubleshooting
- “API キーが正しくありません” (invalid key): check the copied key and save it again with
eskees live --save-key. - “YouTube Data API v3 が有効になっていません” (API not enabled): make sure you enabled the API in the same project where you created the key.
- “チャットが見つかりません” (chat not found): check that the stream has started and chat is on.
- A red bar at the bottom left of the OBS page: check that
eskees liveis running and the port (7357) matches. - Studio (browser) can't reach the relay: if the browser asks for “local network access”, allow it.