Patent ID: 6904609

Claim:
A system for receiving electronic program guide (EPG) data from one or more EPG data providers in a plurality of data formats and for providing consolidated EPG data available in a standardized format to one or more applications running on the system, comprising: an EPG services module for receiving EPG data from a plurality of EPG data providers and providing consolidated EPG data in a standardized format to the one or more applications residing on the system, the EPG services module comprising: one or more EPG loader modules with a separate EPG loader module for each EPG data source, each EPG loader module being configured to receive EPG data from an EPG data provider in a native format used by the EPG data provider and including computer executable instructions for converting the EPG data received from the EPG data provider from its native format to a standardized format compatible with the EPG services module and the one or more applications; an EPG writer module logically connected to each of the one or more EPG loader modules with computer executable instructions for collecting the EPG data in the standardized format from the one or more EPG loader modules; scaling the collected EPG data both temporally and selectively, wherein temporal scaling includes selecting an adjustable and user-definable time period for which the collected EPG data will be stored and wherein selective scaling includes selecting a variable and customizable level of richness for which a variable amount of the collected EPG data will be stored corresponding to one or more selected channels; and writing the scaled EPG data of the standardized format to a storage associated with the system; and an EPG control module having computer executable instructions for receiving requests for EPG data from the one or more applications; retrieving the EPG data responsive to the request from the storage; and returning the requested EPG data to the one or more applications; and an application program interface configured to provide a standardized interface between the EPG control module and the one or more applications requiring EPG data, such that the system can be readily modified to add additional EPG data, providers, to remove existing EPG data providers, or to accommodate changes in the native formats of existing or future EPG data providers without having to modify or update the code of any of the one or more applications.