Mods / Smart TV
- Tags:
- Author:
- Darlem
- Side:
- Both
- Created:
- Oct 3rd at 12:56 AM
- Last modified:
- 13 hours ago
- Downloads:
- 492
-
Recommended download (for Vintage Story 1.22.6 - 1.22.7):
smarttv_v0.14.1.zip 1-click install
SMART TV
TVs, retro sets, radios, a walkman and projectors for Vintage Story. Paste a YouTube link, playlist, Plex or Pluto TV channel or video URL and everyone nearby watches and hears it together, in sync.
FEATURES
-added a whitelist option for admins to enable if they wish to
/smarttvwhitelist shows whether it’s on and which sites are listed.
/smarttvwhitelsit on lets TVs play only links from listed sites. /smarttvwhitelsit off lets any link play again.
/smarttvwhitelsit on add <site> andremove <site> edit the list, e.g. /smarttvwhitelsit add vimeo.com
- Shared viewing: the server keeps one clock per TV, so every player sees the same moment. Players who walk up mid-video join at the right spot.
- Distance sound: full volume up close, fading to silence at the TV's hearing range (up to 128 blocks). Each TV has its own volume, so several TVs side by side don't interfere.
- Plays:
- YouTube videos and playlists (up to 500 videos, with Previous/Next, Loop and Shuffle)
- YouTube and Twitch live streams
- Free Plex live TV channels and free Plex movies and TV episodes
- Free Pluto TV live channels (type pluto: channel name , for example pluto: Anime )
- archive.org videos (a whole archive.org page plays all its videos as a playlist)
- Most sites yt-dlp supports (Vimeo, Dailymotion, Twitch clips and VODs, SoundCloud and more)
- Direct links to video or audio files (.mp4, .webm, .mkv, .mp3, .m3u8 and others)
- Many TV styles, all in their own "Smart TV" tab in the creative inventory:
- Smart TV: a flat screen that hangs on a wall
- Billboard: frameless, edge to edge picture for big walls and cinemas
- Double-sided: a free-standing screen with the picture on both sides
- Four retro TVs: Retro CRT, Wood Console TV (70s, on legs), Portable TV (80s, with rabbit-ear antennas) and 1950s TV. The picture sits inside each set's own screen.
- Three projectors: Film Projector, Modern Projector and Magic Lantern (wood and brass, glows softly). The picture appears on the wall they face, or floats at a distance you choose.
- Smart TV (Admin): gold frame. Only admins can place, break or control it; everyone can watch.
- Controls: Play, Pause/Resume, Stop, skip 5 or 30 seconds back or forward, Previous/Next in playlists, and playback speed from 0.25x to 2x. Every control is synced for everyone watching.
- Right-click anywhere on the picture to open the controls, not just the TV block. Sneak + right-click still places blocks on the wall behind a screen.
- Channel presets: save up to 6 favourite links per TV and play them with one click.
- Request queue (jukebox): anyone near a TV can queue up videos, even players who can't control it. Requests play in order, then the TV goes back to its own playlist or channel.
- Sync groups: give several TVs the same group name and they all show the same thing at the same moment. Each player's PC plays the stream once and shows it on every linked TV, so 4 linked TVs cost about the same as 1, with a single sound.
- Live mode: live streams are detected automatically. Pause and skip turn off, the status shows LIVE, and a dropped stream re-tunes itself.
- Videos keep their own shape: vertical videos (YouTube Shorts, phone clips) get black bars at the sides instead of being stretched.
- Adjustable screens: width from half a block up to 16 blocks, height offset, view distance from 16 to 256 blocks, and hearing range. Projectors also have a picture distance setting.
- Light on the server: the server only stores the link and the play state. Each player's own PC fetches and plays the video, so the server never streams video and never downloads anything.
HOW TO USE
1. Open the "Smart TV" tab in the creative inventory and pick a TV.
2. Place it:
- Wall TVs and the billboard: look at a wall and place it. The screen hangs flat on that wall, facing you.
- Retro TVs and the double-sided screen: place them on a floor or table like any block. The screen faces you.
- Projectors: look at the wall you want the picture on (up to 32 blocks away) and place it.
A black screen means it's switched off.
3. Right-click the TV, or anywhere on its picture, to open its controls.
4. Paste a link and press Play.
The controls:
- Play: plays the link in the box (a playlist link plays the whole list)
- Pause / Resume: pauses for everyone (not available on live streams)
- Stop: switches the TV off
- -30s / -5s / +5s / +30s: skips back or forward for everyone (not on live streams)
- |< / >|: previous / next video in a playlist; >| also skips to the next request in the queue
- Volume: the TV's loudness at full volume
- Hearing range: how far away the sound reaches, in blocks
- View distance: how far away the picture keeps playing, in blocks
- Screen width / Height offset: size and position of the screen
- Playback speed: 0.25x to 2x, the same for everyone (live streams always play at normal speed)
- Picture distance (projectors only): Auto puts the picture on the nearest wall; or pick a fixed distance from 0.5 to 32 blocks
- Loop / Shuffle: repeat the video or playlist; play a playlist in random order
- Channel presets: type a name, turn on Save mode, then click a slot to store the link in the box. With Save mode off, clicking a slot plays it.
- Request queue: paste a link and press "Request this link". "Clear queue" empties it (controllers only).
- Sync group: type a group name and press Link. Empty name + Link unlinks the TV.
The status line shows the time, the playback speed, the playlist position, who requested the current video, how many videos are queued, LIVE for live streams, and download progress while the tools install on first use.
WHAT GETS DOWNLOADED, AND YOUR CHOICE
Vintage Story can't play video by itself, so the TV needs a few free, open-source tools. Nothing is downloaded without asking you first.
The first time a TV near you needs to play, a window explains what's needed and asks Yes or No. Your answer is saved on the server, so you're only asked once.
- Yes: the tools download in the background, once, from each tool's official source, over HTTPS.
- No: nothing is downloaded and TVs stay off for you.
- Changed your mind? Type /smarttv setup in chat and the question comes back.
- Already have the tools installed? The mod uses them and doesn't ask.
On Windows, three tools are downloaded:
1. libVLC 3.0.21 (the video player inside VLC media player)
- What it does: decodes the picture and plays the sound
- From: VideoLAN's official package on NuGet (api.nuget.org, package VideoLAN.LibVLC.Windows). Only the 64-bit files are kept.
- Size: about 100-150 MB on disk
- Licence: LGPL 2.1
2. yt-dlp
- What it does: turns a YouTube (or other site) link into a stream VLC can play
- From: the official GitHub release (github.com/yt-dlp/yt-dlp/releases)
- Size: about 20 MB
- Licence: Unlicense (public domain)
3. Deno
- What it does: a JavaScript runtime. yt-dlp has required one for YouTube since late 2025.
- From: the official GitHub release (github.com/denoland/deno/releases)
- Size: about 40 MB download, about 100 MB unpacked
- Licence: MIT
Where the files go:
Everything lands in one folder: %APPDATA%\VintagestoryData\SmartTV\
- libvlc\ (the VLC library and its plugins)
- yt-dlp.exe and deno.exe
- plex-client-id.txt and pluto-device-id.txt (random IDs used only for Plex and Pluto TV guest logins)
- managed\LibVLCSharp.dll (copied out of the mod's own zip, not downloaded)
What the mod does NOT do:
- No installer, no admin rights, no Windows registry changes, no PATH changes.
- Nothing is written outside that folder, and nothing is added to Windows startup.
- Nothing runs when the game isn't running. libVLC is loaded inside the game, and yt-dlp and Deno only run as short-lived helpers the game starts while a TV is loading or playing a link.
- Nothing is downloaded on the server. A dedicated server never needs or runs these tools.
Updates:
yt-dlp checks GitHub for a new version each time the game starts (only for players who said Yes) and updates itself, because YouTube and other sites change often and old versions stop working. If a link fails in a way a newer yt-dlp usually fixes, the mod also updates it right away (once per game session) and tries again. libVLC and Deno are not updated automatically.
Downsides:
- The mod relies on HTTPS and the official download locations. It does not separately verify file signatures or checksums.
- Some antivirus programs flag yt-dlp.exe because it is a packed Python program. This is a known false positive. You can check the file on VirusTotal, or download yt-dlp yourself and point the mod at it (see below).
Prefer to supply the tools yourself?
In ModConfig/smarttv-client.json set "AutoDownloadTools": false and fill in LibVlcFolder (a 64-bit VLC install folder works), YtDlpPath and DenoPath. The mod then downloads nothing.
Removing everything:
Delete the mod's zip from your Mods folder and delete the SmartTV folder inside VintagestoryData. Nothing else is left behind except two small config files in ModConfig.
Linux:
Same Yes/No question. yt-dlp and Deno are downloaded automatically (official Linux builds, x64 or ARM64) into ~/.config/VintagestoryData/SmartTV/. VLC has no official portable Linux version, so you install it once yourself with your package manager. The TV shows the exact command for your Linux, for example:
sudo apt install vlc (Ubuntu, Mint, Pop!_OS, Debian)
sudo dnf install vlc (Fedora)
sudo pacman -S vlc vlc-plugins-all (Arch, Manjaro, EndeavourOS)
The TV starts by itself afterwards, no restart needed. yt-dlp and Deno you already installed yourself are used as they are.
Steam Deck and the Flatpak version of Vintage Story:
The Flatpak game runs in a sandbox and can't see normal programs, so it uses the VLC Flatpak instead. Click Yes in game, close the game, then run these two commands once in a terminal (Konsole on the Steam Deck's Desktop Mode):
flatpak install flathub org.videolan.VLC
flatpak override --user --filesystem=/var/lib/flatpak/app/org.videolan.VLC:ro --filesystem=~/.local/share/flatpak/app/org.videolan.VLC:ro at.vintagestory.VintageStory
The second command only lets the game READ VLC's files. Start the game again and the TVs play. The mod also saves these commands as flatpak-vlc-setup.sh in its folder and shows them in chat. To undo: flatpak override --user --reset at.vintagestory.VintageStory
Mac:
Not tested. Nothing is downloaded on Mac. Install vlc, yt-dlp and deno yourself (for example with Homebrew).
A full step by step setup guide for players is included in the mod download as README-PLAYERS.txt.
WHAT CONNECTS TO THE INTERNET
Your PC contacts only the sites below, and only for the reason given. The mod has no telemetry, no analytics and no server of its own. Nothing is ever sent to the mod author. Nothing is downloaded before you click Yes.
- After you click Yes (Windows): api.nuget.org and github.com, to download libVLC, yt-dlp and Deno (once). On Linux, github.com only.
- Every game start (if you said Yes): github.com, so yt-dlp can check for its own update.
- A TV near you plays a YouTube or other site link: that site (e.g. YouTube, Twitch, Tubi, archive.org, Vimeo) and its video servers, to fetch the stream exactly as a browser would.
- A TV near you plays a Plex link: clients.plex.tv, epg.provider.plex.tv, play.provider.plex.tv, vod.provider.plex.tv and watch.plex.tv, to get a free guest login and find the channel or movie stream.
- A TV near you plays a Pluto TV channel: boot.pluto.tv, service-channels.clusters.pluto.tv (or api.pluto.tv) and Pluto's stream servers (*.pluto.tv), to get a free guest session, find the channel and play it.
- A TV near you plays a direct file link: the address in the link.
Good to know:
- Your own PC does the streaming. The site sees your IP address, the same as if you opened the link in a browser. The server never relays video.
- Links are shared. Anyone near a TV watches what was pasted into it or requested in its queue, and the server stores the link. Server owners are responsible for what plays on their server.
- Plex and Pluto TV use free guest logins. No account is used or needed. Each player gets their own guest login, tied to the random IDs in plex-client-id.txt and pluto-device-id.txt. These use Plex's and Pluto TV's private web APIs, the same ones community IPTV tools use. They are not official features, so Plex or Pluto TV can change or block them at any time.
- TVs out of range do nothing. A TV only fetches anything while you're within its view distance or hearing range, and only the nearest few play at once.
INSTALLATION AND REQUIREMENTS
1. Put the mod zip in the Mods folder of the server AND every player. It is required on both sides (players joining a server get it automatically).
2. Start the game and walk up to a TV. Click Yes on the question about the video tools (see above). The TV's status line shows the download progress.
3. Place a TV and paste a link.
Requirements:
- Windows players: 64-bit Windows and an internet connection for the one-time download
- Linux players: VLC installed from your package manager (yt-dlp and Deno download automatically)
- Steam Deck / Flatpak players: the VLC Flatpak plus the one-time permission command (see above)
- Mac players: vlc, yt-dlp and deno installed yourself (untested)
- Server: nothing extra; the server never plays video
- Disk space: about 250-300 MB per player for the tools on Windows (about 135 MB on Linux, plus VLC)
Each playing TV decodes its own video on the player's CPU. Three or four TVs at once is fine on most PCs (linked TVs in a sync group count as one); the player settings below help on slower ones.
CHAT COMMANDS
- /smarttv setup: shows the question about the video tools again
- /smarttv status: shows whether your video tools are ready, and why not if they aren't
- /smarttv setuptest: previews the question without changing or downloading anything
SERVER SETTINGS AND PERMISSIONS
Admins (the controlserver privilege) can always control any TV. By default, other players can control a TV if they have "use" access to the land claim it stands in. Anyone can watch and listen, and anyone nearby can add videos to a TV's request queue. Admin TVs can only be placed, broken and controlled by admins.
Settings in ModConfig/smarttv.json on the server:
- AdminOnly (default false): only admins can control TVs
- RequireClaimAccess (default true): non-admins need "use" access to the TV's land claim
- MaxRange (default 128): the largest hearing range a TV can be set to, in blocks
- AllowRequests (default true): let players who can't control a TV add videos to its request queue
- MaxQueue (default 20): the longest a TV's request queue can get
- MaxRequestsPerPlayer (default 3): how many queued videos one player may have at a time (TV controllers aren't limited)
PLAYER SETTINGS
Each player can tune Smart TV for their own PC in ModConfig/smarttv-client.json. Relog after changing it.
- MaxPlayingTVs (default 3): how many TVs (the nearest) play at once on your PC
- MaxStreamHeight (default 720): highest video quality fetched. Try 480 on slower PCs
- TextureWidth / TextureHeight (default 854 / 480): resolution of the in-world picture
- MaxViewDistance (default 256): caps every TV's view distance, for your PC only
- SyncCorrection / MaxDriftSeconds (default true / 10): jump back in step with other players when this far off (at most once a minute)
- HardwareDecoding (default false): decode on the graphics card. Can glitch to a green picture on some streams
- AudioOutput (default directsound): Windows sound output. DirectSound gives each TV its own volume
- AutoDownloadTools (default true): set to false to stop all downloads and use your own tools
- LibVlcFolder / YtDlpPath / DenoPath (default empty): paths to your own copies of the tools
- VlcLog (default false): write VLC's warnings to client-main.log for troubleshooting
- LiveVlcOptions / ExtraVlcOptions: extra VLC settings, for advanced troubleshooting
- MirrorX / FlipY (default false): fix a mirrored or upside-down picture
Troubleshooting: if a link won't play, the TV's status line shows the reason in plain words (for example copy-protected video, unsupported website, or not available in your country). Lines starting with [SmartTV] in client-main.log give more detail. /smarttv status shows whether your tools are ready.
KNOWN LIMITATIONS
- Copy-protected services (Netflix, Disney+, Hulu, The Roku Channel, Spotify, Crunchyroll) can't play. Neither can videos that need a login (age-restricted or members-only YouTube, Instagram, Facebook). Some Tubi and Plex titles are copy-protected too; the TV tells you when that's the case.
- Some websites block programs like the TV with a bot check (Cloudflare). The TV tries to get past it the way yt-dlp suggests, but some sites still refuse.
- Plex and Pluto TV channels depend on the player's country (mostly US) and can break if Plex or Pluto TV change their private APIs. Their content includes ads.
- Pluto TV's own address bar links often don't say which channel is playing. Use pluto: channel name instead.
- When a website changes, yt-dlp may stop reading it for a few days until yt-dlp is updated. The mod picks up the fix automatically.
- A video blocked in one player's country shows an error for that player while others watch normally.
- Sound fades with distance but isn't directional (no left/right).
- Playlists work for YouTube and archive.org. Other sites' playlists play their first item.
- TVs are in the creative inventory only, with no survival recipe yet.
CREDITS AND LICENCES
Smart TV is made by Darlem. It uses these open-source projects, downloaded from their official sources and unchanged:
- VLC / libVLC by VideoLAN (LGPL 2.1) - videolan.org
- LibVLCSharp by VideoLAN (LGPL 2.1), bundled in the mod zip - github.com/videolan/libvlcsharp
- yt-dlp (Unlicense) - github.com/yt-dlp/yt-dlp
- Deno (MIT) - github.com/denoland/deno
Smart TV is not affiliated with YouTube, Twitch, Plex, Pluto TV, Tubi, the Internet Archive or any other video service.
| Mod Version | Mod Identifier | For Game version | Downloads | Released | Changelog | Download | 1-click mod install* |
|---|---|---|---|---|---|---|---|
| 0.14.1 | smarttv | 46 | 13 hours ago | smarttv_v0.14.1.zip | 1-click install | ||
|
added radios and a walkman plus 2 large projectors that can have massive screens. added multi language support | |||||||
| 0.13.1 | smarttv | 137 | 3 days ago | smarttv_v0.13.1.zip | 1-click install | ||
|
forgot to fix one of the tvs is good now. | |||||||
| 0.13.0 | smarttv | 1 | 3 days ago | Release Retracted | |||
Retraction Reason:had to "fix" one of the tvs Changelog:added a whitelist option for admins to enable if they wish to /smarttvwhitelist shows whether it’s on and which sites are listed. /smarttvwhitelsit on lets TVs play only links from listed sites. /smarttvwhitelsit off lets any link play again.
| |||||||
| 0.12.0 | smarttv | 114 | 5 days ago | smarttv_v0.12.0.zip | 1-click install | ||
|
More tvs, added floor and ceiling tvs, aslo they can all be moved with the wrench now. | |||||||
| 0.11.0 | smarttv | 52 | 6 days ago | smarttv_v0.11.0.zip | 1-click install | ||
|
added a lot of Tvs. also added the option to move the screen closer or further away from the projectors. | |||||||
| 0.10.3 | smarttv | 24 | 6 days ago | smarttv_v0.10.3.zip | 1-click install | ||
|
added play back speed, 5 second skips, and it works with internet archive now. | |||||||
| 0.10.1 | smarttv | 43 | Oct 4th at 1:15 AM | smarttv_v0.10.1.zip | 1-click install | ||
|
added a read me with install instructions for linux, added channel save options, tv sync options, also added some other styles of tv not sure if I'll keep them. | |||||||
| 0.5.1 | smarttv | 75 | Oct 3rd at 12:57 AM | smarttv_v0.5.1.zip | 1-click install | ||
|
and so it begins. | |||||||








fantastic mod but im a bit of a goof
this works with anything that is mp4 or webm... and im autistic enough to test this on some not so PG sites...
Yes it does. I added a /smarttvwhitelist on/off so server owners can make it only work with certain sites to prevent such sites from being displayed in game.
gg
Could you add "5 second backward/forward" and playback speed?
Sure ^-^
Movie nights! Really cool!