summaryrefslogtreecommitdiff
path: root/plugin/README
blob: 7a9b012daee0823e6eecc4f07fc0411d28064375 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. See the file COPYING for more information.

Description:

TV-Anytime is the name given to a set of technologies which aim to simplify the
process of recording and replaying broadcast content. The standards are
published by ETSI and are available without cost from www.etsi.org.  The main
standard is ETSI TS 102 323.

In the UK a subset of the TV-Anytime specification is broadcast on the DTV
service under the trade name "FreeView Plus". This plugin is written for the UK
version but should work with the full specification (untested).

TV-Anytime data is contained in Content Reference Identifiers (CRIDs). The
syntax of a CRID is described in RFC 4078; it is a URI-compliant string of the
form:

	crid://<DNS name>/<data>

in which <DNS name> is a registered internet domain name (RFC 1034) and <data>
is a free-format string. The <DNS Name> section relates to the content provider
(TV channel or company), and the <data> section to the programme.

CRIDs are transmitted in the EIT as Content Identifier Descriptors, with
descriptor ID 0x76. To save bandwith only the <data> section is sent, the <DNS
Name> part is taken from the Default Authority Descriptor in the SDT, and the
crid:// is assumed.

A programme may have up to two CRIDs in its EPG entry. One identifies the
specific item of content which is being broadcast, while the other identifies a
series of programmes which this item belongs to. In FreeView Plus these CRIDs
have crid_type values 0x31 and 0x32 respectively (TV-Anytime uses values 0x01
and 0x02).

To give an example, the programme "Torchwood" broadcast on channel BBC2 at 21:00
on 2008-01-16 had item CRID '54BXLC' and series CRID 'KCJ00C'. When the same
programme was repeated the following day on channel BBC3, the item CRID remained
the same but the series CRID was 'KCJ12C'. Meanwhile the episode broadcast on
BBC2 one week later on 2008-01-24 had CRID '54BXLD' but the same series as the
previous week. Hence it is possible for a PVR to record an entire series by
using the series CRID, or to find an alternative broadcast for an individual
item if there is a clash with another recording.

Operation:

The use of the 'Accurate Recording' feature is described in README-vps.

The plugin runs every 24 hours at a time set by the '-u' parameter (default
03:00). It captures CRID data for a time (10 minutes) then:

- Checks for new manually-created timers and adds series links for them.

- Checks each series link to see if any new events have been added to the EPG in
  the same series. If so then timers are added for them.

- Checks for timer clashes and suggests possible alternative recording times.

- Checks that the event being recorded by each timer is the same as when the
  timer was set (ie that the EPG has not changed in the meantime)

The plugin logs its activity through the VDR syslog.

The plugin has an SVDRP interface which is mainly used for debugging, but could
be used to interface with other applications. The commands are:

LSTL	Print the series links list

LSTY	Print the CRIDs for each event

LSTZ	Print the Default Authority data for each channel

STOP	Start and stop CRID data capture
STRT

UPDT	Trigger an update of the series links.

Points to remember:

- Not all channels on UK Freeview have CRIDs in the EPG Some radio channels
  have item CRIDs but none have series CRIDs.

- Different programme providers have different ideas of what constitutes a
  'series'.

- The timer creation process is very simplistic; it doesn't check for timer
  clashes, and selects the first physical entry in the EPG (which may not be
  the prime broadcast of the programme).

- A series link is created for every timer whether you want one or not.

- This script has not been tested with multiple tuner cards or with mixed DVB-T
  and DVB-S setups.


Although I use this software on my VDR installation, this is Alpha-quality code 
- USE AT YOUR OWN RISK!!