Retro Viewer - WIP Release
Posted by Smashed Retro on
Retro Viewer: Stream a collection of MP4 files from your PC to your CRT. Create playlists based on genre, decades, and your own interests to play in rotation. Edit metadata of your files from one screen.
Download links listed at the bottom.
This was a project I started a year or two back, solely intending to create a program that will allow me to play video files of vintage commercials on a loop in my arcade. During the process of assembling a script to do this, I kept thinking of features I'd like to add to it, as well as editing tools I needed to make this process easier. The program is Python based and utilizes VLC to play the video files. The script reads text files that act as playlists, proceeding through the list video files in each playlist, playing back the files seamlessly. Using the left or right arrow keys on your keyboard will allow you to advance or go to the prior video file that played. The up and down arrow keys allow you to change what playlist is selected to be played. The current selected playlist will briefly be displayed in the top corner of the screen. Pressing the S button will enter shuffle mode and play the video files listed in the playlist in a random order.
There is a feature that will alternate what playlist plays depending on the time of day, meaning you can create a playlist of breakfast related video files to play in the morning, another playlist at noon, a separate playlist for the evening, and another playlist at night. For this release, it doesn't make sense to detail how to set this mode to be active as there isn't enough video files at this point for the feature to be effective. Also, in future updates I will have this setting be able to be toggled on by a user interface, rather than changing snippets of code in the script and editing the settings set in the text file.
The Meta Editor lists all of the available video files located in the Video Files folder. You can edit the Title of the file name, place a Tag on the file, set the Year of the original air date, and place the file into a Genre. Tags are useful for flagging a video file for an event, I flagged several videos for Halloween, while I used Genre to create categories based on the content in the video. For example, a commercial about a soda I set to Food and Drink. Genres, Tags, and the Year can have filters applied to them, allowing the user to create a list of videos specific to a select number of years. While the focus of this project is currently on Halloween videos as requested, in the future as the video library grows, tags dedicated to seasonal holidays or time of day will prove more useful.
Each video currently in the library I tried to find the highest quality version available, did minimal editing to clean up the footage, mastered the audio so every audio level is inline with one another, and formatted the files to be displayed in their original 4:3 aspect ratio. The video files have not been enhanced and are, by today's standards, low quality, but true to their original source. As the purpose was to serve as a media player for CRTs, the files look best playing back on them. Though you are not limited to solely using a CRT, you may be disappointed seeing these files scaled to a modern display.
For my setup, I use a mini PC coupled with an RF Modulator that takes an HDMI signal, and outputs a signal that goes to the coaxial input on my CRT. This made sense for me, as the RCA inputs I can reserve for game consoles, though you can use an HDMI to RCA converter if you desire. By design, the hardware looks to scale a 16:9 source down to a 4:3 aspect ratio, so the script plays back the video files in a 16:9 and then converts it back to a 4:3. This can be switched to have the playback at the video files native 4:3 ratio if you do not plan on using a modulator or converter.
In its current state, you will need to have a basic understanding in Python.
The video files have been sourced through personal footage I had previously recorded from my own tapes back in the 90's and 00's, some have come from contributions from other enthusiasts, Archive.org has been a great resource, as well as YouTube.
In the future, there will of course be updates for the program itself, but there will also be video packs available to download to continue growing the library. With Christmas being the next big holiday, I will likely focus on getting Christmas themed commercials together next, but then I plan on putting together video packs for specific brands. For example, every video game commercial that aired through the 90's, every commercial for a specific fast food chain, and so on.
Goals: Seeing all the enthusiasm for the projects has given me a lot of motivation to keep developing it further and adding features that you guys suggest.
- Feedback - I am at a point where I need people to hear other people's input on what they would like to see and how it functions so I can continue development. Feedback through comments and DMs is great, but it has been getting hard to manage messaging through all the different platforms so I made a discord to discuss this and other projects further. Also, just say Hi and show me what rad things are in your collection.
- Help! - I've been looking for a few people to help with the editing of footage so I can mainly focus on the program itself, but I haven't been successful in getting footage back after sharing it.
- Simplicity - I want this to be something that anyone can download and run without any background knowledge of Python and other development languages
- Community - Once I saw how many people were interested in the program, the idea of having dozens of users creating their own playlists became very exciting. I would love to get to a point where the library is big enough for users to create unique playlists that can be shared with one another through text files.
- Preservation - Though not the intended goal of the project, being able to create an organized library of vintage commercials that can be easily recalled seems like it would be great for preservation.
The program piggybacks off of VLC, you will need to download the scripts and library for the program, along with VLC and Python.
________________________________________________________________________________________________
Update 12/10/2025
A new version of Retro Viewer has been made available to download for windows users, along with new content packs for the holiday season. There are some small changes made to the Meta-Editor, mostly under the hood changes that helped me streamline the changes needed to edit the meta data. The big change comes from the addition of the new script, "FeaturePlayer." This new script will play feature length content, movies and TV shows, that will pause for ad breaks, simulating a television broadcast. This is a feature that was heavily requested and with its implementation, does come some changes to the directories.
There are several things to note regarding how the FeaturePlayer works. In the settings folder, you will see a text file for titled "FeaturePlayer.txt." The text document is formatted as the following:
Ads Played During Break: 5
Playlist: 1990's Christmas.txt
Shuffle: ON
Adjusting the value for "Ads Played During Break" will determine how many commercials are played during your ad break. The "Playlist" will play the commercials from within your specified playlist. As an example, I have mine set to play the commercials in my "1990's Christmas" playlist. Finally, "Shuffle" indicates whether you want the commercials in your playlist to be played in sequential order, or if you want the video files played randomly.
There is a "MediaFiles" folder where you will drop in your video files for your TV shows and Movies. Within the Playlist folder, there is a text file titled "NowPlaying.txt." In this file you can list the movies and shows you wish to have played. One other folder has been added to the directory which is titled "TimeStamps." The program will look for a corresponding text file, named after the identical name of the video file playing, which it uses to know when to take an ad break. For example, if the video file is titled "A Garfield Christmas (1987).mp4," the corresponding text file should be "A Garfield Christmas (1987).txt." When you ad a file into the MediaFiles folder, you will be required to create and ad a text file to the "TimeStamps" folder. The format for the TimeStamp text files reads as the following:
Start: 0:00.00
End: 23:31.00
Timestamps:
03:18.14
07:13.22
15:08.06
The "Start" time will indicate at what time in the video file you want the video to start playing within the program, while the "End" time will dictate when the video file will stop playing. I decided to include this because it made it easy to download video files from the Internet Archive that may have been from home releases, and be able to cue right to the start of the program, and end when I wish for it to stop. The "Timestamps" are the moments when the video file will pause to go to an ad break. You will have to enter these times manually and should be done below the "Timestamps:" header. There is some preliminary work to have all of this done for the user automatically, but it requires further work.
________________________________________________________________________________________________
Update 2/16/2026
The next revision of the Retro Viewer Project is finally available and includes a big feature that many were asking for, bumpers. The FeaturePlayer script was added to the project to allow users to load in their media files from TV shows and movies, and inject ad breaks while it plays, effectively simulating broadcast television. Along with this request, it was requested that we add the ability to play bumpers during the ad break. To add this feature, this required some changes to the existing folder structure. Previously, there were some bumpers included in the VideoFiles folder, and were tagged as such. When I started this project, I hadn’t considered ever adding the ability to play tv shows, so I had thought to condense commercials and the few bumpers I had, into one folder. Though I had wanted to avoid it, I felt it best to create a new folder separately for the bumpers to exist. This allowed for easier organization, but also greater detail when applying metadata to the bumper files. Along with the ability to add a title, year of broadcast, and tag, you also have the ability to add a channel for the broadcast. This allows the user to specify whether they only want bumpers to play from a specific channel. The idea behind this is that you can load up your shows from a specific channel and then have only those bumpers play with that belong to the channel the show was broadcast on. The FeaturePlayer.txt file settings have been amended to reflect the following:
Ads Played During Break: (numerical value for the numbers of commercials you want played)
Playlist: (the commercial playlist you want featured)
Shuffle: ON/OFF (if you want your playlist to be played in random order)
Bumpers: ON/OFF (this will activate the bumpers)
Channel: (indicate the channel tag you want selected)
Though not in this update, I’ve begun working on accessing additional fields in the video files to store metadata to allow for further classification. One thought being that if there is a bumper themed specifically to one show, the program would scan the metadata of the show that is active and play the corresponding bumper. Holiday bumpers are another thing that is being considered as well. Once we can get all this sorted, I’m hoping we will be able to start building out channel playlists, which would be exciting.
Another script that has been updated is the MetaEditor. Now when you drop in your VideoFiles, you can auto-generate fields, if they follow a specific formatting. For the video files I have provided, I generally stick to a naming convention that follows in the manner of “Company – Descriptor, Year.” To quickly fill the title field, there is now a button on the bottom of the window that will copy the text from the filename, over to any corresponding title field that is listed as “Unknown.” Along with this, if the file follows the conventional naming format with the “, year” at the end, you can press a button and have all the years entered into the “Year” fields. Furthermore, there is now the ability to drag and fill for the tags and genre columns. Click once on the column you want to drag, and you will see a window appear informing you about the fill feature. Click the column again you want to drag, and while holding down, drag the cursor over the fields you want to write to. These added features greatly improved the efficiency of adding metadata to the files.
Downloads
Software
Download Retro Viewer 0.55 (Windows)
Download Retro Viewer 0.54 (Raspberry Pi)
VLC Download
Python Download
Content Packs
Christmas Pack 1
Christmas Pack 2
Christmas Pack 3
Halloween Pack 1
Video Packs
Video Game Packs
Tiger Electronics
Hardware
HDMI to RF Modulator