- 1 llink user guide
This is a wiki, if you think there is room for improvement and additions, please make your contribution!
It all starts with a configuration before you can start the llink media server. There are two files,
jukebox.conf, located in the llink directory.
Open them with a text editor and follow the instructions to make llink work to your specifications.
If you run llink from a another directory than where the llink binary is located, you must specify this when starting:
llink -f /path/to/llink.conf -w /path/to/skin/
Read the .conf files carefully and update them correctly.
When using a normal browser on a PC to use llink it is recommended to use the Moon skin. Other skins may be difficult to navigate and click on links.
A simple guide for Windows is located here: llink windows installation
It may be useful for people using other OS too.
In *nix systems you can use symlinks to help organize your media. On Windows you can use a tool called "Junctions" for NTFS drives. There is a binary with the lundftpd binary for Windows. But with multiple ROOT command support in the config files, there should be no need for symlinks.
Normally you launch llink by double clicking the llink.exe (Windows) or typing
./llink in shell (*nix).
This would start llink with the configurations as specified in the llink.conf.
Turning to your TV/Projector screen, llink should be auto-discovered by the NMT and display as "llink-daemon" or similar in the media source list. Then you navigate to it and click Enter on the remote to launch.
If the "llink-daemon" doesn't show up, you may be able to launch llink via one of the available Web Services on the NMT.
Add <IP of your source>:<port, default 8001>, ex:
192.168.1.2:8001, and then you should be able to start via the Web Service menu.
On *nix machines with multiple ethernet interfaces (gateway/router) running llink, add a route for SSDP for the internal interface to get the "llink-daemon" to show up in the media sources.
route add -net 126.96.36.199 netmask 255.0.0.0 eth1
Replace eth1 with the interface serving the NMT, you may like to add the line to "local.start" or similar depending on distribution.
llink has several commands and functions which can be run from shell. They are detailed on this page, or simply run
./llink -h to get a list of available command options (Windows users might need to use
Among the command line functions is verbose output which is handy for troubleshooting and debug.
./llink -v 60 or use a more specific level (change 60) if you are more certain what to look for.
A complete list of options is found here: llink verbose output options
Unrar and undvd can also be called from command line.
Browsing your media
Use the color buttons on the Popcorn Hour A-100 remote control to browse through the media directories.
- Red = Parent directory. Pressing it many times will eventually take you to the media root
- Green = Refresh
- Yellow = Previous page
- Blue = Next page
- Navigation buttons 'Up / Down' = Go up and down in media list (A-100)
- Enter button = Enter directory/Play media (central round button on the A-100)
- Play button = Play all media in the current directory
- Setup button = Sort all presented media
Define as many sorting styles as wanted, and llink will cycle them when requested to change. The first one is the default way llink will use when started. Press the 'Setup' button on the remote control to sort, and toggle with additional key press.
llink default sort cycle is:
SORT| by name | newest first | by reverse name | oldest first
# The list flags are: # # -t Sort list in date order # -N Sort list in name order # -r Reverse sorting order # -D Sort directories before files. (Like Windows) # -s Sort list in size order # -C Case insensitive sorting. (Like Windows) # -a Show dot-files # -W Show directory content size instead of block count (expensive) # -G If found ".genre" file, display this instead of group field. # #SORT|SET="-CND"|SET="-Ct"|SET="-CNDr"|SET="-Ctr" SORT|SET="-WCND"|SET="-WCt"|SET="-WCNDr"|SET="-WCtr"
As specified in the configuration, you can place supported subtitle files either in the same directory as the movie, or in a separate directory just for subs, e.g. a re-direct folder which is specified in the llink configuration file. In either case, the sub file must have the exact same name as the movie file, apart from the extension.
When using external subtitles with ISO, IMG or TS_folder, you must rename the subtitle file to the same as the movie file played, for instance an ISO called Some.Movie.iso will not play a subtitle file called Some.Movie.srt, instead you need to see what the actually played file is called inside the ISO.
The subtitle format support follows what Syabas NMT supplies in their firmware. For the A-100 model look here: PopcornHour.com
At the time of writing this documentation, there is a bug in the NMT firmware that incorrectly replaces the extension with .SUB without string termination. (Garbage follows the filename.) You can use llink -s to enable a work around until Syabas can fix said bug.
Skins with cover art and media info
The file jukebox.conf holds the configuration needed to run the cover art & media info skin "Jukebox". Another jukebox style skin is "Kamishi_skies". Normally we only want to see movies from a Jukebox skin, which the jukebox.conf is optimized for.
The movie information is stored in xml files, one for each movie. You will need to download cover art and populate an xml file with movie meta information - llink can display the supported tags listed here: Llink:macros.
Creating xml's manually can be tedious work on large volume media libraries, so luckily we can use various utilities to scrape information from the imdb site.
Note: just like the default configuration file
llink.conf you have to edit the
jukebox.conf file before you start llink!
- Set the path(s) to your media ROOT's
- Set the path to the xml re-direct folder, e.g. create a directory with both read/write permissions where llink can store the additional files needed.
- llink should be compatible with the MyMovies application (Windows only, free for personal use), which can auto-generate xml files for your collection.
- Another tool is the open source java based imdbit, originally created by Wesley Elder.
- Yet another option is to use PiXL. Popeys's Imdb to Xml for Llink, which is a web service for manual or scripted media scraping. More detailed information and scripts can be found here.
- llink features it's own basic command line imdb scraper too. To run that type:
./llink -d -X -f jukebox.confor
./llink -d -x -f jukebox.confdepending upon if you use a re-direct folder or not. (Skip the ./ if you work in Windows environment). This will start a process where you can choose an imdb code listed that correspond to your media files and trigger download of album art and media information. If none is suggested just search www.imdb.com in a browser and enter the imdb code manually.
If you have movies that are not properly indexed in imdb you can always edit the xml files manually. Under normal circumstances this should hopefully be a matter of a few exceptions.
Once you are done, or if you already have your xml's and album art files in place, just start llink normally with the corresponding conf file, for instance:
./llink -f jukebox.conf
Pressing the Menu button on the remote control invokes a special llink menu (from v2.0.8).
- Play All: Play all media in a directory.
- Delete: Deletes file or directory. Note: recursive delete may be enabled, check your conf file!
- Unrar: Unrar's a RAR archive. May take some time if used on a small resource device such as a NAS. Note: [info]
- Mount: Mounts an iso file. This is a WISH item to be added to, ntfs-3g etc.
- Enter PIN: Sets a pin code PIN that enables the display of hidden .directories until you clear the PIN, or a 15 minute timeout. Default pin is: 1234
- Clear PIN: Remove pin access on a file or directory
- Quit llink: Tries to quit llink gracefully. Useful when running llink from a mounted share, for instance a USB stick.
You can add or remove items in the menu by editing the skin html files, for example adding custom user scripts.
Parental control with pincode
Put the movies you want to protect in .directories, eg directories where the name begins with a '.' (dot) such as
.Horror. Define the PIN number in the conf file. Windows users can use Windows style $Horror$ names as well.
EXPERIMENTAL: If you want to run more than one instance of llink, for example one with jukebox skin and another with the Aquarius, make jukebox.conf and llink.conf (or whatever you name the conf files) to use distinct port numbers. The default for llink is 8001, and Jukebox 8002. Also make sure the
NAME=llink-daemon is unique in each conf file, ie call one llink-daemon, the other llink-jukebox.
With this you can start two instances, or as many as you want.
Playing from a DVD disc drive
You can access a USB DVD drive or a shared drive from a PC/Mac. You should be able to play all non-encrypted discs and some retail discs. The latter depends upon libdvdcss capacity. Please note that playback is basic; Time seek, fast forward and rewind do not work but you can use numeric keys on the remote to skip (1 for 10%, 2 for 20% etc.).
Remove the # comment in the following line in the llink.conf file:
Then update the path to your DVD drive. On a Mac the path could be found like this in Terminal:
# diskutil list /dev/disk4 #: TYPE NAME SIZE IDENTIFIER 0: DRHORRIBLE *3.8 Gi disk4
Which will resulting line in the llink.conf file:
On llink for Windows it could look like:
(This section needs to be verified, but it's probably path=D:\ or d:/)
If the DVD drive is connected via USB to your NMT the line could look like this:
(This section needs to be verified, but it's probably path=/dev/disk1)
And if the drive is shared from a PC/Mac, played from the llink-nmt; map the shared disc in the NMT settings over NFS or SMB and use:
(This section needs to be verified, but it's probably path=/opt/sybhttpd/localhost.drives/NETWORK_SHARE/<the drive share name>)
Watching live TV
With some minor changes, you can watch live TV streams via llink on your NMT device. Read more here: Llink:Live_TV
Using external jukeboxes
You can run other more or less "static" jukeboxes such as YAMJ through llink and still benefit from the many possibilities llink offers:
- On the NMT forum: http://www.networkedmediatank.com/showthread.php?tid=22634 or http://www.networkedmediatank.com/showthread.php?tid=22634
- On the YAMJ wiki: http://code.google.com/p/moviejukebox/wiki/Using_YAMJ_With_LLink
In order for llink and YAMJ (or other external Jukebox) to work, two conditions need to be met:
- the index file must be named index.html
- the index file must be in a llink ROOT folder (defined in the llink.conf file)
Since October 2009, ejp has added llink support for his ÆON YAMJ jukebox skin. Note that you have to configure some exceptions in YAMJ for it to work properly with RAR files:
Llink/RAR support. For all you Llink/RAR users, there's something on your side that you'll have to add to your libraries.xml. Unfortunately, I wasn't able to figure a way to do it in the code, but until then, you'll have to do this. Sorry for the inconvenience.
<library> <path>w:\test\</path> <nmtpath>http://192.168.0.8:8001/test/</nmtpath> <exclude name="part02,part03,part04,part05,part06,part07,part08,part09,part10,part11,part12,par t13,part14,part15,part16,part17,part18,part19,part20,part21,part22,part23,part2 4 ,part25,part26,part27,part28,part29,part30,part31,part32,part33,part34,part35, pa rt36,part37,part38,part39,part40,part41,part42,part43,part44,part45,part46,pa rt4 7,part48,part49,part50,part51,part52,part53,part54,part55,part56,part57,part 58,p art59,part60,part61,part62,part63,part64,part65,part66,part67,part68,part69 ,part 70,part71,part72,part73,part74,part75,part76,part77,part78,part79,part80,p art81, part82,part83,part84,part85,part86,part87,part88,part89,part90,part91,par t92,par t93,part94,part95,part96,part97,part98,part99,sample,tmp/,temp/,RECYCLE.BIN/"/> <description></description> <prebuf></prebuf> <scrapeLibrary>true</scrapeLibrary> </library>
You basically have to add all those part numbers (part02->part99) to your exclude. I know there are 2 main split archive naming schemes ([rar, r00, r01, etc] and [part01.rar, part02.rar, part03.rar, etc]). Because YAMJ recognizees "part#" as MultiPart, it'll treat these files as MultiPart files -- which they really aren't. So to get YAMJ to ignore all of these parts, you'll have to add all of those to your exclude. You can choose to add ".rar" to the end of each rar, so it would look like "part02.rar,part03.rar,etc.
Playing mts files directly from Camcorder
According to a user on the NMT forum, by using llink-nmt on a PopcornHour A-110 it was possible to play all AVCHD files with mts extension directly from the camcorder (a SONY TG1, aka TG3 in Europe).