MythTVfs
Download
Details
== MythTVfs ==
Kees Cook
This is a FUSE (http://fuse.sf.net/) server that was designed to communicate
with a MythTV backend server. It creates an overlay filesystem that
encodes TV Program metadata (title, episode, description) into a filename
so that systems that do not natively talk to MythTV can still get information
about a given show. The initial design goal is to make it compatible
with the in-filename metadata extraction capabilities that will (hopefully)
be in future versions of Galleon (http://galleon.sf.net/).
=== Usage ===
Several steps are required to make this application useful:
* install the FUSE libraries and kernel module
* enable NFS on your MythTV backend (if MythTVfs is run non-local to MythTV).
* mount the MythTV video repository (usually /var/lib/mythtv) somewhere
locally (e.g. "/mnt/myth-native").
* configure with "./configure"
* compile with "make"
* start MythTVfs with the MythTV backend server name and repository path:
./mythtvfs -o host=mythtv.my.network /mnt/myth-native /mnt/mythtvfs
-or-
you can mount mythtvfs via fstab, for example:
mythtvfs#/mnt/mythtvfs /mnt/myth-native fuse noauto,host=mythtv.my.network 0 0"
* if mounting the filesystem under Windows, you may want to add:
-o 'invalid-chars=<>|:?"*\' -o replacement-char=_
=== Filename Structure ===
Filenames in the MythTVfs filesystem are named based on their TV Program's
metadata. The elements are contained by the brace symbols ("{}") and have
the original filename embedded, and then end with ".mpg".
{SERIES_TITLE}{AIR_DATE}{EPISODE_TITLE}{RECORD_DATE}{CHANNEL}{DURATION}{DESCRIPTION}FILE.mpg
Where "RECORD_DATE" has the format "07.15 PM Wed Mar 31, 2005", and "AIR_DATE"
has the format "2005-03-31". "DURATION" is measured in seconds, and "CHANNEL"
is the shortened channel "callsign". "FILE" is the original MythTV filename
for storage (e.g. "1013_20051207210000_20051207220000.nuv"). The file ends
with ".mpg" because Galleon will only recognize file extensions that it
expects the TiVo to be able to play.
=== Hooking to Galleon ===
You'll need a version of Galleon that understands this file format layout.
A patch against 2.1.0 is available on the MythTVfs homepage. Just
add a "GoBack" path that matches your MythTVfs mount point, and it will
automatically extract all the metadata from the filename.
EOF
Change Log
0.6.1 2009-12-11 Kees Cook
* mythtvfs.c: add protocol 50, implement program column width guesser
0.6.0 2009-08-18 Kees Cook
* mythtvfs.c: whitespace cleanups.
* mythtvfs.c: fix FTBFS in host struct clearing.
* mythtvfs.c: starting to add cutlist via .edl file support.
* mythtvfs.c: correct programinfo width and mappings.
* mythtvfs.c: use arbitrary formats via hashtables (based on
excellent patch from Morty Abzug).
* mythtvfs.c: actually make thread-safe.
* mythtvfs.pod: update documentation.
* mythtvfs.init: example init script from Morty Abzug.
0.5.2 2008-05-04 Kees Cook
* mythtvfs.c: add "-o invalid-chars" and "-o replacement-char",
inspired by patch from Joe Pruett.
0.5.1 2008-04-20 Kees Cook
* Manpage from Bryce Harrington.
* mythtvfs.c: add "-o backend-version=N" to force backend versions.
* mythtvfs.c: add "-o program-width=N" to force new program widths.
* mythtvfs.c: disallow "/" in filenames.
0.5.0 2007-04-10 Kees Cook
* mythtvfs.c: added code based on patches from Mark Sullivan for
short filenames, and saner option handling. Cleaned up whitespace.
* configure.ac: bumped to version 0.5.0 due to option changes.
* README: add notes on how to mount via fstab.
2007-03-20 Kees Cook
* mythtvfs.c: updated for newer FUSE and added version fallback code.
2007-02-22 Kees Cook
* mythtvfs.c: updated for myth 0.20 and fuse 2.6.3, thanks to Fa Yoeu.
2006-05-12 Kees Cook
* mythtvfs.c: updated protocol version matcher.
* mythtvfs.c, compat/*: added option handling
2006-01-16 Kees Cook
* mythtvfs.c: adjusted file format to match Galleon 2.1.0 + desc patch.
2005-12-23 Kees Cook
* Initial public release