What Is a Browser Source in OBS

OBS Studio — and its forks like Streamlabs and StreamElements OBS — is built on a plugin architecture that lets you add different types of "sources" to a scene. A browser source is one of those source types. Under the hood, it embeds a lightweight Chromium browser engine directly inside OBS. Instead of capturing your desktop or a webcam, it renders a live URL as a visible layer inside your scene.

The result is a fully functional web page rendered transparently on top of everything else in your stream. The page can contain anything a normal website can: text, animated graphics, real-time data from a server, or interactive elements. Because the browser source supports CSS transparency (background: transparent), you can make the page background invisible so only the content — say, white subtitle text — floats over your game footage.

Browser sources were originally designed for stream alerts (Twitch follower notifications, donation popups), but streamers quickly realized the same mechanism could power live captions, real-time translated subtitles, chat overlays, and custom HUDs. Today it is one of the most powerful and versatile features in OBS.

You add a browser source the same way you add any other source: click the + button in the Sources panel, select Browser, give it a name, and paste in a URL. OBS handles the rest — loading the page, rendering it at the dimensions you specify, and compositing it into the scene at whatever layer position you choose.

How URL-Based Overlays Work

When OBS loads a browser source URL, it opens that page in its embedded Chromium renderer and composites the result into your scene in real time. The key is how the web page on the other end is built.

A well-designed overlay page does a few things:

  • Sets body { background: transparent; } so OBS composites only the content pixels, not a solid background
  • Opens a persistent real-time connection or Server-Sent Events connection to a backend server
  • Listens for incoming data (subtitle text, alert events, etc.) and updates the DOM instantly without a page reload
  • Uses CSS transitions for smooth text animations without blocking the render thread

The backend server is where the real work happens. For a subtitle overlay, the server is transcribing your microphone audio via a speech-to-text engine, then pushing the resulting text to every connected browser source client over the real-time connection. The browser source page receives the text and renders it within milliseconds.

From OBS's perspective, it just sees a webpage updating its content. It does not care what the content is — it renders whatever the Chromium engine produces and composites it on top of the scene. This is why the same mechanism works equally well for follower alerts, donation goals, live captions, translated subtitles, and even interactive polls.

Important: The overlay URL must remain accessible while you stream. If your internet goes down or the overlay server has an outage, the browser source will go blank. StreamTranslate runs on a high-availability backend so this is rarely an issue in practice.

How StreamTranslate Uses It

StreamTranslate is built around the OBS browser source model. When you sign up and set up a stream room, StreamTranslate generates a unique overlay URL tied to your account. That URL is the page you paste into OBS as a browser source.

Here is the full flow from your voice to subtitles on screen:

  1. You go live. Your microphone audio is captured by StreamTranslate via the browser control panel or a direct audio feed.

  2. StreamTranslate's speech-to-text engine transcribes the audio in real time, typically within 500–900 milliseconds of you speaking.

  3. If you have translation enabled, the transcript is sent through a neural translation engine and converted to your chosen target language — English, Spanish, Portuguese, Japanese, Korean, and many more.

  4. The translated subtitle text is pushed over a real-time connection to your browser source overlay URL.

  5. The overlay page renders the text with your chosen styling (font size, color, background pill, position) and OBS composites it transparently over your stream.

  6. Viewers watching on Twitch, YouTube, or Kick see the subtitles in real time, right on screen — no viewer-side setup required.

The entire chain — speech to subtitles on screen — takes under one second in optimal network conditions. StreamTranslate lets you customize the overlay appearance from the control panel without touching code: adjust font size, choose text color, toggle background pills, and switch target language on the fly without needing to restart OBS or refresh the browser source.

No OBS plugin required. StreamTranslate works with a plain browser source URL. You do not need to install any OBS plugins, no Lua scripts, no Python. Just the URL pasted into a standard browser source.

Setting Width, Height, and FPS

When you add a browser source in OBS, you are prompted to set dimensions and frame rate. Getting these right ensures the overlay fills your canvas correctly and does not introduce unnecessary CPU load.

Recommended settings

  • Width: 1920
  • Height: 1080
  • FPS: 30 (subtitle text does not need 60fps to look smooth)
  • Background color: uncheck "Use custom background color" or set alpha to 0

Match these dimensions to your OBS canvas resolution. If your canvas is 1280x720, use 1280x720 for the browser source. If you set the browser source larger than your canvas, OBS will scale it down automatically — wasting memory. If you set it smaller, subtitles may clip at the edges.

Custom CSS in OBS browser source

