MLQ (Media Library Query) file format and mime type proposal


I'm one of the main authors of BMP 2 (still being worked on), and along the way of reworking our library, i came across the idea of encoding library queries as URIs, which may look like this:


BMP 2 has a plugin archicture which is a small VFS on it's own, and we treat certain things as "containers" (i.e. they "contain" URIs, like PLS playlists, XSPF, M3U, etc).
Now i thought it might be not a bad idea to create a playlist format with these query URLs, and i've called it "MLQ" for media library query. In theory, it's not even
application specific. The keys (identifiers), like artist, album, etc, are all based on GStreamer tag identifiers. (They could be maybe adapted to , but it seems insufficient and doesn't specify certain items, like musicbrainz metadata, which GST does).

So i've called this file format "MLQ", with the extension .mlq, created a mime package file for it:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns=" ">
  <mime-type type="application/x-media-library-query">
         <comment xml:lang="en">Media Library Query List</comment>
         <magic priority="50">
            <match value="query:///" type="string" offset="0"/>
         <glob pattern="*.mlq"/>

Adding a file of this type to BMPx, or just a plain query:/// URI itself causes a library query and appending of the relevant items to the tracklist (BMP is currently mostly based on the concept of a mutable playlist to which items can be added from various sources, unlike e.g. RB which has mostly immutable "Playlists", but allows for custom queues).

Another example is:


Or it might just be:


Since this is very common, and having the discussions about a common music database in mind, this seems like a useful proposal, since it is not player specific.
This ships currently with BMP 2/BMPx SVN, and while i will ship this with the 0.20 release (end-July) anyway, what does everyone think of this in a broader context (common music database, etc)?

-- Milosz

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]