A sophisticated collection of programs allowing you to manage, watch and enjoy all your media files.

This system allows you to do the following (ideally):

  • Have one freely customizable shared library for your media files
  • Have various programs that allow you to play back and manage your files
    • Media player like player for standard use
    • MPD like player for stable, non-demanding music playback
    • XBMC like media center for your TV
    • MediaManager to fully edit everything and playback everything
    • Media Daemon to allow background processes to run
    • Media Server to allow you to stream and manage your media from other computers
  • Have the ability to keep your library on a different machine
    • Both metadata
    • And files
  • Allow a network of library instances
  • Have various scrapers for getting information in your library
  • Have a special download daemon which can handle .torrent or .nzb files
  • Have 2 special languages to write programs that handle your specific problems

A customizable shared library

The library that you maintain in this program is shared across all programs. This allows you to play an episode in one program and the other program knows that you watched it.

Also the library is fully customizable. This means two things: first, when you install this program, you can’t do anything with it because the library doesn’t exist; second, you can build your library the way you want it. Because it might be hard to design your library from scratch (and since I will be using it for myself), you can download library specifications which will give you a starting point (or you accept it as the library layout).

Various media playback programs

It’s become clear that some programs work better for some things than others. That’s why in this collection of programs, you have various programs that seemingly do the same.

Media player like (msuite-media-player)

This program is just an all-round program that can do almost anything but is just that, a media player. It understands most functions and is just meant for people who don’t need fancy features.

XBMC like player (msuite-media-center)

This heavy program is meant for your media center. It gives some nice graphics to give you a full media center experience. But although it does give you a nice front end for all your media, it won’t allow you to manage your stuff. It’s merely a nice presentation of what you have.

MPD like player (msuite-music-daemon)

Well, originally, MPD was made to allow people to separate two things from media players. The playback part and the browse part. That meant that if your browse part (which is more complex) crashed, the playback part would still play. That’s exactly the reason behind this program. It is a music only playback daemon which can be controlled by every other program. It runs in the background and plays until it shouldn’t play.

Because the program only has to play files and update the play count, it’s quite stable.

MediaManager (msuite-media-manager)

This is an advanced program that allows you to do anything that the suite offers. With this program, you can design your library layout, play back media files, design the media center interface, run the scrapers, setup automatic jobs and control all the daemons. You could use this program to play back everything but it’s interface is designed to expose every function of the suite rather than provide eye-candy and ease of use.

Media Daemon (msuite-media-daemon)

This program can host different processes that run in the media programs itself. It will, for example, run the scrapers, automatic jobs and downloaders.

Media Server (msuite-media-server)

This program gives the other programs the ability to download/stream the media files in your collection. Thanks to the fact that you can create a network of servers and media daemons, you can have several locations where your media files and library can be found.

Remote library networks

The system allows, besides simple offline usage, a complete infrastructure for managing your media data and meta data. You can move your data to special storage servers and even sync those servers automatically.

On different servers you install the msuite-media-server which contains both your actual files and your library. It is possible to host part of your media library on different server, this holds for both files and metadata. You can, for example, store your music and videos on different servers or even split your music collection across multiple servers.

Once you configure each node of your network, you will be able to configure all nodes from a single entry in your network. You don’t need to manually configure every node by visiting every node: once all the nodes are in your network, you can send any command for any node to any node in the network (as long as it’s not a disconnect command).

The network allows you to specify where certain data should exist. By indicating where nodes are in the network and correctly describing your network, you allow your playback programs to stream content from the nearest provider. This allows for example multiple media centers in multiple homes that share a common library to stream any media file, even though the link between the homes is slow. It works by synchronizing the local library when files change, and playing back the local copy.

Various scrapers

When you design your database, you can choose which data is automatically retrieved by using one or more of the scrapers. This allows you to get more information and even art to enrich every program that uses your library. You can impress others by showing the correct background information of every Artist, Album, TV Show, Book, Movie you have.

Integrated downloader

The media-daemon can run a torrent or nzb downloader to provide the latest TV Shows, Albums and Movies. By using the special language, you can automate this process to the point where you don’t have to worry about missing a TV Show or Movie. As soon as it’s available, it will be downloaded (if legally allowed). This downloader will automatically move it to the correct location and can do various extra stuff.

Special languages

Not only can you create your own database that includes the information YOU want, you can also create automatic programs that handle the limitations of your hardware. If you don’t have enough space on your hard drive, and the connection between the data nodes of your network is too slow, you could modify you media center to pre-download the movies you want to see. This can be implemented by the language that the system provides.

This language allows you to modify the media center, media player and anything that happens in the daemon and libraries. It also has access to the whole network so you can trigger something from a different node in your network.

Besides having a functional language to do things, most parts of the suite can also be designed by using a graphical programming language. You can connect various building blocks together to change stuff.