2009/02/18 - media%20server
I have picked a version number based on its current progress. It is ready for download and development by the community! I have labeled it 0.4.0 (Alpha) because there is still a ton of work to be done. Fortunately, there is enough code already made and it is so fully featured it is just a matter of plugging out some code for more features. It is even cross platform! That’s right, it should now be able to run on WAMP (Windows, Apache, MySQL, PHP), LAMP (Linux, etc.), and MAMP (Mac, you get the point).
It can run without a database, and just show a flat file structure (I don’t recommend running this unless it is behind a secure connection). Or it can run with a database and allow for quick searching! Aliasing can be used on paths by matching the paths with regular expressions, so even if your operating system doesn’t support links, the users can still see pretty paths! As discussed before, the site contains 3 main parts, “modules” which are responsible for handling different file types. It currently handles zip archives very nicely, thanks to the getid3() library for PHP. It also handles ISO images, and can catalog the entire file-system contained in an ISO. It supports any audio and video type that VLC can handle using an external process. It can convert any image that ImageMagick can handle (which is a ton!). Which leads me to the “plug-ins” section; plug-ins allows users to access the files. Plug-ins provides a link between the files loaded by the modules and the output of the files in the templates. The “encode” and “convert” plug-ins read files from the database and send them to other external programs, or set header information and allow for downloading. The “select” and “list” plug-ins are the most important; select allows users to view the files and select files to be downloaded in the future. The list plug-in allows users to download the list of selected files in many different formats. List formats can be defined in various ways, either a plug-in could be written to handle a specific type of list, or the template system can be used for outputting a type of list. Finally, it uses Smarty for its template system, so its appearance has limitless potential. There is default template that provides easy viewing on phones, and an EXT JS template that takes advantage of the EXT JS library to provide a beautiful Windows-like front-end to the users.
Here I will discuss some of the plans for features I would like to add to the site. A “movies” module that can recognize DVD images and full length movies on the file system, I would like it to download information from IMDB. A “subversion” module that can recognize subversion databases on the file system, and alternatively checked out projects from a remote repository, it will then list all the files apart of the remote or local subversion, it will also be able to recognize diff files and versions. An archive plug-in will be added to handle outputting any file into multiple different archive formats. It will also handle outputting single files that come from archives. More templates! I plan on copying templates from more popular (but less feature-rich) services such as Ampache, Jinzora, kPlaylist, and even WinAmp Remote! Adding templates is easy using the Smarty template system.
Visit the download page for more information!
LAMP, WAMP, MAMP VLC ImageMagick Enhanced cTorrent