blue divider

blue bullet Home
blue bullet About
blue bullet HMO
blue bullet News
blue bullet Downloads
blue bullet Installation

dotted divider

blue bullet Bugs
blue bullet To-Dos

blue bullet Screenshots
blue bullet Documentation
blue bullet FAQs
blue bullet Contributing
blue bullet Dependencies
blue bullet License

dotted divider line


Configuring JavaHMO:

JavaHMO has a configuration GUI which allows users to change the server settings and to configure plugins. Plugins provide different kinds of content that can be customized.


  • Once the JavaHMO configuration GUI is launched, use the File/New Plugin menu to add the plugins you want to see on your TiVo.
  • Each plugin has a title which is displayed on your TiVo HMO menu.
  • Once you have added a new plugin, the plugin has to be configured. Click on the plugin title in the tree in the GUI to see the configuration settings for that plugin.
  • Once you changed the configuration settings for a plugin, you must press the "Apply" button to save the configuration settings.
  • The GUI provides online help for each plugin.
  • Server settings:

  • The JavaHMO server settings can be configured by using the File/Properties menu.
  • Name - the server name that gets displayed on your TiVo.
  • Reload - default reload time that is used by the system if a plugin has not specified a specific value for reloading internet content.
  • TiVo Beacon - JavaHMO 2.3 supports the TiVo Beacon API which allows JavaHMO to use the TiVo Beacon service to broadcast the presence of the JavaHMO server to TiVo's on your network. This also allows other HMO services to run simultaneously on the same PC. If you do want to use the TiVo Beacon, you can disable the TiVo Beacon service. JavaHMO will then broadcast its presence to your TiVo, but will not allow other HMO servers to run at the same time on the same PC.
  • Streaming proxy - TiVo has significant problems and limitations when playing online streaming stations. To improve support for streaming stations, JavaHMO includes a streaming proxy server which is enabled by default and can be disabled in the server settings of the configuration GUI. When the proxy is enabled, all requests for streaming stations are directed from TiVo through the proxy. The proxy has additional intelligence to repeatedly try to make a connection and try to restore a connection when it breaks. The proxy suppports any URL format and is no longer limited by the TiVo restrictions. When connection errors occur, a message is played and an attempt is made to elegantly recover from the error, rather than letting TiVo show an ugly error message. The initial connection attempts are limited to at most 10 seconds before the next station in the playlist is tried.
  • Generate Thumbnails - most image from digital cameras have built-in thumbnails that JavaHMO will use to display preview images on TiVo. However, if the image does not contain its own thumbnail, JavaHMO has to resize the entire image to generate a thumbnail. This is an expensive and slow operation. This option allows JavaHMO to generate the thumbnails beforehand instead of in realtime when the image is viewed on TiVo.
  • Shuffle items - Whether items or folders should be shuffled during shuffled play.
  • Port - the port that JavaHMO uses to publish its content to TiVo. The default is port 8081. When JavaHMO starts up it will attempt to grab the default port. If that port is already taken by another process, JavaHMO will attempt to use the next available port.
  • IP Address/Netmask - it is normally not necessary to fill in values for the IP Address or Netmask fields unless your are not able to view JavaHMO content on your TiVo. If you have multipe network cards on your PC, the IP Address has to be the address of the network card on the internal network.
  • Any changes to the JavaHMO server settings require that the JavaHMO service be restarted.

  • Debugging the server:

    JavaHMO maintains 2 logs:

    The main log of the JavaHMO:
  • C:\Program Files\JavaHMO\logs\log.txt (Windows)
  • /var/log/javaHMO.log (Linux)
  • /usr/share/javaHMO/logs/javaHMO.log (Mac OS X)
  • Service information log:
  • C:\Program Files\JavaHMO\logs\wrapper.log (Windows)
  • /var/log/wrapper.log (Linux)
  • /usr/share/javaHMO/logs/wrapper.log (Mac OS X)

  • By default these logs will only contain information and error messages. The logging level can be changed to include debugging information by modifying the conf/log4j.xml file:

    	<logger name="org.lnicholls.javahmo" additivity="false">
    		<level value="debug"/>
    		<appender-ref ref="AsyncTrace"/>
    The location of the log files can be modified by editing both of:
  • C:\Program Files\JavaHMO\conf\log4j.xml and C:\Program Files\JavaHMO\conf\wrapper.conf (Windows)
  • Note: Any changes to the configuration files requires JavaHMO to be restarted.

    JavaHMO's configuration file:

    The JavaHMO configuration settings are stored in:

  • C:\Program Files\JavaHMO\conf\configure.xml (Windows)
  • You can edit this file in a text editor. The file consists of several XML elements which configure the different plugins. NOTE: The syntax of the configuration file conforms to the XML standard and needs to exactly correct, otherwise JavaHMO will not function correctly. If you edit the configuration file directly you have to restart JavaHMO manually. If you use the GUI to make configuration changes, all the changes are saved to the configuration file and take immediate effect without requiring a restart.


    JavaHMO supports both .m3u and .pls playlist formats which can contain both streaming URL's or paths to local files. However, TiVo appears to have problems handling URLs that have information after the port number such as:
    JavaHMO will ignore these URLs unless the streaming proxy is enabled.

    Cinema Listings:

    Cinema listings are updated daily and can be viewed by selecting the Cinema plugin:

  • An image for each theatre in your area will be displayed. If the theatre has too many shows to display on a single image, multiple images will be displayed and labelled with the range of shows.
  • Each image will have the date of the listing. Use the TiVo rotate function to change the date for the listing.
  • View the image to see the complete listing.

  • Audio Organizer

    The organizer categorizes MP3 files based on their ID3 tags. The organizer is totally dependent on the existance and accuracy of the tags in the header of each MP3 file. It is recommended that you use ripping/tagging software that is linked to an online CDDB database to obtain the tag information. It is also recommended that you use tagging software that supports the latest MP3 IDv2 tags.

    The first time you run the organizer, the tags from each MP3 file has to be read which can take some time depending on the speed of the PC and the number of MP3 files. By default, the organizer will cache the MP3 tags and you have to unselect the "Use Cached Tag Data" option in the configuration GUI to force the organizer to re-read the tags when you add new files or change the tag data of existing files.

    By default, the organizer supports 24 categories (listed with their respective configuration file expression syntax):

  • Artist = Artist{A-Z}\Artist\Song [Album]
  • Artist (Grouped) = Artist{ABC-XYZ}\Artist{A-Z}\Artist\Song [Album]
  • Artist, Year = Artist{A-Z}\Artist\Year\Song [Album]
  • Artist (Grouped), Year = Artist{ABC-XYZ}\Artist{A-Z}\Artist\Year\Song [Album]
  • Album = Album [Artist]\Track. Song
  • Genre = Genre\Song [Artist]
  • Genre, Album = Genre\Album\Song [Artist]
  • Genre, Artist = Genre\Artist{A-Z}\Artist\Song [Album]
  • Genre, Artist (Grouped) = Genre\Artist{ABC-XYZ}\Artist{A-Z}\Artist\Song [Album]
  • Genre, Artist, Album = Genre\Artist\Album\Track. Song
  • Genre, Artist (Grouped), Album\Genre\Artist{ABC-XYZ}\Artist{A-Z}\Album\Track. Song
  • Genre, Decade = Genre = Year{Decade}\Song [Artist]
  • Song = Song{A-Z}\Song [Artist]
  • Song (Grouped) = Song{ABC-XYZ}\Song{A-Z}\Song [Artist]
  • Artist, Album = Artist{A-Z}\Artist\Album [Year]\Track. Song
  • Artist (Grouped), Album = Artist{ABC-XYZ}\Artist{A-Z}\Artist\Album [Year]\Track. Song
  • Decade = Year{Decade}\Song [Artist]
  • Decade, Artist = Year{Decade}\Artist\Song [Album]
  • Decade, Artist (Grouped) = Year{Decade}\Artist{ABC-XYZ}\Artist{A-Z}\Song [Album]
  • Decade, Genre = Year{Decade}\Genre\Song [Artist]
  • Bitrate = Bitrate{0-9}\Song [Artist]
  • Duration = Duration{Duration}\Song [Artist]
  • Year = Year{0-9}\Song [Artist]
  • Year, Genre = Year{0-9}\Genre\Song [Artist]
  • It is possible to create your own custom categories by editing the configuration file. Here is an example of a custom category:

    <group>Artist\Song [Year]</group>
    This example expression will list all artists by name; for each artist their songs are listed with the year appended.

    Rough guide on the category syntax:

  • Each category expression describes the format of the menu hierarchy.
  • Each expression consists of one or more sections separated by "\".
  • Each section consists of a combination of keywords that match ID3 tag names.
  • The following keywords are supported: "Song","Artist","Album","Year","Track","Genre","Bitrate" and "Duration".
  • Each section syntax describes the format used to combine the tag information.
  • Special phrases such as "{A-Z}","{ABC-XYZ}","{0-9}" and "{Decade}" are used to qualify the syntax for operations such as alphabetical or numerical grouping.

  • TicTacToe

    To play the TicTacToe game, select the TicTacToe image in the games menu:

  • When the image details is displayed, use the rotate function to select the cell for your next move.
  • View the image to see the JavaHMO move.
  • The first move in each game alternates between you and JavaHMO.
  • Your are always X.

  • Disabling the TiVo Publisher:

    On Windows if the TiVo Beacon server setting is disabled, JavaHMO and the TiVo publisher cannot run at the same time since they cannot share the ports for the TiVo beacon protocol:

  • Close the TiVo Publisher program if you have it running.
  • If the TiVo icon appears in your toolbar, right-click on the icon and select exit.
  • Shut down the service using Control Panel, Administrative Tools, Services, "TiVo Connect Beacon", right-click, Stop. Modify the startup settings to be manual or disabled to prevent the service from starting up on a reboot.
  • Mac OS X:
  • Stop TiVo Desktop Publisher in the System Preference Pane.


    Hosted on Logo