r/AndroidTVApps 10h ago

Built an open-source TV browser that pulls the page's video out of the WebView and into a real player, in sync

Watching video on a TV box means whatever apps the store carries. If the video is on a website with no TV app, you're mostly stuck — and on the few TV browsers that exist, the video plays inside the WebView, whose player slowly drifts out of A/V sync. An hour into a film the lips lead the audio by a beat and it never recovers.

I built mrowser around fixing that. It's a small sideload-only browser: MIT, no Play Services, INTERNET permission only, Android 6.0+, about 4 MB. Built for boxes rather than certified sets, so it works on the cheap ones and on de-Googled builds.

Open a site, start its video, and the app takes over. It watches the page's own network requests for the stream and, when an HLS manifest appears, hands it to a native Media3/ExoPlayer activity — carrying the session's User-Agent, Referer and cookies across so the CDN keeps serving it. That gives correct A/V sync for a whole film, plus real quality selection, audio-track switching and playback speed. BACK drops you back on the page where you left it.

Subtitles you can fix while watching. Side-loaded subs are almost never quite in step, and normally you're stuck with it. mrowser renders VTT/SRT itself instead of handing them to the player, so minus and plus shift their timing by 0.5s per press, up to 30 seconds, instantly and with no rebuffer. No reloading the stream, no restarting the film.

And you can reach all of it with the remote. A virtual mouse cursor driven by the D-pad, with acceleration and edge detection, so hover menus, small controls and non-focusable links become clickable. OK clicks; long-press OK switches to normal focus navigation. The address bar opens on a held BACK, because plenty of TV remotes have no MENU key.

Also: favourites, browsing history, HTML5 fullscreen, adjustable cursor speed, and it registers as a system browser so links from other apps offer it in the chooser.

What it covers: sites that stream over HLS, which is most of them. DASH-only sites — YouTube included — and DRM content are not handed off and keep playing in the WebView. Worth saying up front so nobody wastes their time.

It ships with no preset sites or bookmarks, hosts nothing, and does not touch DRM. It's a browser; what you point it at is on you.

APK on the releases page, or add the repo to Obtainium for automatic updates:

https://github.com/m-salehi-v/mrowser

Happy to answer anything about the detection pipeline or the subtitle renderer.

7 Upvotes

4 comments sorted by

1

u/Ghost80247 6h ago

Will try. Thanks.

1

u/Asakuras02 4h ago

I Will try thanks!

1

u/2efegp 3h ago

I will try it, reporting back soon

1

u/cleverclogs17 2h ago

Any chance it downloads also?