Auto-Translate Twitch Chat with Streamer.bot: Full Setup Guide
A free Streamer.bot pack that translates foreign chat messages into your language, on Twitch, YouTube and Kick. It detects the language per message, ignores emote spam, and even lets you talk back with !say. Here's the full setup.

Someone types in your chat in Spanish. You don't read Spanish, so you send a thumbs up and hope it wasn't a question. After a while they stop typing, because being politely ignored feels worse than being ignored. That's the problem this pack fixes: a viewer writes in their language, and about a second later your bot posts the translation in yours.
It's a free Streamer.bot action pack that works on Twitch, YouTube and Kick. No monthly fee, and the default setup needs no API key. The clever part isn't the translation, it's the twelve filters that stop it translating KEKW, gg, links and copypasta, which is how most chat translators end up spamming the channel they were meant to help.
What you need first
- Streamer.bot 1.0.0 or newer, installed and running (download it here)
- Your Twitch, YouTube or Kick account connected in Streamer.bot under Platforms
- The Chat Translator pack, free from Ko-fi
Step 1: Download and import the pack
- 1
Grab the pack from Ko-fi
Head to the Chat Translator pack on Ko-fi. It's pay-what-you-want, so type 0 and hit Get Now, or leave a tip if you fancy.
- 2
Unzip it anywhere
There are a few files inside, but only one matters for setup:
streamerbot-import.txt. The rest is the C# source and documentation, included so you can read exactly what the pack does. - 3
Import into Streamer.bot
Open Streamer.bot, click Import at the top, and drag
streamerbot-import.txtinto the box. Click Import, then yes, and you'll see a new action group called Chat Translator with six actions and four commands.
Step 2: Set your language
Six actions sounds like a lot, but only one of them is yours to edit: [Translate] Configure. Double click it, then double click the Execute C# Code sub-action inside. Don't worry if you've never opened one of these, you're changing one line.
Find tr.targetLang near the top and read it carefully, because people get it backwards. This is the language you read, not the language you're translating from. You never tell it the source language, it detects that per message. English is en, Spanish is es, German is de, and so on.
Step 3: Test it
Type !trtest in your own chat. The pack pushes five sample messages through the real translation service: a Spanish sentence, a Russian one, KEKW, gg wp, and a plain English line. You should get back two translated and three filtered out. The refusal is the point. Three out of five is roughly the ratio to expect from live chat too.
Why it doesn't spam your chat
Chat isn't prose. It's emotes, one-word reactions, links and inside jokes, and a plain language detector will happily decide KEKW is Kurdish and translate it twenty times an hour. A real Spanish sentence comes back from the detector at confidence 1.00. KEKW comes back as Kurdish at 0.45. So the pack holds a confidence floor at 0.6 and stays quiet below it.
- tr.ignoreWords strips emote names before anything is even looked at. Add your channel's own emotes here, it's the highest value change you can make.
- tr.minChars skips anything under six letters, which kills gg, lol and KEKW on length alone.
- tr.minConfidence is the 0.6 floor. Messages in Cyrillic, Japanese or Arabic skip it, since there's nothing ambiguous about those scripts.
- tr.maxPerMin and tr.userCooldownSec cap how often it speaks, which doubles as raid protection.
- tr.ignoreUsers keeps Nightbot, StreamElements and friends out of the translator entirely.
The free provider, and when to upgrade
The default provider is google, which uses Google's public web endpoint. Free, no signup, works the second you import. Fair warning though: it's not an official API, and it will rate-limit you if a busy chat hammers it. If translation matters to your stream, a free DeepL API key gets you 500,000 characters a month and better translations. Paste the key into tr.apiKey, set tr.provider to deepl, press Run. It also supports self-hosted LibreTranslate if you'd rather nothing left your machine.
Talk back with !say
Everything so far translates your chat into your language. !say does the opposite. Set tr.audienceLang to the language your viewers speak, then type !say welcome, glad you made it and the bot posts it in their language. It's a small thing, but it's the difference between someone watching your stream and someone being at it.
The pack is free and includes the Streamer.bot import, all the commented C# source, and a tuning guide.
Download the Chat Translator freeIf something's not behaving, turn on tr.debug and check the Streamer.bot log first, it explains every decision. Still stuck? Join the Discord and I'll help you sort it.
Frequently asked questions
- Is the chat translator free?
- Yes. It's pay-what-you-want on Ko-fi. Type 0 at checkout and you get the full pack: the Streamer.bot import, all the C# source and the documentation.
- Does it work on YouTube and Kick as well as Twitch?
- Yes. The auto-translate action listens to chat on all three platforms, and the pack posts the translation back to whichever platform the message came from.
- Do viewers need to type a command to get translated?
- No. The pack detects the language of every message automatically and only speaks when something genuinely needs translating. There's also a !translate command for on-demand use.
- Why aren't my own messages being translated?
- Check tr.ignoreBroadcaster in the Configure action. If Streamer.bot has no separate bot account, it posts as you, and with that setting on, your own messages are skipped. Turn it off, press Run, and test again.
- Do I need an API key?
- Not for the default setup. The google provider needs no key at all. You only need a key if you switch to DeepL for higher volume and better quality, and DeepL's free tier covers about 8,000 chat messages a month.
