Simple YouTube TV Client for desktop based on electron. You can connect a compatible device such as a phone or computer with Google Chrome and send videos to the app for viewing, just like on ChromeCast or smart TVs with YouTube.
This repository is a fork of YouTubeTV with added support for Web Video Caster by InstantBits Inc. The purpose of this fork is to combine YouTube TV playback and general web video casting into a single Electron application, allowing both use cases to coexist without requiring separate apps or devices.
The application supports launching YouTube using the DIAL protocol, while also acting as a cast receiver for Web Video Caster on the same local network. When discovered from the Web Video Caster mobile app, the application appears as “Electron Browser” and can be used as a normal casting target for web videos or direct video streams.
The app automatically manages the interface based on casting activity. When a casting device connects, the YouTube view is hidden and the Cast2TV interface is shown. Once the device disconnects, the app seamlessly returns to the YouTube interface without requiring any manual interaction.
This project is not affiliated with Google, YouTube, or InstantBits Inc. Web Video Caster is a product of InstantBits Inc. This fork follows the same license as the original YouTubeTV project, and any additional components remain subject to their respective licenses.
This readme is available in the following languages:
- 🇺🇸 English
- 🇪🇸 Spanish
It implements a DIAL server (based in SSDP) to allow connection from devices that use this same protocol (limited to YouTube in this application).
Use the userAgent allowed by YouTube TV:
Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Large Screen Safari/534.24 GoogleTV/092754
It can use npm start or else npx electron . .
If you already have electron installed globally, you can start the app with electron .
The project can be downloaded already built and ready to use. Available for Linux, macOS and Windows. On x86, x84 and ARM architectures.
| Platform | Architecture | Link |
|---|---|---|
| Windows | x32/x64 | Download |
| Linux (Deb) | x64 | Download |
| Linux (Deb) | ARM64 | Download |
| Linux (Deb) | ARMv7l | Download |
| Linux (RPM) | x64 | Download |
| Linux (RPM) | ARMv7l | Download |
| Linux (RPM) | ARM64 | Download |
| macOS | Intel (x64) | Download |
| macOs | Apple Chip (ARM) | Download |
- Max. resolution config panel: Ctrl + S
- Fullscreen: Ctrl + F.
- Developer Tools: Ctrl + D.
- Change cursor visibility: Ctrl + A.
Not tested on Windows and macOS for ARM platforms, except for ARM Linux for Raspberry (armv7l).
- Fixed bug where the YouTube TV process would not close completely on platforms other than macOS.
- The title bar is transparent (macOS only).
- The title bar of the window did not load the Spanish title.
- YouTube TV persistently stores parameters of the main window state, such as position, size, full screen and cursor visibility.
YouTube TV now includes a window for configuring the maximum playback resolution.
This window can be opened by pressing the keys Ctrl + S.
Resolution has been limited from the developing environment for the following reason:Nowadays the mayority of computers are provided with integrated graphics, i.e. they share memory with the rest of the system, different to discrete graphic cards, which include their own memory modules where they have an isolated storage space without external load.
This implies more workload for the processor, and there are cases where resolutions above 2K/4K begin to affect performance at exagereted level.
Obviously the final user can establish the resolution they prefer; nevertheless, YouTube is able to measure bandwith and automatically establish the best resolution available in relation with bandwith, which can be bothering, since frequently hardware capacities aren't enough to reproduce those resolutions that high.
