The wtv minisrv, or "zefie_wtvp_minisrv" project is a WebTV Server written in node.js. The project aims to provides an easy-to-use WebTV Server, with full WTVP (WebTV Protocol) support. This open source server is in beta status. Use at your own risk.
- This has nothing to do with streaming video.
- This is a server for the MSNTV (formerly WebTV) set-top box, and its various emulators.
- This does not support MSNTV2.
- DB-less flat file client session store and registration system
- Supports multiple simultaneous users
- Supports all known WebTV service encryption scenarios, for full trusted box access
- Supports nearly all WebTV clients (still some issues with early alpha builds)
- Suports
.js
service files with synchronous or asynchronous requests - Supports
.cgi
and/or.php
scripts via CGI system - WebTV-compatible HTTP(S) Proxy (via minisrv, or using an external proxy for enhanced features (such as WebOne)
- WebTV cookie support (wtv-cookie) for HTTP(s)
- ProtoWeb Support via
proto://
- Flashrom flashing support for all known units (including bf0app 'Old Classic')
- Can flash anything on Ultra Willies with optional
use_zefie_server
flag set onwtv-flashrom
service. wtv-disk:/sync
for Download-o-Rama style file downloading- Custom Tellyscript Generation
- wtv-lzpf compression support by eMac (99.9%)
- wtv-favorites support
- wtv-news support (WIP)
- wtv-mail (within same server only)
- "PC Services" (node express with minisrv custom script processing)
- "ViewerGen" Generate "WebTV Viewer" (Windows WebTV Sim) with unique SSIDs
- Finish wtv-news, complete with upstream integration support (cross-minisrv usenet)
- Finish wtv-guide
- Finish Scrapbook
- Polish account transfer system (#16)
- MAYBE: Create proper web-slimming proxy (WTVProxy.js?)
TellyScript generation and/or manipulation without external dependanciesDone v0.9.60Add wtv-author (Pagebuilder)Done v0.9.59wtv-setup and bgm supportDone v0.9.23wtv-cookie full supportDone v0.9.13Flashrom flashing for bf0app old classicDone v0.9.9SSID/IP black/whitelisting (including tying SSID to an IP or multiple IPs)Done v0.9.4Flashrom flashing functionality (at least for LC2 and higher)Done v0.8.0Implement HTTP proxy (needs to be able to defluff most of the web, think retro WAP converter)Done v0.7.1
- Install node.js v16 or newer. If on Windows, be sure to say
Yes
when asked aboutChocolatey
. - Install git (if on Windows, install from Git for Windows
- Clone the repository
- Enter
zefie_wtvp_minisrv
subdirectory - Enter
zefie_wtvp_minisrv
subdirectory again (there are 2 after a git clone) - Verify you are in the same directory as
app.js
, then runnpm install
- Check any configuration. Create your override
user_config.json
. Especallyservice_ip
. See user_config_README.md and user_config.example.json for more information.- Note: The intended use is for all custom config to be in
user_config.json
and any custom service files to go inUserServiceVault
. If you do not care about potential issues with futuregit pull
, and will manually add new upstreamconfig.json
entries, you could use the standardServiceVault
andconfig.json
- Note: The intended use is for all custom config to be in
- Run
npm start
- Test with a WebTV Viewer, MAME, or connect with a real box
- See ServiceVault.md for a brief introduction to how the service files work
- To connect with a real box, you will need to open ports in your firewall and have a way to connect your WebTV (and preferably reroute 10.0.0.1 and 10.0.128.1 to the server)
- To connect with MAME you will need to set up touchppp (I recommend an Alpine Linux VM).
- Most WebTV connection scenarios can handle a PPP session that doesn't require authentication. However flashing ROMs on the bf0app Old Classic REQUIRES the server accept PPP auth, and the auth must be valid.
- Configuring firewalls and real boxes is outside the scope of this guide, but there are plenty of enthusiasts on the WebTV Discord that will likely help you.
- Report Bugs
- Add a Feature and send a Pull Request
- Write and submit better documentation than I created (see Pull Request above)
- Content Creators: Shout out this project, and my YouTube Channel (https://www.youtube.com/zefievideo)
- Financially Support:
- Companies: Reach out to [email protected] to sponsor this project
- Subscribe on Patreon
- One-Time Support: