= Shepherd FAQ = [[PageOutline]] Here you can find answers to some of the most frequently asked questions about Shepherd... If you have a question not answered on this page, feel free to add the question into this page yourself (with no answer) - or, better yet, post the question to the mailing-list and then edit the question and answer into this Wiki page! == About Shepherd? == === What is Shepherd? === Shepherd is an attempt to reconcile many different tv_grab_au scripts and make one cohesive reliable data set. === How does it work? === It works by calling a series of scripts that grab data from a large variety of sources, and then analysing the resulting XML data sets and determining which of the many is the most reliable. Postprocessors are used to augment the data sets with additional information (e.g. movie information from [http://www.imdb.com], HDTV programming from [http://www.dba.org.au] etc.). When switching between data sources, Shepherd's reconciler also tries to ensure that programme names are consistent. e.g. if you're used to recording a programme called ''"House"'' yet a different data source names it as ''"House, M.D."'', Shepherd is smart enough to remember the original name and substitute it. No configuration is necessary to enable this; it happens automatically. Shepherd is designed to be ''future proof'', never requiring manual intervention once initially installed and configured. Shepherd will automatically update itself with fixes, enhancements and additional ''plugin'' components as and when they become available. The [wiki:shepherd_logic] wiki page contains a more complete technical description of the various stages of Shepherd and how it works. === How can I get help or ask a few questions? === Feel free to join our mailing list by sending an email with "subscribe shepherd " in the body to [mailto:majordomo@interlink.com.au]. Once you've joined, you can post to the list by emailing [mailto:shepherd@interlink.com.au]. Note that there are no archives of the mailing list. If your question is not answered on this site, ask away... === Can I contribute? === Absolutely. Shepherd is a community project and is the result of countless contributors. If you wish to enhance some functionality within Shepherd (e.g. write a new postprocessor), implement some new fancy reconciling logic, implement a new grabber or just help out in answering questions or contributing to Wiki documentation, feel free to help! === Which operating systems does Shepherd support? === In theory, Shepherd (and its underlying components) will run on any operating system that supports Perl, as all scripts are currently written in Perl. In practice, the developers all use Linux and MythTV, and that is what is known to work. No effort has been put into making Shepherd work under Microsoft Windows or Windows Media Centre Edition, although it really shouldn't be too hard to get that working if anyone was motivated enough to do so. === Is Shepherd legal? === Some of the grabbers used by Shepherd read web sites that say they don't want their data used in PVRs, but that [http://www.cse.unsw.edu.au/~willu/xmltv/index.html#Legal doesn't mean it's illegal]. Shepherd doesn't copy or distribute data, but rather allows individuals at home to read it via their PVRs. It operates in the same manner as a browser, sending HTTP requests and formatting the resultant HTML for display in a manner appropriate to the user. == Installing Shepherd == === How do I install Shepherd? === See the [wiki:Installation] page. === How important is it to install the optional Perl modules? === Some of Shepherd's grabbers require additional Perl modules to be installed, without which they won't function. They are listed as "optional" because Shepherd does not rely on any individual grabber to do its job; instead it draws on as many or as few of its available grabbers as necessary to acquire guide data for the time period and channels you want. Sometimes Shepherd can do this with a single grabber. More commonly, it employees multiple grabbers and combines their results. Generally speaking, Shepherd can perform very well even if some of its grabbers are disabled or unsupported (i.e. missing modules). However, it will probably perform more efficiently, reliably, and possibly more accurately if you can enable all of its grabbers. == Using Shepherd == === How well is Shepherd working? === A summary of Shepherd's performance can be viewed by: {{{ ~/.shepherd/tv_grab_au --status }}} In particular, note the last line, which tells you the percentage of wanted data it acquired. If it's less than 100.00%, Shepherd wasn't able to completely data for all your channels over the next 7 days. If you haven't enabled all of Shepherd's grabbers, you will probably benefit from doing this. If Shepherd is grabbing 100% of wanted data, then enabling additional grabbers may be unnecessary. However, doing so will still improve Shepherd's ability to tolerate a grabber failure, may allow it to run faster and use less bandwidth, and may improve its data quality. === Is there a log file somewhere? === Yes, in the ''log/'' subdirectory of your Shepherd installation (usually ''~/.shepherd/log/''). === How do I make Shepherd use a particular grabber? === Generally it's best to let Shepherd decide which grabbers to use, and in which order. One of its main benefits is its fault-tolerance: guide data sources tend to be fragile and can stop working unexpectedly, but Shepherd will work regardless. Relying on a particular grabber always being there is, unfortunately, not safe. If you have a general preference for speed over quality, or vice versa, you can control this via [wiki:FAQ#CanImakeShepherdfaster the "--mode" option]. To specify an exact order for grabbers, use the "--grabwith " option. Shepherd will run the specified grabber(s) first, then others as needed to fill remaining holes in the data. For example: {{{ ~/.shepherd/tv_grab_au --grabwith oztivo,sbsnews_website }}} === Why is Shepherd so slow? === Shepherd spaces out its downloads to avoid overloading its data source web sites. Most of the time Shepherd is running, it's not doing anything at all: it's simply pausing between downloads. Many times in the past, excessive traffic has prompted online guides to take measures to block grabbers, and its essential for the benefit of all users that Shepherd play nice. Since Shepherd runs in the background, how long it takes makes no difference. If you'd like it to complete faster, though, you may use [wiki:FAQ#CanImakeShepherdfaster the "--mode" option]. === Can I make Shepherd faster? === By default Shepherd operates in "Quality" mode, whereby it selects grabbers based on maximizing data quantity and quality. This mode can take a long time: around 15-30 minutes under normal operating conditions, and several hours if it's being run for the first time, with no cache and needing to fill a full week. For fastest operation, you can run Shepherd in "Speed" mode, which will make it select grabbers that complete fastest, even if their data quality is not the highest. "Efficiency" mode is a balance between the two. In all modes, Shepherd will employ as many grabbers as necessary to completely fill the next 8 days with data. To run Shepherd once in a particular mode: {{{ ~/.shepherd/shepherd --mode speed }}} or to permanently set Shepherd in a particular mode: {{{ ~/.shepherd/shepherd --component-set shepherd:mode=speed }}} === Can I set some default options? === If you want Shepherd to always be called as if it was sent a particular command-line option, you can use: {{{ ~/.shepherd/tv_grab_au --component-set shepherd: