Making a multi-channel retro TV emulator

This has to be the most ridiculous thing I have ever thought up. I’ve decided on a new hobby, a side project that with a bit of luck and a lot of time might become something other people could enjoy as well. The idea is to create a means by which a website can emulate retro television.

There are so many streaming services out there right now but I’m a retro gamer and a fan of the “old ways” of doing things. I still like VHS tapes, I collect DVDs and I’m very much into old computers. I also love a bit of hobby programming; as my continued Live Game Coding series on the GameHammer YouTube Channel shows. So while I was writing about some retro games one day, I thought about the possibility of combining my coding hobby with some of my other hobbies. The thought of a completely automated retro TV station then sprang into my mind.

But why stop at just one station? If you can automate one, why not automate several? That way you can have the full retro TV experience of channel surfing to find something you fancy watching! In that moment, Project Retrovator was born. At the time of writing, that URL doesn’t actually point to the project (it goes to the GameHammer YouTube channel) but when the project is further along, that will be where you can download the code to run your own retro TV stations.

This is Retrovator’s equivalent of a “Hello World”. 🙂

Right now, the project is on the starting blocks. I’ve got the code running to display a single video file. This was literally 30 seconds of work, at most, but the idea is now sound; which is great. Additional work – lots and lots of additional work – will be required before the project is ready to launch. Nevertheless, I’m looking forward to this being a fun and fruitful project. I’ll document it all here, so you can follow along.

When it nears completion, my goals are to have the Retrovator offer the following:

  • Run at least five emulated TV channels
  • Load and display video files based on an automated TV listing for each channel
  • Allow custom start and end times for each channel; so some channels can be 24 hours while others only broadcast between certain hours of the day
  • Automatically insert adverts, channel idents and whatever else is needed into video files; to properly emulate television and give each channel a “feel” of its own
  • Play videos from the appropriate point when “tuning” to a channel, rather than starting them from the beginning. If you “tune in” after a show has started, it should already be running.
  • Choose videos from a selection hosted on the computer the Retrovator software is on; rather than relying on streaming services, etc. This is to make the code portable and to avoid copyright problems (you’ll be responsible for making your own shows, I won’t be giving you access to copyrighted media!)

There will be other items to add along the way, I have no doubt about that, but for now those are the key goals to focus on. At present I’m considering whether the write the project in PHP, which would make it possible to run the Retrovator on any device that can access the web, or whether it will have to be in something more rugged, like C++. The likelihood is I’ll try for PHP first and jump over to C++ when it turns out PHP can’t do everything I need but let’s aim for as wide a possible user base as possible, shall we?