mrkeyoor.com_
Sat 08 Aug 21:03 UTC
Self-Hostedevaluationupdated 08 Aug 2026

go2tv

Go2TV sends a video, audio file, image, remote URL, or live stream from your computer or Android phone to a Chromecast or DLNA-compatible television. It solves the small but irritating job of playing something on a nearby screen without copying it to USB or building a permanent media-server library.

Verdict

Go2TV is the right little tool when the job is simply getting a file onto the television now. It covers more real playback annoyances than its size suggests, including subtitles, playlists, seeking, transcoding, CLI pipelines, and a new web controller. Choose a full media server for a permanent collection, but try Go2TV first for occasional local casting on a trusted network.

Setup4/5Portable app is simple; FFmpeg and multicast can add friction
Docs4/5Clear platform installs, examples, ports, and mode limitations
Community4/5Small but current issue queue with responsive release work
Maturity4/5Five years old, cross-platform, with a focused stable feature set

Who it’s for

  • People who occasionally cast local files and want less setup than Jellyfin or a full DLNA server.
  • Chromecast and smart-TV owners who need subtitles, seeking, playlists, and optional transcoding.
  • Terminal users who want casting in scripts or pipelines, including data streamed from another command.
  • Households that want a lightweight browser controller for selected media folders on a trusted LAN.

Who it’s NOT for

  • Anyone building a browsable, multi-user media library with metadata, accounts, watched state, and remote streaming: Go2TV is a casting tool, not a Jellyfin replacement.
  • Users who need simultaneous playback on several televisions: issue 134 says Go2TV currently casts to only one device at a time.
  • Viewers who must choose a non-default embedded audio track from the app: issue 159 requests audio-stream selection because some TVs cannot do it.
  • People exposing the web controller to an untrusted network: the README says LAN mode uses plain HTTP without TLS and should be used only on trusted networks.
  • Purists requiring every Chromecast component to be open source: Go2TV's custom hosted receiver is not included in the repository or currently published.

Setup reality

For a compatible file and receiver, setup really is download, select, and play. Homebrew, Flathub, release archives, and an Android APK cover the main platforms, and the normal release is one executable. Incompatible media adds FFmpeg, codec probing, CPU or GPU transcoding, and more failure points. Discovery also depends on multicast traffic and firewall openings, while playback requires inbound TCP ports for Go2TV's temporary media server. The LAN web interface needs explicit media roots and allowed browser origins.

Casting without adopting a media platform

Go2TV has a refreshingly narrow purpose: choose media on one device and play it on a television. It discovers Chromecast and DLNA or UPnP receivers on the local network, starts a temporary HTTP source for local files, and tells the selected receiver what to play. There is no catalog import, metadata scraper, user database, or always-on server required for the basic path.

That makes it a good answer to a common mismatch. Jellyfin and similar systems are excellent when a household maintains a collection, but they are excessive when someone has one downloaded video to watch tonight. Copying to a USB drive is tedious, and television file support is unpredictable. Go2TV keeps the workflow close to opening a local file while handling the receiver protocol behind it.

The project supports video, audio, and images, plus remote media URLs. It can attach external SRT or VTT subtitles, extract embedded MKV subtitles, seek, loop, and move through a playlist. The GUI handles drag and drop, while the CLI can accept a local path, URL, subtitle, target address, and transcoding switch. It can even consume standard input, which makes a yt-dlp pipeline possible without saving a finished file first.

The basic setup is genuinely small

macOS users can install a cask, Linux users get a Flatpak, and Windows users can download a normal GUI archive or a lighter CLI build. Release artifacts also cover Intel and Apple Silicon Macs, multiple Linux architectures, ARM boards, and Android arm64. In the ordinary desktop build, Go2TV is a single executable.

On a friendly network, the use pattern is select file, select discovered device, press play. The README states the required firewall ranges: UDP 3339 through 3438 for discovery and TCP 3500 through 4499 for the local media server. If a television does not appear, those multicast and inbound rules, guest Wi-Fi isolation, VPN routes, and separate VLANs are the first places to look. Automatic discovery is convenient, but it cannot cross every network boundary by magic.

