I’m an undercover movie, TV, music and pop culture nerd, specifically the 80s and 90s, maybe a little of the 00s. And now as a grown adult with a little bit of experience and wisdom, I view media such as movies and TV shows a special part of my life, taking care of preserving things that I love and having it available the way I choose. We live in a world to where streaming is the main way most people have access to these things; you can get
almost anything your heart desires if you choose to pay for temporary access. It’s a great idea on paper and sounds like a dream to younger me, but getting to the greener pastures isn’t always that great.
Have you ever taken a trip or vacation, only to find that you have poor cell service or that the AirBNB you rented has a super poor Internet connection? It sucks, right? For me and my family, we take vacations fairly often and enjoy the disconnection, but we still like to have the occasional movie to watch together or a TV show we’ve seen a million times to lull us to sleep, get our minds off of the day. Jellyfin or Plex to the rescue? Again, if you have a bad connection or even if you forgot to download an offline copy of a movie to your device before leaving the house, you are simply screwed.
This actually happened last week (and a few vacations before that). My wife and I would lay down for the night, open the iPad to Jellyfin, and bam, buffering. We found that PlutoTV worked ok for some older TV shows and wound up downloading episodes of a show on Apple TV that took quite a bit of time to complete, even on a cellular hotspot. Not a simple, fun experience.
I’ve had about enough of this and thought, there has to be a way for us to travel and enjoy movies and TV shows without relying on poor cellular or Internet service. What would that be and what would it look like?
I’ve tried this before…
There are plenty of ways to accomplish the goal, right? A laptop, transferring media to a tablet, bring a small computer and plug it up to a TV, etc. Pick what you want to watch and go. Well, what if you didn’t want that? What if you just wanted to have something, anything to play? What if you wanted a more classic TV approach? Back in the olden days, cable TV channels picked out the programming for you and you watched what was on. It was that simple and honestly, I kind of miss those days. I actually open up PlutoTV quite often to get that experience. Sometimes you get reminded of an awesome movie from the 80s, 90s and 00s, while sometimes you get to watch older shows like Sanford and Son when you typically would not choose to from a streaming service.
So how do we take our media and have it in this format/style? Well, there are a few services that already do this and in my experience, they are “ok”. Some are a little complicated, while others are not well optimized. But could I make my own….?
Rolling my own
Let’s introduce what I call “Project One”. It’s a silly, bland name but it works for me.
Inspiration came from someone who boosted a YouTube video a few weeks ago (thanks Ben!). Here’s a link so you can skip the ads: RetroTV
This project is by far the best retro style TV experience I have ever seen and boy, did this guy go into the details on this one. Definitely check out the entire video before reading on.
Project One is a fully offline, hardware based media player that is portable and can be taken anywhere; no need for an Internet connection or dependencies. Project One will have a display built in or have the option to connect it to a larger TV with HDMI out. Unlike RetroTV, which is tailored to a smaller resolution 4:3 ratio display, I want to take a more modern, upgraded approach to the hardware, having at least a 720P or 1080P display, easy access to internals, a simple design, and upgradeable storage.
Let me clarify two main goals for Project One. First and foremost, Project One is offline first; it cannot rely on the Internet for the core function of video playback. Next, I don’t want it to have any commercials, unless I create a channel dedicated to it. The RetroTV project shown above is really neat in that it puts commercials in the mix based on chapter markings, spaces out the time to fill time blocks, puts holiday commercials when the date is right, etc, however, I think that in today’s time, we have so much advertising in our faces and we don’t need anymore of it. It’s a novel idea but I honestly don’t want it. Instead of commercials to fill in the time, what about YouTube videos or home videos? Or what about just a simple display of a GIF or PNG? What about a slideshow of photos? Maybe just a countdown to the next airing? A lot of possibilities here.
SBCs are a popular choice for projects like this and the options are endless. Do you pay for a Raspberry Pi 4? Do you go for a popular alternative like the OrangePi 5? Or do you go with a mini x86 PC like a Beelink or even a used “1 Liter” PC? My biggest concern is video playback capabilities and software support. The Raspberry Pi 4 checks all the boxes since it is the most popular one. Going with a Beelink x86 PC, you get a lot more hardware for the money but I’ve been reading about faulty devices after just a few months of purchase. I’m leaning towards a Raspberry Pi 4b with 4GB RAM at the moment. A “starter kit” is just a little over $100 and it has everything I need. An OrangePi 5 is around $120, while a BeeLink or used x86 mini PC is around $150. It’s really odd to say that the Raspberry Pi is the cheapest option…
Next is the display. I haven’t decided on this either, but I thought about the possibility of purchasing a “portable monitor”, one that you plug in power and HDMI. These are fairly inexpensive and are simple to setup and use. As to what size, I thought a simple 10-11" screen would keep things portable enough.
What about storage? This is an easy answer because higher capacity spinning drives are pretty cheap now days. I’m starting this project off with a spare 2TB SATA drive that will be connected via USB, but I’ll look into flash storage later on, depending on which computer I decide to go with. It’s important that storage be expandable in the future.
There are other things like built in speakers, the enclosure, knobs and electrical stuff, but that’s another discussion for another day.
In the spirit of simplicity, I want to keep everything in Python if possible; Bash scripts may be included for obvious reasons. Python is super powerful and easy to use, but the hard part is getting specific concepts into a “Pythonic” way.
What OS? If this project is powered by a Raspberry Pi, I will obviously go with an OS that it supports, along with video playback drivers, acceleration, etc. Not sure yet about the DE but I will go as light as possible.
One thing I wanted to do with this project is take very detailed notes and share my experiences through my blog. I’ll probably create a new section called “Project One” to keep things organized. There are a lot of things to learn here so having notes is going to be key to my success; expect many posts in the future.
This project is not simple and will take some time to complete or even get off the ground. But that’s fine. I wanted a project that I was remotely passionate about, something that was possible in the realm of my knowledge, something I could actually do. I’m ok with this taking time.
Will I upload this to Github and distribute to the public? I’m honestly not sure. I plan on building this around the concept of it being as dynamic as possible but I can’t promise anything. Everyone stores their media in different ways and this project is a solution fit around me, how I do things.
So that’s it! Project One officially kicks off today. I’ve been writing a lot of notes on my iPad, creating some tasks on my to do list, and just getting back into the Python language. I have a “v0.0.1” milestone that I want to get to so I’ll post about that another time.
If you have any questions about this, please contact me through Mastodon and let’s talk!