09
Apr
2021
1:55

Reverse Engineering A VLC Media Player Skin

Summary of this post: inane geeky technobabble about reverse engineering a “skin” for VLC media player. Ye have been warned.

I use VLC as my media player. Like most folks, I wanted a dark skin for it (which they have supposedly been working on a default one for years now). There are lots of user created skins you can use. I have a very specific taste in what I want. Dark, minimalist, compact, I want to see the actual volume percentage, and I want the progress bar to display current time/time remaining. Most of the skins, I couldn’t stand. I found one that almost met all my needs though. Darklounge. The only thing was it had a progress bar that displayed current time/total duration.

I looked into how to edit skins. There is an official skin editor that is ancient (as are most skins). I figured changing that one thing should be pretty simple. I downloaded the editor. Oh, it needs Java Runtime Environment. Ew. This is too much trouble for my tiny change. I find lots of other skins to try. Jump through hoops to download them. None fit the bill. I decide to bite the bullet and try and install JRE just to do this and then I’ll uninstall everything. The skin editor still thinks I don’t have JRE. I read somewhere about setting a JAVA_HOME environment variable in Windows settings. I do that. Hey the editor starts now but I can’t for the life of me get it to even open the skin I want to edit. Again I abandon this project and try every possible other skin to see if any are good enough. Nope.

More research. I discover that the skin files (.vlt files) are actually just .zip archives. I change the extension. Windows can normally open those by default, but not this one for some reason. So I fire up 7zip which CAN read the archive. It’s just a bunch of .png files and one .xml file. So what I need HAS to be in the .xml somewhere. I look up the variable that skins use. I find the “$D” variable for “Duration” and change it to “$L” which is the variable for “Time Remaining.” Save the archive, and BAM! Perfect! I finally have my dark, minimal, compact VLC skin with volume percentage and that displays current time/time remaining. I do a highly satisfied victory butt dance in my chair. I’m practically Neo in The Matrix*

*That is sarcasm as, while this wasn’t necessarily “simple,” it’s fairly elementary amateur tech stuff.

Leave a Reply