NAME

id3fsd - FUSE filesystem for browsing id3 tags


SYNOPSIS

id3fsd [-vh] [-f dbfile] [--] SOURCEDIR MOUNTPOINT


DESCRIPTION

id3fsd provides a browsable filesystem of your music files, organised into sub-directories by id3 tags (or flac/ogg comments).

id3fsd allows you to construct boolean queries from a tag folksonomy such as:

  goth/AND/decade/1980s/
  postrock/AND/NOT/rating/terrible/
  thrash/OR/rapmetal/AND/NOT/wears-a-red-hat/
  prog/AND/decade/1970s/OR/psychedelia/AND/decade/1960s/
  location/sweden/AND/screamo/AND/postrock/

Multiple tags can be stored in the genre tag, separated by commas. An index should first be created with id3fs-index(1), then id3fsd can mount the files in SOURCEDIR on the directory MOUNTPOINT.

If not explicitly specified (with -f), the index is searched for at SOURCEDIR/.id3fs.

The resulting filesystem is read-only. Tags appear as directories, and files appear as symlinks to the actual files in SOURCEDIR.


QUICKSTART

To mount a view of ~/music on ~/tags:

  $ mkdir ~/tags
  $ id3fs-index ~/music
  $ id3fsd ~/music ~/tags

You may need to be in the fuse group, or be root.


OPTIONS

SOURCEDIR

Directory containing actual audio files and database file .id3fs (unless otherwise specified with -f).

MOUNTPOINT

Directory to mount the id3fs view of the files.

-t NUM | --tagdepth=NUM

Maximum number of tags in an expression. A query with many ANDs and NOTs can get quite slow. This option allows a cutoff before things get too slow, as well as providing some eventual limit when processes recurse into the filesystem. The default is 6.

-f FILE | --database=FILE

Use database in FILE. The default is SOURCEDIR/.id3fs.

-v

Enable verbose operation. Repeat for more verbosity. If verbose is enabled, id3fsd does not detach from the terminal.

-h

Show a short help message.

--

End of options.


FILESYSTEM LAYOUT

A path in the filesystem consists of a tag query expression, followed by directories containing the matching files, arranged by artist and album.

Example paths:

  /krautrock/AND/year/1971/
  /krautrock/AND/year/1971/Can
  /krautrock/AND/year/1971/Can/Tago Mago/01-Paperhouse.mp3
  /krautrock/AND/year/1971/Can/NOALBUM/Can - Oh Yeah (Live).mp3
  /krautrock/AND/year/1971/Can/TRACKS/01-Paperhouse.mp3
  /krautrock/AND/year/1971/Can/TRACKS/Can - Oh Yeah (Live).mp3
  /krautrock/AND/year/1971/NOARTIST/unknown-track.mp3
  /krautrock/AND/year/1971/TRACKS/01-Paperhouse.mp3

id3fs supports OR, AND and NOT. NOT has the highest precedence, followed by AND, so foo/OR/NOT/bar/AND/baz is parsed as (foo OR ((NOT bar) AND baz)).

Tags

Tags are extracted from the genre tag of audio files with id3fs-index(1).

Within the genre frame/comment, tags are separated by commas.

Tags can have values, separated by a slash, eg metal/thrash, rating/5. Certain special tags are automatically filled in from other file metadata.

Special Tags

The following tags are automatically derived from other metadata in the audio files:

year

Extracted from the year or DATE tag. If not found defaults to year/UNKNOWN.

decade

Also extracted from the year or DATE tag. If not found defaults to decade/UNKNOWN.

v1genre

If a mp3 file has an ID3V1.1 genre tag, its value is assigned to v1genre.

audiotype

Type of audio file (mp3, ogg, flac). Always set.

Special Directories

TRACKS

All tracks that match the given tag expression, whether they have an assigned artist and album or not.

NOARTIST

Tracks matching the given expression that do not have an artist tag.

NOALBUM

Tracks matching the given expression that do not have an album tag.

ALL

This is a special directory in the root of the filesystem, that provides access to all the indexed files, regardless of tags assigned.


FUSE AND MOUNTING AUTOMATICALLY

For others to be able to view your id3fs mount(s), you need to set the option user_allow_other in /etc/fuse.conf.

To mount a filesystem automatically, put an entry in /etc/fstab like:

  id3fsd#/source/dir    /mount/point    defaults   0   0


CAVEATS

Because id3fs offers a combinatorial explosion of views of your files, processes recursing into the mount point will take a long time to traverse it.

Ensure your backups, cron jobs, /etc/updatedb.conf, etc. are configured to exclude the mount point.


BUGS

Please report any found to ianb@erislabs.net


SEE ALSO

id3fs-index(1), http://fuse.sourceforge.net


AUTHOR

Ian Beckwith <ianb@erislabs.net>

Many thanks to Aubrey Stark-Toller for help wrangling SQL.


AVAILABILITY

The latest version can be found at:

http://erislabs.net/ianb/projects/id3fs/


COPYRIGHT

Copyright (C) 2010 Ian Beckwith <ianb@erislabs.net>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.