Format compatibility determines whether the setup stays simple. When a receiver accepts the source codec and container, Go2TV can serve it directly. When it does not, optional FFmpeg transcodes the media. The Flatpak and default Android APK bundle FFmpeg, while desktop archives can use a binary on PATH or an explicit path. Go2TV probes GPU H.264 encoders and falls back to libx264 if hardware encoding is unavailable at startup.

Transcoding costs compute and can reduce seeking speed or quality, so it is a rescue path rather than a free capability. The core project uses MIT, but builds bundling FFmpeg inherit that package's license duties; the README distinguishes the LGPL Android package from GPL AppImage builds. Distributors should review the exact artifact rather than assume the core license covers every bundled binary.

More capable than a one-button utility

Version 2.5.0 added a web interface that can browse approved media roots and control a separate casting session. The desktop settings can start it, or a headless machine can launch server mode with one or more -media-root arguments. This is useful for a small living-room PC: leave Go2TV near the media and use a phone browser as the remote.

The boundaries are sensible. It binds to localhost by default. LAN mode requires a non-loopback listen address and explicit allowed browser origins. The project warns that LAN access is HTTP without TLS and belongs only on a trusted network. There are no documented user accounts that turn it into a safe public media service. A VPN could provide remote network access, but Go2TV should not be exposed directly to the internet.

The release also supports RTMP input from OBS to Chromecast and experimental desktop casting through FFmpeg. These modes expand the utility beyond saved files, but both are Chromecast-only and desktop capture remains explicitly experimental. They are appealing extras, not reasons to replace established live-streaming infrastructure.

The playlist feature can reorder items and move next or previous, with auto-play and DLNA gapless playback. Compatibility still varies by receiver. Issue 122 reports that auto-play disconnects after one file on a LeBao Cast television, even though manual Next works. That is the nature of DLNA ecosystems: two devices can advertise similar capabilities and behave differently in control or transition details. Test the television you own.

Clear limits keep the recommendation honest

Go2TV currently controls one cast at a time. Issue 134 requests detaching from an active receiver or running several sessions. A school, shop, or multi-room installation should choose software designed for parallel targets. The app also lacks embedded audio-track selection according to issue 159. If the television cannot switch tracks itself, a movie whose desired language is not default may need preprocessing.

There are interface rough edges too. Open requests describe confusing device selection during playback and ask for better file searching. These do not obstruct the core job, but they distinguish a focused independent utility from a highly polished commercial casting client.

Chromecast users should know that the custom receiver is hosted at cast-receiver.go2tv.app and is not part of the open repository. The README says its behavior matches the default receiver apart from branding. Playback therefore has an external hosted component even though the desktop application is open source. DLNA operation does not use that Chromecast receiver.

Health and the buying decision

The last push was August 8, 2026. Version 2.5.0 shipped four days earlier with the web interface, Chromecast autoplay and transcoding improvements, Android background casting, desktop-capture fixes, and a stable Android signing key. Its ten open issues and pull requests form a small queue, and several open requests received updates around the release.

Go2TV is mature enough to recommend because its scope is clear and the packaging is unusually broad. It does not ask you to reorganize your files, maintain a database, or keep a service running for occasional use. Download it, verify that discovery works, and try direct playback before enabling transcoding. If your real need becomes shared libraries, remote users, metadata, or many screens, graduate to Universal Media Server or Jellyfin rather than forcing this compact caster to become one.

Alternatives

ProjectWhat it isPick it when
VLCA universal media player that can render to Chromecast and handle an enormous codec range.pick this instead when you already use VLC and casting is secondary to local playback, conversion, and media inspection.
Universal Media ServerA full DLNA, UPnP, and web media server with device profiles and transcoding.pick this instead when televisions should browse a persistent server library rather than receive one-off casts.
JellyfinA complete self-hosted media system with libraries, users, metadata, clients, and remote playback.pick this instead when you want a household streaming service and will accept server maintenance for richer library features.

What people are saying

  1. [github-trending] alexballas/go2tv

Sources

  1. Go2TV README
  2. Go2TV 2.5.0 release notes
  3. Single-device casting request
  4. Audio stream selection request
  5. Continuous playback report