Go2TV lets you play video, audio, and image files on your Smart TV or Chromecast device directly from your computer or phone. It works with:
- Smart TVs - Samsung, LG, Sony, and others that support DLNA/UPnP
- Chromecast - Google Chromecast, Chromecast with Google TV, and compatible devices
- Apps - BubbleUPnP, GMediaRender, and other media receiver apps
No need to copy files to a USB drive or set up a media server. Just select your file, pick your device, and play.
Download the latest release from the releases page.
- Windows: Download
go2tv_vX.Y.Z_windows_amd64.zip, extract, and rungo2tv.exe - macOS: Download
go2tv_vX.Y.Z_macOS_amd64.zip(Intel) orgo2tv_vX.Y.Z_macOS_arm64.zip(Apple Silicon), extract, and run the app - Linux: Download
go2tv_vX.Y.Z_linux_amd64.zip(or appropriate arch), extract, and rungo2tv - Android: Download the APK (
go2tv_vX.Y.Z.apk) or zip (go2tv_vX.Y.Z_android.zip)
Go2TV is a single executable with no installation required. Just download and run.
For maximum compatibility with all devices and file formats, install FFmpeg. Go2TV will automatically use it when needed.
- Linux:
sudo apt install ffmpegor equivalent for your distro - macOS:
brew install ffmpeg - Windows: Download from ffmpeg.org and add to PATH
- Flatpak: FFmpeg is bundled automatically
GUI Mode
CLI Mode
$ go2tv -h
Usage of go2tv:
-l List available devices (Smart TVs and Chromecasts).
-s string
Path to subtitles file (.srt or .vtt).
-t string
Device URL to cast to (from -l output).
-tc
Force transcoding with ffmpeg.
-u string
URL to media file (triggers CLI mode).
-v string
Path to video/audio file (triggers CLI mode).
-version
Print version.Examples
# List available devices
go2tv -l
# Play a video on your TV
go2tv -v movie.mp4 -t http://192.168.1.100:8060/
# Play with subtitles
go2tv -v movie.mp4 -s movie.srt -t http://192.168.1.100:8060/
# Force transcoding for incompatible formats
go2tv -v video.avi -tc -t http://192.168.1.100:8060/
# Cast to Chromecast
go2tv -v movie.mp4 -t http://192.168.1.50:8009
# Stream from stdin
cat video.mp4 | go2tv -t http://192.168.1.50:8009
# Stream from command output
yt-dlp -o - "https://youtu.be/..." | go2tv -t http://192.168.1.50:8009
# Stream from stdin with transcoding
cat video.mkv | go2tv -tc -t http://192.168.1.50:8009
# Stream from command output with transcoding
yt-dlp -o - "https://youtu.be/..." | go2tv -tc -t http://192.168.1.50:8009- Auto-discovery - Automatically finds Smart TVs and Chromecast devices on your network
- Transcoding - Converts incompatible video formats on-the-fly (requires FFmpeg)
- Subtitles - Supports external SRT/VTT files and embedded MKV subtitles
- Seek support - Jump to any position in the video
- Loop and auto-play - Loop a single file or auto-play the next file in folder
- Gapless playback - Supported for DLNA devices
- GUI and CLI - Use the graphical interface or command line
mp4, avi, mkv, mpeg, mov, webm, m4v, mpv, mp3, flac, wav, jpg, jpeg, png
The CLI accepts any file type.
Firewall Configuration
Go2TV uses ports 3339-3438 for device discovery. If you're behind a firewall, allow inbound UDP traffic on these ports.
macOS Security
If you see "cannot be opened because the developer cannot be verified":
- Control-click the app, then choose Open from the menu
- Click Open
If you see "go2tv is damaged and can't be opened":
- Run:
xattr -cr /path/to/go2tv.app
Requirements: Go 1.25
git clone https://github.com/alexballas/go2tv
cd go2tv
make buildUsing Docker
Build the image:
docker build --force-rm -t go2tv .Run the container (Linux with X11):
xhost +local:docker
docker run -it --network host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix go2tv go2tvAlexandros Ballas alex@ballas.org
MIT



