Skip to content

About

Przeglądarka na Samsung Smart TV / Tizen 9. Cel: płynne oglądanie, obsługa pilotem i domyślna ochrona przed reklamami oraz popupami. Wczesna alpha, C#/.NET.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Isko — a browser for Samsung Smart TVs

Isko logo

Browse the web from your couch, using your TV remote.

License: MIT Target: Tizen 9 Status: early alpha

Isko is an open-source Samsung Smart TV web browser built in C# / .NET with Tizen NUI WebView. It pairs a native browser shell and remote-controlled cursor with the website's own player. The goal is responsive navigation and stable, long viewing sessions on a TV.

The core experience is open a page → choose a live stream or video → watch smoothly, with ad and popup protection on by default. Simplicity and low resource use are product priorities. Poland is the primary audience; Polish is the default UI language. See the product direction (Polish). The current limited protection is not yet the intended uBlock-like experience.

Install on your TV · Roadmap · Contribute · Report a bug · Po polsku

Source snapshots: releases · changelog.

What you can explore

  • Remote-first navigation: a native pointer, click and edge scrolling, with bounded page-input dispatch to keep repeated keys from growing an unbounded queue.
  • TV browser shell: address/search entry, home tiles, favorites, history and an on-demand control bar that leaves room for the page.
  • Native playback: the TV's WebView cannot decode H.264, so when a page requests a streaming manifest (HLS or DASH) right after you press OK, Isko plays it with the TV's own hardware player: OK pauses, left/right seek, Back returns to the page. A menu item plays a detected stream manually. See native playback.
  • Default-on protection (early): a small rule engine with a bundled starter list of ad-network hosts, a popup policy based on the user's last remote press, removal of full-viewport ad layers and click traps (the remote click goes through them to the page), and a refusal of file downloads. A site exception turns the filters off. It is breakage-averse by design, not a complete ad blocker; see protection.
  • Your installation: build and sign locally using your own TV configuration. The normal package has no remote-control server or runtime inspector enabled.

Project status

Early alpha for developers and curious TV owners. Source builds and portable checks pass; native compatibility and playback still need device validation. A page's own <video> cannot show H.264 on the tested TV (audio and VP9 play); streams are handed to the native player instead, which is verified on a test stream and not yet on real sites. Remote input, IME submit, cross-origin players, fullscreen and long sessions are active priorities. The current interface is primarily in Polish; localization contributions are welcome.

Distribution is source-only: bring your own Samsung signing profile and build for your TV. There is no universal signed installer or promise that every streaming site works. See the compatibility analysis and verification ledger for the evidence and limits.

Build and install for your own TV

You need a Tizen 9 TV, Node.js, .NET SDK 8 and Samsung's Tizen workload/CLI supporting net6.0-tizen9.0. Create your own Samsung TV signing profile. Follow the step-by-step setup (tools, certificate profile, TV; also po polsku), then:

git clone https://github.com/DewXIT/isko-tizen.git
cd isko-tizen
mkdir -p .local
cp tools/tv/config.example.json .local/isko-tv.json
# Edit only the local copy: tool paths, your signing profile, optional TV address.
node tools/tv/doctor.cjs          # checks tools, profile and TV connection, says what to fix
node tools/tv/package.cjs --dry-run
node tools/tv/package.cjs
# Explicitly opt in to connecting, installing and launching:
node tools/tv/package.cjs --install

Packaging does not contact a TV without --install. Normal output disables the runtime inspector and debug symbols, remaps source paths and audits package contents. Private configuration, keys, profiles and output are ignored by Git. Each installer signs locally; a device-specific signed TPK should remain private. See installation.

Remote controls

These are the current code mappings; key names and IME behavior can vary by TV.

Input Browser behavior
Arrows Move shell focus, or move the pointer on a page; scroll at page edges.
OK / Enter Activate the shell item or request a click under the pointer.
Back Close an overlay; on a page, leave HTML fullscreen or go back in history, then show controls with Close selected. With no history the bar's Back slot becomes Close.
Menu / color key Toggle page controls; on home, open the menu, when the remote provides that key.

Page clicks are synthetic and cannot grant trusted browser activation. If the keyboard's Go action does not submit, choose the address suggestion below the field. Some minimal remotes do not send Menu/color keys. See known limits.

Local verification

dotnet build src/Isko.Tv/Isko.Tv.csproj -c Release
dotnet run --project tests/Isko.Core.Tests -c Release -- src/Isko.Tv/bin/Release/net6.0/Isko.Tv.dll
dotnet run --project tests/Isko.Protection.Tests -c Release
node tests/page-scripts.test.js
node tests/packaging.test.cjs
node tests/diagnostics.test.js
node tests/style.test.cjs
node tests/setup-tools.test.cjs
node tools/check-style.cjs
node tools/check-public-data.cjs
node tools/fixture-server/test-handlers.js

Before a device session read the device checklist.

These checks do not run the native application or prove video playback. The net6.0 target is reference compilation only. Samsung's device target and SDK versions remain separate requirements. Existing .NET 6 support warnings are visible.

Project layout

  • src/Isko.Tv: default browser shell and reviewed API12 engine hooks.
  • src/Isko.Core: view ownership, shell state, cursor and input buffer.
  • src/Isko.Protection: minimal policy and request-completion adapters.
  • src/Isko.Diagnostics: generic read-only platform-probe source, with no recorded data.
  • tools/fixture-server: generic controlled pages and original media generation.

Optional fixture servers bind loopback by default. See fixtures for explicit LAN testing. No test server or remote-control client is bundled into normal TV packages. The portable checks also run in GitHub Actions (workflow); see verification.

Read architecture, browser/video limits, engine hooks, API audit, protection and third-party notices.

Get involved

Help is welcome with remote navigation, video/compositing investigation, performance measurement, localization and setup docs. Start with the roadmap and contribution guide. No TV is needed for portable tests or docs.

Use Issues for reproducible bugs and proposals, and the security policy for private reports. Keep device identifiers, network addresses and signing material out of reports. If Isko is useful to you, a star helps others discover it; watch releases for updates.

License

MIT, with third-party notices. This is an independent community project, not an official Samsung product.

About

Przeglądarka na Samsung Smart TV / Tizen 9. Cel: płynne oglądanie, obsługa pilotem i domyślna ochrona przed reklamami oraz popupami. Wczesna alpha, C#/.NET.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages