Kalamo.

vMix & OBS integration

Send Kalamo live translation captions into your livestream or onto a screen. Three ways: a vMix title data source, a transparent browser overlay for vMix and OBS, and a full-screen HDMI output for a TV in the room.

How it works

In Kalamo, a room is "one person speaks, many people read". A host captures the speaker's audio once. Kalamo translates it into each of the room's languages and fans the captions out to everyone listening. The same caption stream that reaches phones can also reach your broadcast software or a screen.

There are three output surfaces, all reading from that one live stream:

  • Browser overlay: a transparent web page that vMix or OBS load as a source. Updates in real time, no plugins.
  • vMix data source: an XML or CSV feed vMix polls and binds to one of its own title designs.
  • Screen / HDMI: the host's "Present on screen" mode, a full-screen display for a TV in the room.

The integration is read-only and needs nothing installed: vMix and OBS reach a normal https://kalamo.ai URL.

Before you start

You need three things:

  1. A room. Create one from Kalamo for organizations (the host console is at /room/host).
  2. The room's code, for example ABC123.
  3. The language you want on screen, spelled exactly as the room offers it (for example English, Polish, German).

Throughout this guide, replace ABC123 with your room code and English with your language.

Transparent overlay (vMix + OBS)

The overlay is a styled lower-third on a transparent background. It updates in real time and works the same in both tools. The URL is:

https://kalamo.ai/room/ABC123/overlay?lang=English

In OBS

  1. In Sources, click + and add a Browser source.
  2. Paste the URL above.
  3. Set Width 1920 and Height 1080.
  4. Click OK. The captions appear over your scene with a transparent background.

In vMix

  1. Click Add Input, then More, then Web Browser.
  2. Paste the URL and set the resolution to 1920x1080.
  3. Add the input to your scene. It alpha-keys over the program automatically.
The overlay is the most portable option: it works in OBS, vMix, and anything else with a browser or NDI source, with no keying and no polling delay.

Tune the look with query parameters:

?lang=English&pos=bottom&size=1.4&staleAfter=8

See the parameters reference for all options. pos sets the vertical position, size scales the font, and staleAfter clears the caption after a pause.

vMix title data source

Prefer to use your own vMix Title design? Kalamo also serves the latest caption as an XML (or CSV) feed that vMix polls and binds to a title field. This option is vMix only; OBS has no equivalent.

https://kalamo.ai/api/room/ABC123/vmix?lang=English

Set it up

  1. Open Settings, then Data Sources, then Add, then XML.
  2. Tick Use URL and paste the URL above.
  3. Set the refresh interval to 1 second.
  4. Add or open a Title input, then bind a text field to the data source, column text, row 1.

The feed returns a single row with these fields:

FieldMeaning
textThe current translated line.
prevThe previous line.
langThe target language.
sourceThe spoken (source) language.
updatedTimestamp of the current line.

Example XML response:

<captions>
  <row>
    <text>Welcome to the conference</text>
    <prev>Thank you all for coming</prev>
    <lang>English</lang>
    <source>Lithuanian</source>
    <updated>2026-06-12T10:00:00Z</updated>
  </row>
</captions>

Add &format=csv for a CSV feed instead. The endpoint never errors: before the first caption (or for an unknown room) it returns a blank row, so vMix keeps polling cleanly.

Big screen over HDMI

To put the captions on a TV in the room (not in a livestream), use the host console's stage display. This is a normal full-screen output, so it works over any HDMI connection.

  1. Start a room at /room/host and begin speaking so captions flow.
  2. Connect the device to your TV by HDMI (mirror or extend the display).
  3. Click Present on screen.
  4. Show the big QR code so the audience can join, then toggle it off to leave the live translation with a small join code in the corner.
  5. Use the on-screen language tabs to switch which language the screen shows.
The screen output is a full opaque picture for the audience. It is separate from the vMix and OBS options above, which are for compositing captions into a livestream.

Transparency, HDMI, NDI & chroma key

A common question: can you get a transparent caption feed over HDMI? No. HDMI (and SDI) carry opaque video with no alpha channel. The browser overlay looks transparent because vMix and OBS load the page themselves and keep the alpha internally. Nothing is sent as a video signal.

If your captions must come from a physically separate machine, you have two options:

  • NDI: NDI can carry alpha over the network. Output the overlay page as an NDI source (for example via OBS) and add it in vMix. Clean transparency, no cable.
  • Chroma key: render the captions on a solid green background, send that over HDMI through a capture card, and key out the green in your switcher. This is the classic fallback when alpha cannot travel a cable.
If the broadcast machine can reach the internet, skip HDMI for captions entirely and use the overlay or data source. Both keep perfect transparency because the software renders the text itself.

Parameters reference

All parameters are optional query-string values appended to the URL.

ParameterApplies toValuesDefault
langbothAn exact target language, e.g. Englishrequired
staleAfterbothSeconds before a caption clears during silence; 0 keeps it8
posoverlaybottom, top, centerbottom
sizeoverlayFont scale, e.g. 1.4 (0.5 to 3)1
formatdata sourcexml or csvxml

Which method should I use?

GoalUse
Captions in an OBS livestreamOverlay (Browser source)
Captions in vMix, simplestOverlay (Web Browser input)
Captions inside your own vMix title designData source (XML/CSV)
Captions on a TV for the room audienceScreen / HDMI (Present mode)
Captions from a separate machine, transparentNDI, or chroma key over HDMI

FAQ

Does the transparent overlay work in both vMix and OBS?

Yes. The overlay is a normal web page with a transparent background. Both vMix (Web Browser input) and OBS (Browser source) render it with alpha, so the captions composite over your program with no extra keying.

Can I send transparent captions over HDMI?

No. HDMI carries opaque video only, with no alpha channel. The transparent overlay works because vMix or OBS load the URL directly and keep the transparency internally. If captions must travel from a separate machine, use NDI (which carries alpha) or put the captions on a green background and chroma-key them.

How much delay is there?

The translation pipeline runs on roughly 6-second audio chunks. The overlay updates in real time over a WebSocket. The vMix data source adds up to about 1 second of polling on top. If you need captions to line up with delayed program audio, add a matching program delay in your switcher.

Do I need an account?

You need a room, which requires a Kalamo for organizations subscription. Once a room is live you have its code and the languages it offers, which is all the integration needs.

What do I put for the language?

The exact language name the room is translating into, for example English, Polish, or German. It must match one of the room’s configured target languages. Add one input per language for multiple on-screen languages.

Ready to run translation for your event? Start with Kalamo for organizations & events.