Everyone on the call, in their own language.
Discord Translate joins your voice channel, transcribes and translates every speaker in real time, and posts clean captions to a text channel — readable on iPhone, Android, or desktop. No overlay, no app to install for your friends. Add it in one click — or self-host it free.
Two ways to use it
Add the hosted bot in one click and start free, or run your own copy for free with your own keys. Same bot, your call.
Add to Discord
- One click — nothing to install or host
- A one-time 15-minute free trial per server
- Then pay-as-you-go credits — only pay for what you use, never expire
- Or Pro $9.99/mo per server for unlimited — billed right in Discord
- All ~30 languages, DeepL + OpenAI cross-check
Run your own copy
- Unlimited — no limits, no subscription
- Uses your own OpenAI (+ optional DeepL) keys
- Deploy on Railway in ~15 minutes, runs 24/7
- Full source on GitHub — fork it, change it
What it does
Built for real multilingual conversations — English, Spanish, French, German, Japanese, Korean, Arabic, Indonesian, and ~30 more — where each person just speaks naturally.
Per-speaker translation
Hears each person in the channel separately and captions every speaker — not one merged stream.
Language by role
Give people a Discord role named after their language — French, 🇯🇵 Japanese, Bahasa Indonesia — and the bot knows exactly what each speaks. ~30 languages; flag-emoji role names work too.
Two engines, cross-checked
Translates with DeepL and OpenAI at once. Shows one when they agree, both when they differ — so you can trust it.
Any device
It's a server-side bot, so captions show up in Discord on iPhone, Android, and desktop — nothing for your friends to install.
Readable cards
Color-coded by speaker, with the translation up top and the original underneath — easy to read at a glance, even mid-call.
Always on
Auto-rejoins if the connection blips, posts captions in order, and runs 24/7 when hosted — it stays up so you don't have to babysit it.
Self-host it — step by step
Prefer to run your own copy? It uses your API keys, so it's private, unlimited, and free-to-cheap — about 15 minutes start to finish. (Just want the hosted bot? Add it in one click instead — no setup.)
Create your Discord bot
- Open the Discord Developer Portal → New Application, name it.
- Bot tab → Reset Token → copy it. That's your
DISCORD_TOKEN. - General Information → copy the Application ID. That's your
DISCORD_CLIENT_ID. - No privileged intents needed.
Invite it to your server
In OAuth2 → URL Generator, select:
- Scopes:
bot,applications.commands - Bot permissions: View Channels, Send Messages, Connect, Speak, Use Voice Activity
Open the generated URL, pick your server, authorize. While you're here, enable Developer Mode (User Settings → Advanced) and right-click your server → Copy Server ID — that's DISCORD_GUILD_ID (makes slash commands appear instantly).
Get your translation keys
- OpenAI required — create a key at platform.openai.com/api-keys. Does speech-to-text + translation.
- DeepL recommended — free key at deepl.com/pro-api. Adds a faster, stronger second translation for cross-checking. 500k chars/month free — plenty.
Set up language roles
In Server Settings → Roles, create a role named after each person's language and assign it. The name is what the bot reads — a flag emoji is welcome for visibility:
🇬🇧 English·🇫🇷 French·🇯🇵 Japanese·🇪🇸 Spanish·Bahasa Indonesia· …- ~30 languages — run
/translate languagesin Discord to see the full list.
Tip: boosted servers (Level 2) can give each role a small icon for extra visibility. No role? The person who starts the bot is the common language; everyone else uses the configured fallback.
Host it 24/7 (Railway)
The easiest always-on option — runs without your PC:
- Fork or use the GitHub repo.
- Railway → New Project → Deploy from GitHub repo → pick the repo. It builds automatically.
- In the service's Variables, add your keys:
Deploy — the logs should show [bot] logged in…; /translate registered. It auto-restarts if it ever crashes.
Prefer to run it on your own machine? npm install, copy .env.example → .env and fill it, then npm start (or double-click play.cmd on Windows).
Use it
- Join a voice channel.
- In any text channel, run
/translate join. - Talk — captions appear in that channel, one per sentence.
/translate leaveto stop.
On a video call? Minimize the call to Picture-in-Picture and keep the captions channel open underneath — faces and translations on one screen.
FAQ
What languages does it support?
~30 languages with full DeepL + OpenAI cross-checking — English, Spanish, French, German, Italian, Portuguese, Dutch, Polish, Russian, Ukrainian, Japanese, Korean, Chinese, Indonesian, Turkish, Arabic, and more — plus extras OpenAI handles on its own (Hindi, Vietnamese, Thai, Tagalog, Sundanese, Malay…). Run /translate languages in Discord for the live list. Each speaker's language is set by their Discord role.
How much does it cost?
Hosted bot: every server gets a one-time 15-minute free trial. After that, top up pay-as-you-go credits (you only pay for the minutes you actually use, and credits never expire) or go Pro for $9.99/month for unlimited. Both are billed natively inside Discord — Discord handles the payment, renewal, and tax; the card never touches us. One Pro subscription covers the whole server.
Self-hosting: you pay your own API keys, so it's just usage — transcription (OpenAI) is roughly $0.15–0.20 per hour of talking, translations are a fraction of a cent each, and DeepL's free tier (500k characters/month ≈ ~20 hours of calls) covers normal use at $0. Hosting on Railway is about $5/month. Nothing is shared or resold.
Free, credits, or Pro — what's the difference?
Free is a one-time 15-minute trial per server, so you can see it work. After that you can either top up credits and pay only for the minutes you use (bought in packs, they never expire), or go Pro ($9.99/month per server) to remove limits entirely for unlimited use (subject to fair use). All three get every language and the same per-speaker, dual-engine captions. Credits and Pro are bought and managed right inside Discord — cancel Pro anytime. Self-hosting your own copy is unlimited with no subscription at all.
Is it private?
Audio is sent to OpenAI (and DeepL, if enabled) to transcribe and translate — the same trade-off as any cloud voice tool. Nothing is stored by the bot. A fully self-hosted, on-device translation backend is on the roadmap for total privacy.
Does it work on a video call?
Yes — it only uses audio, so it works whether cameras are on or off. It never touches video. On mobile, use Discord's Picture-in-Picture to see faces and read captions at once.
How fast are the captions?
About 1.5–2 seconds after you finish a sentence. It waits for a brief pause, transcribes, translates, and posts — Discord can't stream a caption word-by-word, so a sentence at a time is the sweet spot.
Do my friends need to install anything?
No. It's a server-side bot — once it's in your server, everyone just reads the captions in Discord on whatever device they're already using.