{"id":13582056,"url":"https://github.com/alexballas/go2tv","last_synced_at":"2026-01-29T20:14:59.418Z","repository":{"id":37863923,"uuid":"337238511","full_name":"alexballas/go2tv","owner":"alexballas","description":"Cast media files to UPnP/DLNA Media Renderers and Smart TVs.","archived":false,"fork":false,"pushed_at":"2025-03-08T20:50:21.000Z","size":26826,"stargazers_count":565,"open_issues_count":4,"forks_count":54,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-03-08T21:36:46.535Z","etag":null,"topics":["audio","cast","dlna","dlna-mediarenderer","golang","media","samsumg-tvs","streaming-video","upnp","video","videos"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexballas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"alexballas","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2021-02-08T23:30:26.000Z","updated_at":"2025-03-05T11:47:06.000Z","dependencies_parsed_at":"2024-01-02T13:24:16.319Z","dependency_job_id":"0e48a9e4-08ff-4b20-85f1-5656729d1be2","html_url":"https://github.com/alexballas/go2tv","commit_stats":null,"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexballas%2Fgo2tv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexballas%2Fgo2tv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexballas%2Fgo2tv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexballas%2Fgo2tv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexballas","download_url":"https://codeload.github.com/alexballas/go2tv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247478105,"owners_count":20945256,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","cast","dlna","dlna-mediarenderer","golang","media","samsumg-tvs","streaming-video","upnp","video","videos"],"created_at":"2024-08-01T15:02:24.468Z","updated_at":"2026-01-29T20:14:59.409Z","avatar_url":"https://github.com/alexballas.png","language":"Go","funding_links":["https://ko-fi.com/alexballas"],"categories":["Go","HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/go2tv-logo-color.svg\" width=\"225\" alt=\"Go2TV logo\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cp\u003e\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/alexballas/Go2TV)](https://goreportcard.com/report/github.com/alexballas/Go2TV)\n[![Release Version](https://img.shields.io/github/v/release/alexballas/Go2TV?label=Release)](https://github.com/alexballas/Go2TV/releases/latest)\n[![Tests](https://github.com/alexballas/go2tv/actions/workflows/go.yml/badge.svg?branch=devel)](https://github.com/alexballas/go2tv/actions/workflows/go.yml)\n\n[![Build for ARMv6 (32-bit)](https://github.com/alexballas/go2tv/actions/workflows/build-arm.yml/badge.svg?branch=devel)](https://github.com/alexballas/go2tv/actions/workflows/build-arm.yml)\n[![Build for ARMv8 (64-bit)](https://github.com/alexballas/go2tv/actions/workflows/build-arm64.yml/badge.svg?branch=devel)](https://github.com/alexballas/go2tv/actions/workflows/build-arm64.yml)\n[![Build for Android](https://github.com/alexballas/go2tv/actions/workflows/build-android.yml/badge.svg?branch=devel)](https://github.com/alexballas/go2tv/actions/workflows/build-android.yml)\n[![Build for Linux](https://github.com/alexballas/go2tv/actions/workflows/build-linux.yml/badge.svg?branch=devel)](https://github.com/alexballas/go2tv/actions/workflows/build-linux.yml)\n[![Build for MacOS Intel](https://github.com/alexballas/go2tv/actions/workflows/build-mac-intel.yml/badge.svg?branch=devel)](https://github.com/alexballas/go2tv/actions/workflows/build-mac-intel.yml)\n[![Build for MacOS Apple Silicon](https://github.com/alexballas/go2tv/actions/workflows/build-mac.yml/badge.svg?branch=devel)](https://github.com/alexballas/go2tv/actions/workflows/build-mac.yml)\n[![Build for Windows](https://github.com/alexballas/go2tv/actions/workflows/build-windows.yml/badge.svg?branch=devel)](https://github.com/alexballas/go2tv/actions/workflows/build-windows.yml)\n\u003c/p\u003e\nCast media files to Smart TVs and Chromecast devices.\n\u003c/div\u003e\n\n---\n\n## What is Go2TV?\n\nGo2TV lets you play video, audio, and image files on your Smart TV or Chromecast device directly from your computer or phone. It works with:\n\n- **Smart TVs** - Samsung, LG, Sony, and others that support DLNA/UPnP\n- **Chromecast** - Google Chromecast, Chromecast with Google TV, and compatible devices\n- **Apps** - BubbleUPnP, GMediaRender, and other media receiver apps\n\nNo need to copy files to a USB drive or set up a media server. Just select your file, pick your device, and play.\n\n---\n\n## Installation\n\n**Download the latest release** from the [releases page](https://github.com/alexballas/Go2TV/releases/latest).\n\n- **Windows**: Download `go2tv_vX.Y.Z_windows_amd64.zip`, extract, and run `go2tv.exe`\n- **macOS**: Download `go2tv_vX.Y.Z_macOS_amd64.zip` (Intel) or `go2tv_vX.Y.Z_macOS_arm64.zip` (Apple Silicon), extract, and run the app\n- **Linux**: Download `go2tv_vX.Y.Z_linux_amd64.zip` (or appropriate arch), extract, and run `go2tv`\n- **Android**: Download the APK (`go2tv_vX.Y.Z.apk`) or zip (`go2tv_vX.Y.Z_android.zip`)\n\nGo2TV is a single executable with no installation required. Just download and run.\n\n### Optional: FFmpeg for Transcoding\n\nFor maximum compatibility with all devices and file formats, install [FFmpeg](https://ffmpeg.org/download.html). Go2TV will automatically use it when needed.\n\n- **Linux**: `sudo apt install ffmpeg` or equivalent for your distro\n- **macOS**: `brew install ffmpeg`\n- **Windows**: Download from [ffmpeg.org](https://ffmpeg.org/download.html) and add to PATH\n- **Flatpak**: FFmpeg is bundled automatically\n\n---\n\n## Screenshots\n\n**GUI Mode**\n\n![](https://i.imgur.com/Ga3hLJM.gif)\n\n![](https://i.imgur.com/Pw44BYD.png)\n![](https://i.imgur.com/JeUxGGd.png)\n\n**CLI Mode**\n\n![](https://i.imgur.com/BsMevHi.gif)\n\n---\n\n## CLI Usage\n\n``` console\n$ go2tv -h\nUsage of go2tv:\n  -l    List available devices (Smart TVs and Chromecasts).\n  -s string\n        Path to subtitles file (.srt or .vtt).\n  -t string\n        Device URL to cast to (from -l output).\n  -tc\n        Force transcoding with ffmpeg.\n  -u string\n        URL to media file (triggers CLI mode).\n  -v string\n        Path to video/audio file (triggers CLI mode).\n  -version\n        Print version.\n```\n\n**Examples**\n\n``` console\n# List available devices\ngo2tv -l\n\n# Play a video on your TV\ngo2tv -v movie.mp4 -t http://192.168.1.100:8060/\n\n# Play with subtitles\ngo2tv -v movie.mp4 -s movie.srt -t http://192.168.1.100:8060/\n\n# Force transcoding for incompatible formats\ngo2tv -v video.avi -tc -t http://192.168.1.100:8060/\n\n# Cast to Chromecast\ngo2tv -v movie.mp4 -t http://192.168.1.50:8009\n\n# Stream from stdin\ncat video.mp4 | go2tv -t http://192.168.1.50:8009\n\n# Stream from command output\nyt-dlp -o - \"https://youtu.be/...\" | go2tv -t http://192.168.1.50:8009\n\n# Stream from stdin with transcoding\ncat video.mkv | go2tv -tc -t http://192.168.1.50:8009\n\n# Stream from command output with transcoding\nyt-dlp -o - \"https://youtu.be/...\" | go2tv -tc -t http://192.168.1.50:8009\n```\n\n---\n\n## Features\n\n- **Auto-discovery** - Automatically finds Smart TVs and Chromecast devices on your network\n- **Transcoding** - Converts incompatible video formats on-the-fly (requires FFmpeg)\n- **Subtitles** - Supports external SRT/VTT files and embedded MKV subtitles\n- **Seek support** - Jump to any position in the video\n- **Loop and auto-play** - Loop a single file or auto-play the next file in folder\n- **Gapless playback** - Supported for DLNA devices\n- **GUI and CLI** - Use the graphical interface or command line\n\n### Supported File Types (GUI)\n\nmp4, avi, mkv, mpeg, mov, webm, m4v, mpv, mp3, flac, wav, jpg, jpeg, png\n\nThe CLI accepts any file type.\n\n---\n\n## Notes\n\n**Firewall Configuration**\n\nGo2TV uses ports 3339-3438 for device discovery. If you're behind a firewall, allow inbound UDP traffic on these ports.\n\n**macOS Security**\n\nIf you see \"cannot be opened because the developer cannot be verified\":\n1. Control-click the app, then choose Open from the menu\n2. Click Open\n\nIf you see \"go2tv is damaged and can't be opened\":\n- Run: `xattr -cr /path/to/go2tv.app`\n\n---\n\n## Building from Source\n\n**Requirements**: Go 1.25\n\n``` console\ngit clone https://github.com/alexballas/go2tv\ncd go2tv\nmake build\n```\n\n**Using Docker**\n\nBuild the image:\n``` console\ndocker build --force-rm -t go2tv .\n```\n\nRun the container (Linux with X11):\n``` console\nxhost +local:docker\ndocker run -it --network host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix go2tv go2tv\n```\n\n---\n\n## Author\n\nAlexandros Ballas \u003calex@ballas.org\u003e\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexballas%2Fgo2tv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexballas%2Fgo2tv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexballas%2Fgo2tv/lists"}