David Mace edited this page May 8, 2015 · 8 revisions


Scripts to generate a web interface for a collection of videos, music or pictures.


So you have a bunch of MP4s, MP3s, JPEGs, perhaps for a library, perhaps for classes?

Maybe you just need to knock together a simple, snappy web site to play your home movies?

All these scripts do are iterate through folders and build a web page interface for the media, with a table of contents. It can be browsed and played by a web browser that supports the relevant HTML5 features, either locally, on a hard disk, or served by a web server built into NAS or on your computer, over your LAN.

This provides a consistent, portable user interface for that content on practically any computer you open it with, given an HTML5 compatible-enough browser.

The Projects


This can be deployed on any web server, or even just files in a folder in a file system, like on a NAS that doesn't have an accessible/configurable web server, or portable USB media of some sort, or just on a hard disk. No database. No server-side scripting. No nothing. Almost any modern web server or file system at all should work with this.

100% of the front end functionality is in the web page templates. So you can change it any way you like. Skin it any way you like. Automate it, any way you like. The front end belongs to you, and there is no 'back end' to worry about.

The tools only overcome the security problem of recursively iterating through files, to generate a web site, offline, that a web client could otherwise do on its own, but won't do, because evil people hosting a nefarious web site could crawl your computer's file system with that capability.

Since YOU are hosting the content, well, I can't say anything about the 'evil' part, but at least you're personally in control. Just be responsible with that power.


The generated content works with iOS, Android, Amazon Silk, various desktop browsers, basically, anything 'new' enough to claim support for HTML5 video/audio.

Also try HTML5test, for a list attempting to break down these capabilities by devices and browsers. Especially before you invest in a 'Set Top Box' or 'Smart TV'.

Try Can I use...?, for a list of major browsers, and whether specific features will work, with what versions.

Use Cases

Just Some Files

You just put a bunch of files on a 'thumb drive', to give to someone. A quick run of this will make a player to both index what is on it, and preview. This preview does not require a user to install any software, or encourage a local computer (like one running iTunes or similarly badly behaved players) to 'import' the files into its self, automatically converting you into a skeevy media pirate.

Intranet/DLNA/'Media Sharing'

If you have a NAS or dedicated server already up and running that supports an HTTP server, and are playing from a 'PC' of some sort, or a 'Smart TV' with sufficient HTML5 support, or from phones/tablets/etc. connected to your wireless network, this will provide a very low-impact 'DLNA'-like service. Since the browsers already opens and plays MP3/MP4, there's no need to convert them in realtime, like a DLNA server does. This also 'indexes' (generates the web pages) very quickly, compared to most DLNA servers. While it won't play on an XBO360/PS3, the web browser on newer consoles may eventually have enough support for HTML5 media to work. Certain models of Smart TV sets also have sufficiently high HTML5 compatibility to work. If you've ever seen a 'smart' TV or game console indexing files before it will play them, or even working with DLNA, this is instantaneous access, by comparison.


If you carefully select a 'smart' TV that has HTML5 support for your media, you can plug a thumb drive into it, open the folder, play, and have it loop ads/presentations/menus/specials all day, without any external boxes/connections. Or with.

Rough Cut Preview

If you have a lot of things shot as video, this will allow you to make a 'rough cut' of what you have, simply by putting the shots together and playing sequentially. A rough cut that anyone can participate in editing, commenting on, etc.

Your Own Little Private Youtube/Podcast

It's just HTML media and content. If you set up a 'live' web server, pointing at your media, you can share content on the 'real' internet. I'd password protect that content. (I don't recommend this if you don't personally own every bit of content that you share. There are nasty legal liabilities involved.) Most home ISPs strictly forbid setting up a server, and usually your upload rate is severely limited, to begin with. Most web hosting services have limits to how much storage you can have, at any given cost. If your site becomes 'popular', you may need to seek more complex and expensive arrangements for hosting video. But these are a known quantity which most major web hosts can guide you through.


Well, maybe this set of tools isn't exactly what you wanted. It can either be modified to your heart's contentment, or, if Adobe AIR is 'creepy' to you for some reason, you can port it to whatever else... or see the BASH folder. It shows ways that it can be done. One could certainly look for '.txt' files to add content, and insert that into the links, to add details/commentary. Or use a canned 'forum' and use the titles names as keys for forum topics, and generate all of that automatically, as well. As any open source software should do, this serves as an example of how it can be done, even if you don't want this one. I don't mind. You can keep it secret, if you like. Nobody ever needs to know where you got the idea. If you're like me, you'll forget where you got the idea, anyway.