Version 10 (modified by max, 6 years ago)

--

Shepherd FAQ

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 shepherd_logic wiki page contains a more complete technical description of the various stages of Shepherd and how it works.

Can I help?

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!

What 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.

Using Shepherd

How do I install Shepherd?

See the Installation page.

I'm having problems installing Shepherd. Who can I talk to?

Make sure that you've followed the Installation instructions, particularly the part about necessary dependencies.
Feel free to join our mailing list by sending an email with "subscribe shepherd <email>" in the body to majordomo@… and ask any questions there.

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 employes 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.

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.

Can I grab more than 7 days of data?

Some grabbers / data sources support more than 7 days of data (e.g. ABC/ABC2 typically have between 21 days and 28 days available). You can enable this via the component setting:

~/.shepherd/tv_grab_au --component-set abc_website:do_extra_days:1
~/.shepherd/tv_grab_au --component-set abc2_website:do_extra_days:1
~/.shepherd/tv_grab_au --component-set shepherd:grabwith=abc_website,abc2_website

(the first two --component-set instruct the individual grabbers to fetch extra days. the last --component-set tells Shepherd to use abc_website/abc2_website as a first preference in choosing what grabbers to use)

and disable it via:

~/.shepherd/tv_grab_au --component-set abc_website:do_extra_days:0
~/.shepherd/tv_grab_au --component-set abc2_website:do_extra_days:0

When mythfilldatabase runs (SVN release of mythtv, mythtv 0.21 and later), I can't see what Shepherd is doing

Starting with MythTV 0.21 and SVN release around February 2007, mythfilldatabase (by default) adds '--quiet' onto the command-line when calling the tv_grab_au script. To negate this, you can use Shepherd's "--notquiet" option. You can make this a default by:

~/.shepherd/tv_grab_au --component-set shepherd:notquiet

To disable this, use:

~/.shepherd/tv_grab_au --component-set shepherd:

How can I prevent mythfilldatabase adding unwanted channels to my video sources?

Make sure mythfilldatabase (not Shepherd) is invoked with the "--update" option, so it will not add any missing channels to your video sources. (This can be an issue if you have video sources that receive different sets of channels.)

How 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:<option>

For example, this would make Shepherd always run as if called with the option "--grabwith abc_website":

~/.shepherd/tv_grab_au --component-set shepherd:grabwith=abc_website