[mythtv] MythMusic: MetaLibrarian RFC
Colin Guthrie
myth at colin.guthr.ie
Wed Mar 23 21:31:21 UTC 2005
Simon Kenyon wrote:
> ok, so i've re-read your proposal
> i'll play it back in my words and see if you agree (or ignore me, should you
> see fit)
Hehe :)
> metalibrarian is a library
> it reads and write metadata
> this metadata can be attributes of "content" - name of artist, etc
> it can also be attributes of the use of this content - last played, playlist
> membership, etc
> this metadata can be stored in the files where possible (ID3) or separate
> (playlist)
>
> the library can be an RPC into a server or it can be a wholly self-contained
> API with no server
>
> would it be fair to say that it is an ID3 tag library extended with methods to
> read/write data outside the basic ID3 tags. the server aspect of it adds
> flexibility but as the files have to available on the filesystem, the
> extended metadata could be stored alongside the media it describes
>
> if the library was based on or used an extension of an existing API then it
> could be a drop in replacement for that used in mythmusic.
>
> did i get it now?
More or less that is a good summary.
I'll assume that when you say "ID3" you mean a generic metatag (e.g.
vorbis comment etc.) too.
I'd also add that the data would be stored (or in the case of ID3
related information perhaps "mirrored" is a more accurate term) in such
a way as to provide very efficient access and searching (e.g. in a
database in much the same way as MythMusic/Amarok/Domo etc. do), so when
you say "the extended metadata could be stored alongside the media it
describes" this is technically true but would be inefficient in terms of
querying etc.
Also, as the majority of music programs offer some form of hierarchical
view to browsing a music collection, one of the main features I'd like
to add into metalibrarian is the ability to setup a preferred stucture
for this heirarchy (Myth offers some capability to configure this
heirarchy just now and it works fairly well for the majority; Amarok
also offers some degree of configuration). But everyone has their own
tastes and one of the biggest complaints I hear is poor support for
classical music tags. So I'd like to make a really flexible hierarchy
config system that could use complex "if's" on the tags at each level e.g.
level1 = if tagnotempty(composer) "composer (artist)" else "artist"
level2 = "album"
etc.
(this syntax etc. it not even slightly thought out at this stage, but
hopefully you catch my drift).
This script can be pre-cached in the database and supplied very quickly
to any application that wants a hierarchical view of the music collection.
You could store several of these hierarchical configurations; call them
"views" for the sake of argument. A really nice feature would be a Gnome
VFS (virtual file system) plugin that allowed you to traverse these
different view hierarchies as if they were normal files/folders (I think
this is how VFS stuff works tho' I may have misinterpreted this!!).
I think when you say:
> if the library was based on or used an extension of an existing API
> then it could be a drop in replacement for that used in mythmusic.
is a not quite correct. I think functionality wise it could be a drop in
replacement for the database that drives MythMusic (mainly due to me
having a fair bit of experience of MM's setup), but I doubt it would
have a similar API to the functions/classes in Myth as it stands currently.
WHen I was talking about existing APIs etc. I was really just wondering
if DAAP (or similar) could for the basis for exchanging the data, but I
think Thor cleared this up for me in that it probably wouldn't be the
best base (tho' this would not rule out creating a DAAP daemon that used
the MetaLibrarian to make the music/metadata available to all DAAP clients).
Col.
--
+------------------------+
| Colin Guthrie |
+------------------------+
| myth at colin.guthr.ie |
| http://colin.guthr.ie/ |
+------------------------+
More information about the mythtv-dev
mailing list