OBS browser sources include a "Custom CSS" field at the bottom of the properties panel. This CSS is injected into the overlay page on top of whatever styles the page already has. You can use this to tweak positioning or appearance without modifying the overlay URL:

/* Force subtitle container to bottom of screen */ .subtitle-wrap { top: auto !important; bottom: 60px !important; } /* Increase font size */ .subtitle-text { font-size: 46px !important; } /* Make background pills more opaque */ .subtitle-pill { background: rgba(0,0,0,0.75) !important; }

Custom CSS changes take effect immediately after you click OK — no need to refresh the browser source. This is the fastest way to iterate on your overlay style without logging back into the StreamTranslate control panel.

Transparent background

The single most important setting: in OBS browser source properties, scroll down and make sure Use custom background color is unchecked, or set the color's alpha channel to 0. If a background color is set, OBS will paint that color behind the overlay page, blocking your game capture layer. StreamTranslate's overlay page sets body { background: transparent } automatically, but the OBS-level background color overrides it if left enabled.

Browser Source vs Capture Card Overlay

Before browser source overlays became mainstream, streamers who wanted on-screen graphics had two options: software OBS plugins (limited and often unstable) or capture card overlays (hardware-level compositing). Browser sources replaced both for most use cases.

Feature Browser Source Overlay Capture Card Overlay
Hardware required No — software only Yes — physical card ($150+)
Setup time Under 2 minutes 15–45 minutes
Real-time updates Yes — real-time connection push Depends on firmware
Custom styling Full CSS control Limited to card software
Works on laptop Yes Requires USB/PCIe slot
CPU overhead Low (1–3%) Near zero (offloaded)
Portable (streaming from a different PC) Yes — just paste the URL Card stays with the hardware

Capture card overlays are still used in broadcast TV production where zero CPU overhead is critical and hardware budgets are high. For the vast majority of streamers — gaming, IRL, podcasting — a browser source overlay is faster to set up, more flexible, and completely free of additional hardware cost.

The only real trade-off is CPU: a browser source spins up a Chromium renderer inside OBS. On a modern CPU it is negligible. On older or underpowered hardware (sub-4-core CPUs), it adds a small but measurable load. Setting the browser source to 24 FPS instead of 30 reduces that overhead by roughly 20% with no visible quality difference for text overlays.

Common Troubleshooting

Browser sources are reliable once configured, but these four issues account for nearly every support request:

Problem: Black or white background behind subtitles
Fix: Open the browser source properties and scroll to the bottom. Uncheck "Use custom background color" or click the color swatch and drag the alpha (A) slider all the way to 0. Also add body { background: transparent !important; } to the Custom CSS field. If the background persists, right-click the source, select Interact, then press Ctrl+Shift+R to force a hard reload of the overlay page.
Problem: Subtitles not updating / frozen text
Fix: The real-time connection connection dropped. Right-click the browser source and select Refresh. If it keeps dropping, paste the overlay URL into a regular browser tab to verify it loads and stays connected. Also check the "Shutdown source when not visible" option — if checked, the source disconnects every time you switch away from the scene. Uncheck it to keep the connection alive across scene switches.
Problem: Subtitles hidden behind game capture
Fix: Source layer ordering in OBS works top-to-bottom in the Sources panel. Sources listed higher in the panel render on top. Drag your browser source above the game capture (or display capture) source in the list so subtitles composite on top of your game. If you use multiple scenes, check each scene individually — a browser source added to one scene does not automatically appear in others.
Problem: Browser source shows a blank or empty page
Fix: Verify the overlay URL is correct and your StreamTranslate room is active. Open the URL directly in Chrome to confirm the page loads. If OBS shows a blank page but Chrome renders it fine, try adding * { visibility: visible !important; } to the Custom CSS field and refreshing. Also check that OBS has network access — some corporate firewalls or VPNs block real-time connection connections.

Advanced Tips

Dual-language subtitles with multiple browser sources

One of the most compelling use cases for StreamTranslate is running dual-language subtitles simultaneously — for example, English and Spanish at the same time for a bilingual audience. This is straightforward with OBS: add two separate browser source layers to your scene, each pointing to a StreamTranslate overlay URL configured for a different target language. Use Custom CSS on one of them to move the subtitle container to the top of the screen so the two sets of captions do not overlap:

/* Move this overlay to the top of the screen */ .subtitle-container { top: 40px !important; bottom: auto !important; }

This gives viewers both languages in real time. Pair it with different text colors — white for one language and a yellow or green tint for the other — so viewers can instantly distinguish which line is which without reading both.

Positioning subtitles precisely with CSS

