a pirate is a farmer

DIY Smart TV

DIY Smart TV

Smart TV for the smart TV skeptic

Suppose your soul has a prepper part, a pirate part, and a creative part.

How do you enjoy the comfort of a smart tv without depending on streaming services and on your own terms?

The problem with smart tvs

You rely on streaming services - which decide the price of your entertainment - which are half a word apart and force you to have internet uplink

You need a tv that connects to the internet (easy to find) but a privacy nightmare - have you ever headr of ACR? Automatic Content Recognition, a technology that tracks what you watch and sends that data to the manufacturer and advertisers. - have you ever heard of Weeping Angel? Fake-off? Ambient listening? okok Weeping Angel needed physical access to the tv, but do you think NSA didn't go farther?

The obvious solution

Imagine you happen to have 2 spare raspberry pi and an hdmi cable.

Imagine you are hosting your own old family video on a raspberry pi, maybe with a gem like ✨copyparty✨ THANK GOD SOMEONE MADE COPYPARTY.

Well, all you need to access something hosted on copyparty is a software like a player, the lighter the better, the more compatible the better, and a way to connect it to your tv.

But lucky you, you have a spare raspberry pi, an hdmi cable and VLC.

Now you can connect the raspberry to your tv, connect the raspberry to you LAN and never allow the tv to connect to the internet. You can stream your content from copyparty to VLC on the raspberry, and enjoy your content on the big screen.

The only pain point I felt and fix

Ehm, how do you control the raspberry pi?

The more obvious solution is to use VNC... and i think it s fairly good for early development.

But when you are on the couch, damn, you want to use a remote control, not a mouse and keyboard on your lap.

So i decided to vibe code a little webserver: golang + html / css / js. I m a developer, so i can't name things and it ended up being Lumiere (the third).

It's not the exact solution i wanted, cause i don't like the idea of having to use my smartphone to control the tv, but right now i don't have time to test if my jailbroken kindle can be used as a remote control, so for now, the smartphone is the only option.

What is Lumiere?

Lumiere is thought as an agent for a raspberry pi connected to a tv. Not to be intended as an LLM agent, but as a webserver that can execute commands on the raspberry pi which is connected to the tv. It can be used to control the raspberry pi and the tv, and to stream content from copyparty to VLC on the raspberry pi.

Let me make 2 examples:

This is what i intend with "agent".

BTW: if you are not hosting you own videos, well... you can stream with the firefox that comes with the rpi.

What it does?

The main idea is to handle a list like the Spotify play queue. You can start playing a video, then enqueue the next one (is you maybe sort you family videos by episode and season), but also push on to of currently playing video if you want to change family-series.

I try to keep it simple.

How it does it?

Every operation (both enqueue and push-in-front) provides the url to the video (copyparty is perfectly capable of serving it, vlc is perfectly capable of playing it) and Lumiere just executes the command to play it on the raspberry pi and eventually stop the currently playing video if there is one.

How to use it?

Well, you have to install dependecies, download the bin and "install" the service, so that you do not have to start it manually every time you want to use it.

Use the ui to push videos to the queue...

...or ;) write another client + server, that indexes your family videos (maybe by director) and pushes them to the Raspberry Pi with a click on another web interface.

What i didn t like

I hade to renounce to the idea of deploying in docker, cause i needed to execut commands on the host with a desktop environment.

I had to vibe hack my way into forcing the audio output to the hdmi. The rpi was pighead and the audio was going to the headphone jack, so i had to execute a command to force it to go to the hdmi. I don't like it, but it works.


PS I do not have any place to host the bin. I swear i ve made it XD but i m not ready to share it cause i would have to share on places tied to my identity and i m not ready for that. You can vibe code you own version of it, it's not that hard, and if you do, please share it with the world.

PPS i m not a security expert, i m just shy, i guess someone with right motivation can find me