HydrogenAudio

Hydrogenaudio Forum => General Audio => Topic started by: soulsearchingsun on 2012-03-21 13:51:30

Title: Maintaining several libraries in one place
Post by: soulsearchingsun on 2012-03-21 13:51:30
Hi.
I'm managing the library for my family (3 persons) for the sake of convenience, because we have a similar interest in music. I'm storing all this on a server, in one single music folder. I introduced a 'library' tag field to distinguish the three libraries. As I said, there's a lot of overlapping between libraries.
Now i want to (semi-?)automatically hardlink each user's library to a separate folder for easy synchronisation with the user's computer.
I manage the library on the server with foobar, so I'd be in favor of a solution within foobar, but if it can be done differently, that's fine too.

The only solution I can think of at the moment is creating a full hardlink copy (link shell extension (http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html)) of the whole library and deleting the files there that don't belong to a user's library.
I tried solving this with foo_run, but foo_run can't take a list of files and call external application (like ln.exe from link shell extension) for every file in the list, it only calls the application once.

TL;DR Decide by tag if a file should be hardlinked to another folder.

I'm open to completely different approaches, too. Tell me whatever comes to your mind.
BTW the codecs used are mp3, aac, wv and flac (mainly)

edit:
Code: [Select]
X:\music\ (should contain all music)
X:\music_usr1\ (should contain hardlinks to the music in X:\music\ which usr1 has added to his library)
X:\music_usr2\ etc.
Title: Maintaining several libraries in one place
Post by: soulsearchingsun on 2012-03-26 12:58:38
bump
I'll appreciate any input from your side.
Title: Maintaining several libraries in one place
Post by: Nessuno on 2012-03-26 18:44:02
If you want to operate at filesystem level, you might define three different network users and then give read permission to each file of the library to the user(s) it belongs. Every user opens the same share but can read only his/her files.
Can't see a way to automate it, though.
Title: Maintaining several libraries in one place
Post by: soulsearchingsun on 2012-03-28 11:43:01
Thanks, that's a take on my problem I couldn't think of.
Seems I need to think some more, though.
Title: Maintaining several libraries in one place
Post by: phofman on 2012-03-28 12:33:27
How is the foobar user tag stored - in the audio file itself as a real tag, or in some separate database?
Title: Maintaining several libraries in one place
Post by: Roseval on 2012-03-28 13:19:40
Maybe JRiver Media Center offers a solution.

In general you don’t want to have multiple libraries and you don’t want to have them at all if the content has overlaps.
So 1 library on the server.
Clients can sync the local library with the one on the server.
You can define rules like “Display this when User=X”, using your own  “library” tag as a filter.

http://yabb.jriver.com/interact/index.php?topic=70600.0 (http://yabb.jriver.com/interact/index.php?topic=70600.0)

Title: Maintaining several libraries in one place
Post by: soulsearchingsun on 2012-03-28 14:11:16
How is the foobar user tag stored - in the audio file itself as a real tag, or in some separate database?

Real tag.

So 1 library on the server.
Clients can sync the local library with the one on the server.
You can define rules like “Display this when User=X”, using your own  “library” tag as a filter.

I'm already using a similar solution on the server, with foobar and foo_facets. Works well for what I do. Would work on the client side, too. Problem is, I'd rather have this sorted out on the server side. My mother doesn't need my prog-rock collection jamming her netbook -.-
Opt-out while syncing needs to be done by hand, again.

I begin to think that if I need a solution - I have to create it.
Title: Maintaining several libraries in one place
Post by: phofman on 2012-03-28 15:34:58
Real tag.
...
I begin to think that if I need a solution - I have to create it.


If you used linux on your server, there are several FUSE-based virtual filesystems solving your problem, such as http://www.pytagsfs.org/Introduction (http://www.pytagsfs.org/Introduction) , http://erislabs.net/ianb/projects/id3fs/or (http://erislabs.net/ianb/projects/id3fs/or) older https://gna.org/projects/tagsfs (https://gna.org/projects/tagsfs) . I have not tested them personally  (I am happy with mp3fs http://khenriks.github.com/mp3fs/ (http://khenriks.github.com/mp3fs/) ) though but most likely they will work OK.
Title: Maintaining several libraries in one place
Post by: soulsearchingsun on 2012-03-28 16:17:05
If you used linux on your server, there are several FUSE-based virtual filesystems solving your problem.

This looks promising! Linux? Not yet, but for this, a VM should suffice. I need to take a look into this.
As so often, I expect them to reach their limits with wv+embedded cue of which I have a lot.
Title: Maintaining several libraries in one place
Post by: phofman on 2012-03-28 16:36:29
This looks promising! Linux? Not yet, but for this, a VM should suffice. I need to take a look into this.


Probably the performance will suffer, but if I understand correctly performance of your tag-filtered filesystem is not critical.

As so often, I expect them to reach their limits with wv+embedded cue of which I have a lot.


I would be surprised if those filesystems supported wv, at least they do not specify this format. Is splitting them to flacs eventually viable?
Title: Maintaining several libraries in one place
Post by: JJZolx on 2012-03-28 21:10:42
For the cost of some disk drive space, it's probably simplest to just duplicate the common files in each library. Then you don't have to worry about tagging or specific application support. Give the other two users read/write permission only to their own library. If you rip a new CD, copy the files to each library. If they don't want them they can delete them.