Installation

1. Copy ATVFiles.frappliance to this folder: /System/Library/CoreServices/Finder.app/Contents/PlugIns on the Apple TV. You may want to create a symlink from there to some more convenient place.

2. Restart Finder.
The command ps awx|grep [F]inder will list the PID as the first number, then running kill PID will kill it. The Finder will be automatically restarted.

If you have the Apple TV drive mounted on your local system, the correct path is on the OSBoot volume.

If you have the drive installed in the Apple TV, you will likely have to mount the root partition as read-write (using sudo /sbin/mount -uw /) to copy it. The command sudo /sbin/mount -ur / will reverse the above action.

Usage

Enter the new "Files" menu on the main menu.

It lists files in /Users/frontrow/Movies, so mount or put your video files
in that folder. If there is nothing in the "Movies" folder the Files menu will not show up in the main menu.

NOTE: 0.3 MAY HAVE A DELAY UPON ENTERING A DIRECTORY FOR THE FIRST TIME WHILE
IT CACHES METADATA AND FILE DURATIONS. FOR A LARGE DIRECTORY THIS MAY TAKE A
FEW MINUTES, DURING WHICH THERE IS NO INDICATION OF ANY ACTIVITY.

Cover Art

ATVFiles looks for cover art in either JPG, TIFF, or PNG formats. It looks for
specific filenames of the following formats (the jpg extension is an example,
and can be either jpg, tif, tiff, or png):

For folders: Either folder.jpg or cover.jpg in the folder.

For other files: The same as the filename without the extension, and the image
extension (jpg, tif, tiff, png). For instance, anchorman-xvid.avi would look
for anchorman-xvid.jpg for cover art.

AudioExtensions: Array of file extensions (without leading ".") that are audio files.

Default: (m4b, m4a, mp3, wma, wav, aif, aiff, flac, alac, m3u, mp2)

ResumeOffset: Integer, number of seconds to add to the bookmark time when resuming. Negative will go back in time.

Default: 0

Note: Files with extensions not listed in either VideoExtensions or AudioExtensions
are not displayed. Just because an extension is listed does not mean it will play
without appropriate components installed, the list is mostly copied from XBMC.

When updating the VideoExtensions and AudioExtensions pref, you must include all
default items (if you want them), the defaults will not be used if you override
them. You also must use the array options (-array and -array-add) to defaults to
update them. The extensions should also be listed in lowercase.

The list of extensions is also used to determine which player (video or audio) is
used for playback.

XML Metadata Format

The xml file is looked for along side the video file (and cover art), with the same name
and an "xml" extension. That is, "anchorman-divx.avi" will look for "anchorman-divx.xml".

Not all of the fields are shown in the UI, this just represents the data stored and
available internally.

Known Issues

Files on AFP shares sometimes don't play even if they show up and are supported. (Seems to be a BackRow problem, try restarting the ATV.)

Non-video files are played back using the QT player.

There is lag when a directory is first visited since it has to load and scan all metadata, and no indiciation is displayed. This will only happen the first time, future visits should be faster (as it only loads changed metadata)

Metadata is not read from the media files themselves (ID3, etc.)

Symlinks are shown with the target's name, not the symlink name.

Metadata is also only read matching for the target.

In summary, symlinks are resolved as soon as they're seen and otherwise treat it exactly like the destination.