Your Digital Media Has Never Looked So Good

 
illiac4
Topic Author
Posts: 33
Joined: Wed Jul 04, 2007 10:14 pm

Firefly install on AppleTV (Tutotrial)

Thu Mar 11, 2010 11:33 am

-----------------------------------
-INSTALL FireFly on AppleTV-
-----------------------------------

Pre-requirements:
- AppleTV ;)
- SSH enable on AppleTV
- WinSCP program
- Putty


Code:
# wget http://nightlies.fireflymediaserver.org ... n-1586.dmg
(or. download to PC and copy to '/tmp' with WinSCP onto AppleTV)
# cd /tmp
# hdiutil mount Firefly-svn-1586.dmg
# scp -1 -r /Volumes/Install\ Firefly/Firefly.prefPane/Contents/Resources/Firefly\ Helper.app/Contents/Resources/Server frontrow@appletv.local:Applications/FireFly


On PC create file firefly.conf and paste inside the following text:
# This is the Firefly Media Server config file.
#
# Note that any changes made to this file will require the server to be
# shut down and restarted
#
#


[general]
#
# web_root (required)
#
# Location of the admin web pages.
#
# If you installed from .RPM, .deb, or tarball with --prefix=/usr, then
# this is correct.
#
# If you installed from tarball without --prefix=/usr, then the correct
# path is probably /usr/local/share/mt-daapd/admin-root.
#

web_root = /mnt/Scratch/Users/frontrow/Applications/FireFly/admin-root

#
# port (required)
#
# What port to listen on.  It is possible to use a different
# port, but this is the default iTunes port
#

port = 4444

#
# admin_pw (optional)
#
# This is the password to the administrative pages
#
# If it is blank, then no password is required from localhost,
# but nobody can connect from an outside machine (for admin
# pages). 
#
# If it is set, then passwords are required for admin pages
# from both localhost and external hosts
#

admin_pw = admin


#
# db_type (required)
#
# This is what kind of backend database to store the song
# info in.  Valid choices are "sqlite" and "sqlite3".
#
# sqlite seems to be more stable.

db_type = sqlite

#
# db_parms
#
# This is any extra information the db needs to connect.
# in the case of sqlite and sqlite3, this is the name
# of the directory to store the database in
#
# If you installed from RPM or .deb, this path likely already
# exists.  If not, then you must create it.  The directory itself
# must be writable by the "runas" user.
#

db_parms = /mnt/Scratch/Users/frontrow/Applications/FireFly

#
# mp3_dir (required)
#
# Location of the mp3 files to share.  Note that because the
# files are stored in the database by inode, these must be
# in the same physical filesystem.
#

mp3_dir = /mnt/Media/Music

#
# servername (required)
#
# This is both the name of the server as advertised
# via rendezvous, and the name of the database
# exported via DAAP.  Also know as "What shows up in iTunes".
#

servername = AppleTV Music

#
# runas (required)
#
# This is the user to drop privs to if running as
# root.  If mt-daapd is not started as root, this
# configuration option is ignored.  Notice that this
# must be specified whether the server is running
# as root or not.
#
# This is a leftover from the port from unix -- it's
# not used on windows, but still hanging around, like
# an appendix.
#

runas = nobody

#
# password (optional)
#
# This is the password required to listen to MP3 files
# i.e. the password that iTunes prompts for
#

#password=mp3

#
# extensions (optional)
#
# These are the file extensions that the daap server will
# try to index and serve.  By default, it only indexes and
# serves .mp3 files.  It can also server .m4a and .m4p files,
# and just about any other files, really.  Unfortunately, while
# it can *attempt* to serve other files (.ogg?), iTunes won't
# play them.  Perhaps this would be useful on Linux with
# Rhythmbox, once it understands daap.  (hurry up!)
#
# Failing that, one can use server-side conversion to transcode
# non-standard (.ogg, .flac) music to wav on the server side.
# See the ssc_* options below.
#

extensions = .mp3,.m4a,.m4p,.wma,.flac,.ogg,.m3u

#
# ssc_codectypes (optional)
#
# List of codectypes for files that the daap server should
# perform internal format conversion and present to clients
# as WAV files.  The file extensions that these codectypes correspond
# to must also be present in 'extensions'
# configuration value, or files are not probed in the first
# place.
#
# Valid codectypes:
#
# mp4a - for AAC (.aac, .mp4, .m4a, .m4p)
# mpeg - for mp3
# wav - for wav
# wma - for wma
# ogg - for ogg
# flac - for flac (.flac, .fla)
# mpc for musepack (.mpc, .mpp, .mp+)
# alac for alac (.m4a)
#
# ssc_codectypes ogg

#
# ssc_prog (optional)
#
# Program that is used in server side format conversion.
# Program must accept following command line syntax:
#     ssc_prog filename offset length ...
# Parameter filename is the real name of the file that is
# to be converted and streamed, offset is number of bytes
# that are skipped from the beginning of the _output_ file
# before streaming is started, length is length of the song
# in seconds (or zero).  All other possible arguments must
# be ignored.  The resulting wav file (or the rest of
# the file after initial seek) is written to the standard
# output by the ssc_prog program.  This is typically
# a script that is a front end for different conversion tools
# handling different formats.
#

# ssc_prog /Users/frontrow/Applications/FireFly/mt-daapd-ssc.sh

#
# logfile (optional)
#
# This is the file to log to.  If this is not configured,
# then it will log to the syslog.
#
# Not that the -d <level> switch will control the log verbosity.
# By default, it runs at log level 1.  Log level 9 will churn
# out scads of useless debugging information.  Values in between
# will vary the amount of logging you get.
#

#logfile /var/log/mt-daapd.log

#
# art_filename (optional)
#
# There is experimental support thanks to Hiren Joshi
# (hirenj@mooh.org) for dynamically adding art to the id3v2
# header as it is streamed (!!).  If you were using a music system
# like zina or andromeda, for example, with cover art called
# "_folderOpenImage.jpg", you could use the parameter
# art_file _folderOpenImage.jpg and if the file _folderOpenImage.jpg
# was located in the same folder as the .mp3 file, it would appear
# in iTunes.  Cool, eh?
#

#art_filename _folderOpenImage.jpg

#
# rescan_interval
#
# How often to check the file system (in sec) to see if any mp3 files
# have been added or removed.
#
# if not specified, the default is 0, which disables background scanning.
#
# If background rescanning is disabled, a scan can still be forced from the
# "status" page of the administrative web interface
#
# Setting a rescan_interval lower than the time it takes to rescan
# won't hurt anything, it will just waste CPU, and make connect times
# to the daap server longer.
#
#

rescan_interval = 600

# always_scan
#
# The default behavior is not not do background rescans of the
# filesystem unless there are clients connected.  The thought is to
# allow the drives to spin down unless they are in use.  This might be
# of more importance in IDE drives that aren't designed to be run
# 24x7.  Forcing a scan through the web interface will always work
# though, even if no users are connected.

always_scan = 1

#
# scan_type
#
#
# This sets how aggressively mp3 files should be scanned to determine
# file length.  There are three values:
#
# 0 (Normal)
#   Just scan the first mp3 frame to try and calculate size.  This will
#   be accurate for most files, but VBR files without an Xing tag will
#   probably have wildly inaccurate file times.  This is the default.
#
# 1 (Aggressive)
#   This checks the bitrates of 10 frames in the middle of the song.
#   This will still be inaccurate for VBR files without an Xing tag,
#   but they probably won't be quite as inaccurate as 0.  This takes
#   more time, obviously, although the time hit will only happen the
#   first time you scan a particular file.
#
# 2 (Painfully aggressive)
#   This walks through the entire song, counting the number of frames.
#   This should result in accurate song times, but will take the most
#   time.  Again, this will only have to be incurred the first time
#   the file is indexed.
#

scan_type = 0


# compress 0

#
# Truncate
#
# should the server truncate the log files on startup.
# Defaults to zero
truncate = 1
playlist = /Users/frontrow/Applications/FireFly/firefly.playlist
[scanning]

#
# process_m3u
#
# By default m3u processing is turned off, since most m3u files
# sitting around in peoples mp3 directories have bad paths, and
# I hear about it.  :)
#
# If you are sure your m3u files have good paths (i.e. unixly pathed,
# with relative paths relative to the directory the m3u is in), then
# you can turn on m3u processing by setting this directive to 1.
#
# I'm not sure "unixly" is a word, but you get the idea.
#

process_playlists = 1
process_m3u = 1

[plugins]
plugin_dir = /mnt/Scratch/Users/frontrow/Applications/FireFly/plugins
plugins = rsp.so,out-daap.so
[daap]
correct_order = 0







With WinSCP copy file firefly.conf on AppleTV, folder /mnt/Scratch/Users/frontrow


Firing up the engines:
Code:
# /Users/frontrow/Applications/FireFly/firefly -y -f -c /Users/frontrow/firefly.conf &
# chmod 777 FireFly
# chown -R 777 FireFly



Connecting to server:
http://appletv.local:1024/index.html (port can be defined in firefly.conf)



Making Firefly autostart:
Create file FireFly.sh on PC with the following text inside:
#!/bin/bash 
#
/Users/frontrow/Applications/FireFly/firefly -y -f -c /Users/frontrow/firefly.conf &


Also create a file called com.FireflyLauncher.plist with the following contents:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple$
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>com.FireflyLauncher</string>
        <key>RunAtLoad</key>
        <true/>
        <key>ProgramArguments</key>
        <array>
        <string>/Users/frontrow/Applications/FireFly/Firefly.sh</string>
        </array>
</dict>
</plist>


Copy file com.FireflyLauncher.plist this in /mnt/Scratch/Users/frontrow/Library/LaunchAgents/
and copy Firefly.sh script in /Users/frontrow/Applications/FireFly/

Code:
# chmod +x ~/Applications/FireFly/Firefly.sh
(CHMOD 755)

Note:
- make the folders if they do not exist
- this LaunchAgent is for user frontrow and all services required to run the server should already be running by the time this is run.
- you can test the LaunchAgent on the fly, as it were by trying the following:

Code:
# launchctl load ~/Library/LaunchAgents/com.FireflyLauncher.plist

- you can check it's loaded (either after the above or after a reboot) by:

Code:
# launchctl list
# sudo reboot

(and test if autostart is working)


------------------------------------------------
-Installing Flash player for FireFly on AppleTV:-
------------------------------------------------

Download from http://www.mellberg.org/FirePlay.zip.
Etract and copy content with WinSCP on AppleTV into the following folder:
/Users/frontrow/Applications/FireFly/admin-root/
In FirePlay.html you can edit 'IP and Port'.
Go to http://appletv.local:1024/fireplay.html and enjoy.


Copy music to /mnt/Media/Music (you can change that in config file).

Who is online

Users browsing this forum: No registered users and 1 guest