Note on message timing: There may be a slight delay in messages appearing — this is normal. YouTube and TikTok APIs enforce minimum polling intervals set by their platforms, so chat messages may arrive a few seconds after being sent in the live stream.
Twitch disconnected
How to get a Twitch Client ID
1. Go to https://dev.twitch.tv/console/apps → Register Your Application.
2. OAuth Redirect URL: paste
3. Category: Chat Bot. Copy the Client ID and paste it above.
YouTube disconnected
🧪 Beta
How to get a YouTube API key
1. Go to https://console.cloud.google.com/ and sign in.
2. Create a project → APIs & Services → Library → search YouTube Data API v3 → Enable.
3. Go to APIs & Services → Credentials → Create Credentials → API Key.
4. Copy the key and paste it above. ⚠ Restrict your key to the YouTube Data API v3 in the credentials settings.
TikTok disconnected
TikTok LIVE chat access requires the TikTok for Developers Live API (invite-only). Enter your OAuth token below if you have API access approved.
How to get TikTok Live API access
1. Go to https://developers.tiktok.com and sign in.
2. Create a new app and apply for Live Subscription product access (requires TikTok approval).
3. Once approved, generate an OAuth token with live.room.subscribe scope.
4. Enter your room ID from your LIVE stream URL and paste the token above. ⚠ TikTok's public Live Chat API is currently in limited beta. For most streamers, a third-party overlay tool (Restream, Streamlabs) that supports TikTok may be easier.
Text-to-speech
Filter pipeline
Every message — Twitch, YouTube, TikTok, or test — runs through this chain in order. Each filter can drop the message (TTS skipped) or bleep matched words.
Custom Chat Commands
Define ! commands that viewers can type. When detected the configured response is spoken instead. Use {user} to insert the viewer's name.
Test Chat Message
Simulate a chat message to test filters, commands, and TTS — without going live. Press Enter in the message field to send quickly.
🎵 Background Music
Play background music while you stream. Paste a YouTube URL or upload an MP3/MP4 file. Music loops automatically.
0.30
No track loaded
🎵 Custom UI Sounds
Upload your own audio clips to replace the built-in sounds for each event. Supports MP3, OGG, WAV. Click Test to preview. Leave empty to use the default synthetic sound.
0.50
Live chat feed
0messages0queued
KILL SWITCH ARMED — TTS muted. Press Ctrl+Shift+K or click Kill switch again to disarm.
0 queuedmax 25
Idle — waiting for chat messages…
No messages yet. Connect a platform above, or use the Test Chat panel to try things out.
Your credentials and tokens stay in your browser only — nothing is sent to any external server by NarrationStudio itself. Twitch uses OAuth implicit-grant (token stored in localStorage). YouTube reads via the Data API v3 polling endpoint.