finds.dev← search

// the find

EdenwareApps/Megacubo

★ 605 · JavaScript · GPL-3.0 · updated Sep 2026

🎬 A powerful, intuitive IPTV streaming app supporting M3U playlists, EPG, and community lists. Available for Windows, macOS, Linux, Android & TV Boxes.

Megacubo is a cross-platform IPTV player that runs on Windows, macOS and Linux through Electron, and on Android through Capacitor, all from one JavaScript codebase. It plays user-supplied M3U and Xtream playlists with EPG, a miniplayer, Chromecast and a community list browser, and it hosts no content itself. It suits people who already have legitimate playlists and want one player across desktop and TV boxes, and developers who want to see how a dual-runtime Electron and Capacitor app is put together.

The build splits the Node main process and the renderer into separate rollup configs (rollup.config.node.mjs, rollup.config.renderer.mjs) and gives the renderer its own babel polyfill config. That split matters for old WebViews on cheap TV boxes, which is the environment a player like this has to survive. Channel metadata is plain JSON, one file per country under www/nodejs/channels, and translations live in a lang directory covering the 22 languages in the README, so list and translation contributions don't need code changes. The build tooling shows real use: a rollup GC plugin and a cache pruning script (scripts/rollup-gc-plugin.mjs, scripts/prune-rollup-cache.js) suggest the build cache grew large enough to need managing, and setup-ffmpeg.mjs deals with the native media dependency that most Electron media apps end up fighting.

Test coverage is thin in what's visible. The only root-level test is test.mjs, and the Android tests are untouched Capacitor template files (ExampleUnitTest.java, ExampleInstrumentedTest.java). Nothing in the visible tree tests the playlist parsing or playback paths, which is where users would be hurt by a regression. A vendored patch against @capacitor/android 7.3.0 sits in patches/, so every Capacitor upgrade means re-deriving that patch, and anyone adopting the Android build inherits the chore. Generated Docusaurus output (website/.docusaurus/, including per-route JSON manifests) is tracked in the tree, which adds diff noise on every docs build. The README is mostly product copy and a disclaimer, and the architecture and contribution details sit in an external docs site and in BUILDING.md and DEVELOPING.md, so if you're evaluating this as a codebase, expect to read the source.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →