A web browser you can sideload onto a Samsung TV — the one the TV should have shipped with.
Overscan is the picture area a TV pushes past the visible edge, which is roughly what this does to the web on a television.
The built-in Samsung browser tells websites it's a TV, so sites hand it a stripped down "smart TV" page instead of the real one. Overscan wraps the TV's own web engine in an app that behaves like a desktop browser:
- Sites load their normal desktop version, because the browser identifies itself as desktop Chrome.
- JavaScript stays on, so pages aren't broken or half-rendered.
- The remote works like a mouse — the D-pad moves a pointer, OK clicks.
- Favourites and history, on a start screen built for a TV.
- You can type with an on-screen keyboard driven by the D-pad, into the address bar and into search boxes on the page. QWERTY, AZERTY, QWERTZ or alphabetical, whichever you're quickest on, with capitals and a full symbol page — an e-mail address and a password both fit.
- It can open on the page you want, instead of its own start screen.
Requested in tizen-community-packages#24.
| Your TV | Download | Notes |
|---|---|---|
| 2018 (Tizen 4.0) | Overscan-tizen4.tpk |
The oldest TVs that can run this. Chromium 56, so expect real limits. Untested. |
| 2019–2020 (Tizen 5.0–5.5) | Overscan-tizen5.tpk |
Needs a partner certificate to sign — see below. Old engine, so expect some sites to misbehave. |
| 2021–2023 (Tizen 6.0–7.0) | Overscan-tizen6.tpk |
Not yet tested on hardware. |
| 2024 (Tizen 8.0) | Overscan-tizen8.tpk |
Not yet tested on hardware. |
| 2025+ (Tizen 9.0–10.0) | Overscan-nui.tpk |
Tested on the Tizen 10 emulator. Modern engine — sites generally just work. |
2017 and older sets (Tizen 3.0, 2.x) cannot run Overscan. Samsung only added .NET to TVs with the 2018 range, so there is no runtime for the app to start in — this is a platform limit, not something a build can work around.
Pick the package for your platform, not a newer one: a TV refuses to install a
package whose api-version is above its own platform version (you get
[118, -4]). Older packages do install on newer sets, but you lose whatever that
generation added.
Grab the packages from the latest release.
Not sure which platform your set is? sdb capability prints platform_version.
Sideloading a TV app means signing the package with your own certificate and pushing it over the network. If you've done this before, nothing here is unusual; if you haven't, Apps2Samsung does the signing and installing for you.
- Put the TV in Developer Mode and note its IP address.
- Sign the
.tpkwith your certificate. The packages in releases are default-signed, which no TV accepts. - Install it, and launch Overscan from the TV's Apps list.
On a 2019/2020 set the package must be signed with a partner-level certificate. That isn't a preference — the TV's web engine is bolted to its DRM stack, and without a partner certificate the app is not allowed to load it, so the browser simply won't start. Newer sets don't have this restriction.
| Key | What it does |
|---|---|
| D-pad | Move the pointer (speeds up while held) |
| OK | Click. On a text box, opens the keyboard for it |
| hold OK | Open the menu — everything below, in a list you can walk |
| Back | Close overlay → back a page → exit |
| CH ▲ / ▼ | Page up / page down |
| 0 | Address bar |
| 1 | Switch how the browser identifies itself, and reload |
| 2 | Pointer style |
| 3 | Diagnostics (what the page thinks it's talking to) |
| 4 | Give the keys to the page, for its own navigation |
| 5 | Type into the text box you last clicked |
| 6 | Page-fit correction (for stretched rendering) |
| 7 | Show/hide the key hints |
| 8 | Keep this page in favourites (press again to remove) |
| 9 | Back to the start screen |
| Info | Images on/off — the biggest speed-up on an old set |
The slim remote that ships with recent sets — The Frame's among them — has no numpad at all, so none of the rows above are reachable on it. Hold OK for a second and the same list appears on screen; the D-pad moves through it and OK picks. A menu, tools or play/pause button opens it in one press if your remote has one.
If a button of yours does nothing, press it once and look at the bottom of the remote card in the corner: it prints the name the TV gave that button. Send us that name and we'll wire it up.
The bottom row is where everything that isn't a letter lives:
| Key | What it does |
|---|---|
| @ | Always one press away — you need it for every sign-in |
| shift | Capitals. Releases itself after one letter, like a phone |
| sym | A whole page of punctuation — brackets, quotes, maths, currency — press it again (it now reads abc) to go back |
| start | Makes what you typed the page Overscan opens on. Press it with nothing typed to go back to the start screen |
| layout | QWERTY (the default), then AZERTY, QWERTZ and the alphabetical grid. It shows the layout you're on, and the choice is remembered |
No — and on a slow TV it can be slower. Overscan uses the TV's own web engine, so the rendering speed is exactly the same; what changes is which version of a site you get, and the desktop version is usually the heaviest one. If YouTube takes two minutes in the built-in browser, the desktop YouTube will not be quicker.
What does help on an older set:
- Press
Infoto turn images off. The engine can't be made faster, but it can be given far less to do, and this is the biggest single win. - Press
1to pick the mobile version of a site. Mobile pages are much lighter than desktop ones and often render better on an old engine. - Use a site's TV interface where one exists —
youtube.com/tvis built for exactly this hardware and is dramatically faster than the desktop site.
- The engine is the TV's, not ours. An app can't ship its own Chromium, so on a 2019 set you're browsing with a 2017 engine (Chromium 63) no matter what. Overscan fixes how the TV identifies itself; it can't make an old engine understand a modern site. On a 2025 set the engine is Chromium 130 and this caveat mostly disappears.
- Rendering is stretched on Tizen 5.0 — the engine lays pages out at one size
and paints them at another. Key
6toggles a correction; this is an open bug. - No downloads or file uploads yet.
- Captchas and other embedded frames are clicked through a different path than the rest of the page — a real mouse event fed to the TV's canvas, because nothing an app injects into a page can reach inside a frame served from another site. On the 9.0+ build there is no canvas to feed, so those frames stay unclickable there.
- The TV's own on-screen keyboard can still flash up briefly on sites that focus their search box as soon as they load.
./build.sh # all packages -> dist/
./build.sh tizen5 # just the 2019/2020 oneYou'll need the .NET 6 SDK with the tizen workload, plus the .NET Core 3.1 SDK
for the older packages. CI builds all of them on every push — see
.github/workflows/build.yml.
Overscan is a .NET app that hosts the TV's own web engine and adds the things a TV browser needs: a pointer driven from the remote, an on-screen keyboard, and a user-agent override. The pointer and typing are implemented as JavaScript injected into each page, because the TV's engine gives an app no way to synthesise mouse input — except through EFL's own canvas, which is how clicks reach inside an embedded frame.
Because the web-view API changed twice across TV generations, there are three builds from one shared source tree rather than one universal package.
The full story — API archaeology, the DRM permission wall, the diagnostics built
for TVs that can't be logged, emulator setup — is in
docs/INTERNALS.md.
MIT — see LICENSE.
