Project

General

Profile

Epgdb » History » Version 20

Dave Chapman, 2012-11-13 09:44

1 1 Dave Chapman
h1. EPG database structure
2 2 Dave Chapman
3
This page is a work-in-progress to document the internal EPG database structure in tvh.
4
5 5 Dave Chapman
The "HTSP" column indicates the name of the field in the HTSP event message.
6
7
The "Populated from" columns indicate which EPG grabbers can populate that field.
8
9 1 Dave Chapman
{{toc}}
10
11 5 Dave Chapman
h2. Brand object - epg_brand_t
12
13 6 Dave Chapman
|\4=. | |\4=.Populated from|
14
|_.Field|_.Type|_.Description|_.HTSP| |_.DVB EIT|_.OpenTV|_.XML TV|_.PyEPG|
15
|id|uint32_t|Internal ID|brandId| | | | | |
16
|uri|char*|Unique ID (from grabber)| | | | | | |
17
|title|lang_str_t*|Brand name| | | | | | |
18
|summary|lang_str_t*|Brand summary| | | | | | |
19
|season_count|uint16_t|Total number of seasons| | | | | | |
20 20 Dave Chapman
|image|char*|Brand image| | | | | |=. Yes |
21
|seasons|epg_season_list_t|Season list| | | | | | |
22
|episodes|epg_episode_list_t|Episode list| | | | | | |
23 5 Dave Chapman
24
h2. Season object - epg_season_t
25
26 7 Dave Chapman
|\4=. | |\4=.Populated from|
27
|_.Field|_.Type|_.Description|_.HTSP| |_.DVB EIT|_.OpenTV|_.XML TV|_.PyEPG|
28
|id|uint32_t|Internal ID|seasonId| | | | | |
29
|uri|char*|Unique ID (from grabber)| | | | | | |
30
|summary|lang_str_t*|Season summary| | | | | | |
31
|number|uint16_t|The season number| | | | | | |
32
|episode_count|uint16_t|Total number of episodes| | | | | | |
33 20 Dave Chapman
|image|char*|Season image| | | | | |=. Yes |
34 7 Dave Chapman
|brand|epg_brand_t|Parent brand| | | | | |
35
|episodes|epg_episode_list_t|Episode list| | | | | |
36
37 5 Dave Chapman
38 1 Dave Chapman
h2. Episode object - epg_episode_t
39
40 5 Dave Chapman
|\4=. | |\4=.Populated from|
41
|_.Field|_.Type|_.Description|_.HTSP| |_.DVB EIT|_.OpenTV|_.XML TV|_.PyEPG|
42
|id|uint32_t|Internal ID|episodeId| | | | | |
43 19 Dave Chapman
|uri|char*|Unique ID (from grabber)| | |=. Yes | |=. Yes |=. Yes |
44
|title|lang_str_t*|Title|title| |=. Yes |=. Yes |=. Yes |=. Yes |
45
|subtitle|lang_str_t*|Sub-title| | | | |=. Yes |=. Yes |
46
|summary|lang_str_t*|Summary|summary*| | | |=. Yes |=. Yes |
47
|description|lang_str_t*|An extended description|description*| | | |=. Yes |=. Yes |
48 20 Dave Chapman
|image|char*|URL of episode image|image| | | | |=. Yes |
49 19 Dave Chapman
|genre|epg_genre_list_t|Episode genre(s)|contentType*| |=. Yes |=. Yes |=. Yes |=. Yes |
50
|epnum|epg_episode_num_t|Episode numbering| | | | |=. Yes | |
51
|is_bw|uint8_t|Is black and white| | |=. Yes | |=. Yes |=. Yes |
52
|star_rating|uint8_t|Star rating|starRating| | | |=. Yes | |
53 12 Dave Chapman
|age_rating|uint8_t|Age certificate|ageRating| |=. Yes | | | |
54 19 Dave Chapman
|first_aired|time_t|Original airdate|firstAired| | | |=. Yes | |
55 5 Dave Chapman
|brand|epg_brand_t*|(Grand-)Parent brand| | | | | | |
56 19 Dave Chapman
|season|epg_season_t*|Parent season| | | | |=. Yes |=. Yes |
57
|broadcasts|epg_broadcast_list_t|Broadcast list| | |=. Yes |=. Yes |=. Yes |=. Yes |
58 3 Dave Chapman
59 5 Dave Chapman
* summary/description will be replaced with the versions in the specific broadcast, if they differ.
60 10 Dave Chapman
* contentType contains only the first genre in the case where multiple genres are stored.
61 5 Dave Chapman
62 2 Dave Chapman
h3. Episode numbering object - epg_episode_num_t:
63
64
This is for some back-compat and also to allow episode information to be "collated" into easy to use object
65
66 5 Dave Chapman
|\4=. | |\4=.Populated from|
67
|_.Field|_.Type|_.Description|_.HTSP| |_.DVB EIT|_.OpenTV|_.XML TV|_.PyEPG|
68 19 Dave Chapman
|s_num|uint16_t|Series number|seasonNumber| | | |=. Yes | |
69
|s_cnt|uint16_t|Series count|seasonCount| | | |=. Yes | |
70
|e_num|uint16_t|Episode number|episodeNumber| | | |=. Yes | |
71
|e_cnt|uint16_t|Episode count|episodeCount| | | |=. Yes | |
72
|p_num|uint16_t|Part number|partNumber| | | |=. Yes | |
73
|p_cnt|uint16_t|Part count|partCount| | | |=. Yes | |
74
|text|char*|Arbitary text description of episode num|episodeOnscreen| | | |=. Yes | |
75 2 Dave Chapman
76
77 4 Dave Chapman
h2. Broadcast object - epg_broadcast_t
78
79 2 Dave Chapman
This object contains the details of a specific airing (channel & time) of an episode.
80
81
|\3=. | |\4=.Populated from|
82 5 Dave Chapman
|_.Field|_.Type|_.Description|_.HTSP| |_.DVB EIT|_.OpenTV|_.XML TV|_.PyEPG|
83 1 Dave Chapman
|id|uint32_t|Internal ID|eventId| | | | | |
84 18 Dave Chapman
|uri|char*|Unique ID (from grabber)| | | | | | |
85 17 Dave Chapman
|dvb_eid|uint16_t|DVB Event ID| | |=. Yes | | | |
86 18 Dave Chapman
|start|time_t|Start time (UTC)|start| |=. Yes |=. Yes |=. Yes |=. Yes |
87
|stop|time_t|Stop time (UTC)|stop| |=. Yes |=. Yes |=. Yes |=. Yes |
88 17 Dave Chapman
|is_widescreen|uint8_t|Is widescreen| | |=. Yes | |=. Yes |=. Yes |
89
|is_hd|uint8_t|Is HD| | |=. Yes | |=. Yes |=. Yes |
90
|lines|uint16_t|Lines in image (quality)| | | | |=. Yes | |
91
|aspect|uint16_t|Aspect ratio (*100)| | | | |=. Yes | |
92
|is_deafsigned|uint8_t|In screen signing| | |=. Yes | |=. Yes | |
93
|is_subtitled|uint8_t|Teletext subtitles| | |=. Yes | |=. Yes | |
94
|is_audio_desc|uint8_t|Audio description| | |=. Yes | |=. Yes | |
95
|is_new|uint8_t|New series / film premiere| | | | |=. Yes |=. Yes |
96
|is_repeat|uint8_t|Repeat screening| | | | |=. Yes |=. Yes |
97
|summary|lang_str_t*|Summary|summary*| |=. Yes |=. Yes | |=. Yes |
98
|description|lang_str_t*|An extended description|description*| |=. Yes |=. Yes |=. Yes |=. Yes |
99 19 Dave Chapman
|episode|epg_episode_t*|Link to tvheadend episode object| | |=. Yes |=. Yes |=. Yes |=. Yes |
100
|serieslink|epg_serieslink_t*|SeriesLink|serieslinkid| |=. Yes |=. Yes |=. Yes |=. Yes |
101 17 Dave Chapman
|channel|struct channel*|Channel being broadcast on|channelId| |=. Yes |=. Yes |=. Yes |=. Yes |
102 5 Dave Chapman
103
* summary/description will override the versions in the episode object
104 9 Dave Chapman
105
h2. SeriesLink object - epg_serieslink_t
106
107
This object represents a related set of broadcasts intended to be automatically recorded by a DVR
108
109
|\3=. | |\4=.Populated from|
110
|_.Field|_.Type|_.Description|_.HTSP| |_.DVB EIT|_.OpenTV|_.XML TV|_.PyEPG|
111
|id|uint32_t|Internal ID|eventId| | | | | |
112 15 Dave Chapman
|uri|char*|Unique ID (from grabber)| | |=. Yes |=. Yes | | |
113 9 Dave Chapman
|broadcasts|epg_broadcast_list_t|List of broadcasts| | | | | | |