The overlay page uses absolute or fixed positioning for the subtitle container. You can override the exact position using pixel values or percentages in the Custom CSS field without touching the overlay URL:

/* Pin to bottom-center, 80px from bottom edge */ .subtitle-container { position: fixed !important; bottom: 80px !important; top: auto !important; left: 50% !important; transform: translateX(-50%) !important; width: 80% !important; text-align: center !important; }

This is especially useful if your stream layout has a webcam or facecam in the lower portion of the frame — push the subtitles up so they do not cover your face. Adjust the bottom value until the position feels right, then click OK to apply instantly.

Using a browser source across multiple scenes with Scene as Source

If you have three or four scenes in OBS (gameplay scene, intermission, facecam-only, etc.), you do not want to add and individually configure a browser source in every single one. Instead, create a dedicated Subtitles Scene that contains only the browser source. Then, in every other scene, add a "Scene" source pointing to your Subtitles Scene. OBS will composite the subtitles scene contents — including the live browser source — into whatever scene you are on. This means one URL, one configuration, applied consistently everywhere without duplicating settings or risking them getting out of sync.

Hardware acceleration for browser sources

If you have a discrete GPU, enable hardware acceleration in OBS: go to Settings, click Advanced, scroll to "Browser Source Hardware Acceleration" and check the box. This offloads the Chromium rendering to your GPU, freeing CPU cycles for video encoding. On integrated graphics, leave it unchecked — it can sometimes cause the browser source to render incorrectly on lower-end Intel or AMD integrated GPUs where VRAM is shared with system RAM.

Frequently Asked Questions

Do I need OBS Studio or can I use Streamlabs?
Both work. Streamlabs OBS, Streamlabs Desktop, and SLOBS all include a browser source component that behaves identically to OBS Studio's. Paste the same URL, set the same 1920x1080 dimensions, and check "Shutdown source when not visible" if you want to conserve resources between scenes. The only difference is where you find the source menu — in Streamlabs it lives under the + button in the Sources panel, same as OBS Studio. Any streaming tool built on the OBS browser source engine supports transparent URL-based overlays. StreamTranslate works with all of them out of the box.
Why is my browser source black instead of transparent?
This is the single most common OBS browser source issue. By default, OBS renders browser sources with an opaque background. To fix it: right-click your browser source, click Properties, and scroll to the bottom of the settings panel. Uncheck "Use custom background color" entirely, or click the color box and drag the alpha slider to 0. In the Custom CSS field, also add: body { background: transparent !important; }. The overlay page itself must also output a transparent background, which StreamTranslate does automatically. If the background is still black or white after these changes, right-click the source, select Interact, then press Ctrl+Shift+R to force a hard reload of the overlay page.
Can I resize the subtitle text?
Yes, in two ways. The easiest is the StreamTranslate control panel — it lets you adjust font size, font weight, text color, and background pill styling directly from the UI with no code. Changes propagate live to your overlay without restarting OBS or refreshing anything. If you want finer control, add custom CSS in the OBS browser source properties panel. For example: .subtitle-text { font-size: 48px !important; } overrides the default size. You can also scale the entire browser source layer using OBS's built-in transform tool (right-click the source, click Transform, then Edit Transform) to proportionally scale the overlay up or down without touching any code.
Does it affect stream performance?
Minimally. A browser source runs a lightweight Chromium renderer inside OBS, which uses a small amount of CPU and GPU. At 30 FPS with a simple subtitle overlay, the overhead is typically under 1–2% CPU on a modern processor. You can reduce it further by setting the browser source FPS to 24 or even 15 — subtitle text does not need high frame rates to look smooth. Checking "Shutdown source when not visible" also releases resources when you switch away from that scene. If you are running an older or low-end CPU, monitor your encoding load in OBS's Stats window (View, then Stats) and lower the browser source FPS first if you see dropped frames or high encoding times.
Can I use it in scenes with multiple sources?
Yes, and this is one of its biggest advantages. A browser source overlay is just another layer in your OBS scene stack. You can run it alongside game capture, webcam, donation alerts, chat boxes, and any other source simultaneously — they do not interfere with each other. The key is layer ordering: make sure your browser source sits above the game capture layer in the Sources panel so subtitles render on top of your gameplay. You can also add the browser source to a dedicated subtitles scene and reference it across multiple scenes using OBS's Scene as Source feature, so you only maintain one overlay URL and one set of settings no matter how many scenes your layout has.

Add Live Translated Subtitles to Your Stream

StreamTranslate generates your overlay URL in seconds. Paste it into OBS, go live, and your viewers get real-time subtitles in their language — automatically.

Start Free — No Credit Card