TizenBrew application module for Moonfin Smart TV.
This repository repackages the official Moonfin Tizen .wgt release as a TizenBrew-compatible GitHub module.
- Install and open TizenBrew.
- Add a GitHub module.
- Enter:
tenda96/moonfin-tizenbrew@main
TizenBrew stores GitHub modules internally as gh/tenda96/moonfin-tizenbrew@main. Do not enter gh:tenda96/moonfin-tizenbrew; that is not the jsDelivr path TizenBrew resolves.
Using @main is intentional. TizenBrew downloads GitHub modules through jsDelivr, and the unpinned path can keep stale files for longer than expected. If a test needs a completely fixed build, use a full commit SHA instead of main.
If TizenBrew still shows an old version, remove the module, restart TizenBrew, and add tenda96/moonfin-tizenbrew@main again.
npm run verifyIf node is not on your PATH, run the same script with any local Node.js executable:
node scripts/verify-tizenbrew-module.mjsThe verification checks the TizenBrew manifest, local asset paths, adapter bootstrap, and the Moonfin bundle patches used to avoid native AVPlay inside TizenBrew.
This repository includes a TizenBrew playback diagnostic overlay for debug builds. Normal builds do not load it by default because it can interfere with Samsung remote color-key menus.
During a TV test, start any video and look for lines such as:
playback.info
playback.source
media.src
xhr.start / xhr.done
media.error / media.waiting / media.stalled
probe.canPlayType
probe.mse
Press the yellow remote key to show or hide the overlay. The same log is also saved in browser storage under moonfin_tizenbrew_diagnostics and exposed as window.__MOONFIN_TIZENBREW_DIAG__.dump() when remote debugging is available.
TizenBrew loads modules as web pages served from its local server. In that environment a packaged .wgt does not get the same Samsung native APIs as an installed Tizen app.
This module injects a small compatibility adapter and forces Moonfin's HTML5 playback path when window.__MOONFIN_TIZENBREW__ is present. The TizenBrew profile prefers TV-side decoding through DirectPlay/DirectStream for MP4/M4V H.264 or HEVC/H.265, common AAC/MP3/AC3/EAC3 audio, and compatible WebM/VP9 media. If the browser cannot play a source directly, Jellyfin can still fall back to HLS server transcoding.
Native Samsung AVPlay remains intentionally unavailable; use the official Moonfin .wgt if you need the native AVPlay player.
More context is documented in:
The GitHub Action downloads the latest Moonfin Tizen Regular .wgt, extracts it into app/, injects the TizenBrew helper scripts, and runs:
node scripts/patch-moonfin-bundle.mjsRun the same command locally after manually replacing the contents of app/.
Moonfin source project:
https://github.com/Moonfin-Client/Smart-TV
TizenBrew: