Project

General

Profile

Actions

Epgdb » History » Revision 12

« Previous | Revision 12/23 (diff) | Next »
Dave Chapman, 2012-11-13 01:38


EPG database structure

This page is a work-in-progress to document the internal EPG database structure in tvh.

The "HTSP" column indicates the name of the field in the HTSP event message.

The "Populated from" columns indicate which EPG grabbers can populate that field.

Brand object - epg_brand_t

Populated from
Field Type Description HTSP DVB EIT OpenTV XML TV PyEPG
id uint32_t Internal ID brandId
uri char* Unique ID (from grabber)
title lang_str_t* Brand name
summary lang_str_t* Brand summary
season_count uint16_t Total number of seasons
image char* Brand image
seasons epg_season_list_t Season list
episodes epg_episode_list_t Episode list

Season object - epg_season_t

Populated from
Field Type Description HTSP DVB EIT OpenTV XML TV PyEPG
id uint32_t Internal ID seasonId
uri char* Unique ID (from grabber)
summary lang_str_t* Season summary
number uint16_t The season number
episode_count uint16_t Total number of episodes
image char* Season image
brand epg_brand_t Parent brand
episodes epg_episode_list_t Episode list

Episode object - epg_episode_t

Populated from
Field Type Description HTSP DVB EIT OpenTV XML TV PyEPG
id uint32_t Internal ID episodeId
uri char* Unique ID (from grabber) Yes
title lang_str_t* Title title Yes
subtitle lang_str_t* Sub-title
summary lang_str_t* Summary summary*
description lang_str_t* An extended description description*
image char* URL of episode image image
genre epg_genre_list_t Episode genre(s) contentType* Yes
epnum epg_episode_num_t Episode numbering
is_bw uint8_t Is black and white Yes
star_rating uint8_t Star rating starRating
age_rating uint8_t Age certificate ageRating Yes
first_aired time_t Original airdate firstAired
brand epg_brand_t* (Grand-)Parent brand
season epg_season_t* Parent season
broadcasts epg_broadcast_list_t Broadcast list
  • summary/description will be replaced with the versions in the specific broadcast, if they differ.
  • contentType contains only the first genre in the case where multiple genres are stored.

Episode numbering object - epg_episode_num_t:

This is for some back-compat and also to allow episode information to be "collated" into easy to use object

Populated from
Field Type Description HTSP DVB EIT OpenTV XML TV PyEPG
s_num uint16_t Series number seasonNumber
s_cnt uint16_t Series count seasonCount
e_num uint16_t Episode number episodeNumber
e_cnt uint16_t Episode count episodeCount
p_num uint16_t Part number partNumber
p_cnt uint16_t Part count partCount
text char* Arbitary text description of episode num episodeOnscreen

Broadcast object - epg_broadcast_t

This object contains the details of a specific airing (channel & time) of an episode.

Populated from
Field Type Description HTSP DVB EIT OpenTV XML TV PyEPG
id uint32_t Internal ID eventId
uri char* Unique ID (from grabber) No
dvb_eit uint16_t DVB Event ID Yes
start time_t Start time (UTC) start
stop time_t Stop time (UTC) stop
is_widescreen uint8_t Is widescreen Yes
is_hd uint8_t Is HD Yes
lines uint16_t Lines in image (quality)
aspect uint16_t Aspect ratio (*100)
is_deafsigned uint8_t In screen signing Yes
is_subtitled uint8_t Teletext subtitles Yes
is_audio_desc uint8_t Audio description Yes
is_new uint8_t New series / film premiere
is_repeat uint8_t Repeat screening
summary lang_str_t* Summary summary* Yes
description lang_str_t* An extended description description* Yes
episode epg_episode_t* Link to tvheadend episode object
serieslink epg_serieslink_t* SeriesLink serieslinkid
channel struct channel* Channel being broadcast on channelId
  • summary/description will override the versions in the episode object

SeriesLink object - epg_serieslink_t

This object represents a related set of broadcasts intended to be automatically recorded by a DVR

Populated from
Field Type Description HTSP DVB EIT OpenTV XML TV PyEPG
id uint32_t Internal ID eventId
uri char* Unique ID (from grabber) Yes
broadcasts epg_broadcast_list_t List of broadcasts

Updated by Dave Chapman about 10 years ago · 12 revisions