US20150229993A1 - Merged Program Guide - Google Patents

Merged Program Guide Download PDF

Info

Publication number
US20150229993A1
US20150229993A1 US14/690,680 US201514690680A US2015229993A1 US 20150229993 A1 US20150229993 A1 US 20150229993A1 US 201514690680 A US201514690680 A US 201514690680A US 2015229993 A1 US2015229993 A1 US 2015229993A1
Authority
US
United States
Prior art keywords
program
media controller
record
metadata
media
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/690,680
Inventor
Juan A. Pons
Hugh Svendsen
Eugene Matthew Farrelly
Scott Curtis
Harold Sutherland
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Concert Technology Corp
Original Assignee
Eloy Technology LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Eloy Technology LLC filed Critical Eloy Technology LLC
Priority to US14/690,680 priority Critical patent/US20150229993A1/en
Assigned to ELOY TECHNOLOGY, LLC reassignment ELOY TECHNOLOGY, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CURTIS, SCOTT, SVENDSEN, HUGH, FARRELLY, EUGENE MATTHEW, PONS, JUAN A., SUTHERLAND, HAROLD
Publication of US20150229993A1 publication Critical patent/US20150229993A1/en
Assigned to CONCERT DEBT, LLC reassignment CONCERT DEBT, LLC SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ELOY TECHNOLOGY, LLC
Assigned to CONCERT DEBT, LLC reassignment CONCERT DEBT, LLC SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ELOY TECHNOLOGY, LLC
Assigned to CONCERT DEBT, LLC reassignment CONCERT DEBT, LLC SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CONCERT TECHNOLOGY CORPORATION
Assigned to CONCERT DEBT, LLC reassignment CONCERT DEBT, LLC SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CONCERT TECHNOLOGY CORPORATION
Assigned to NAPO ENTERPRISES, LLC reassignment NAPO ENTERPRISES, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ELOY TECHNOLOGY, LLC
Assigned to CONCERT TECHNOLOGY CORPORATION reassignment CONCERT TECHNOLOGY CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NAPO ENTERPRISES, LLC
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44222Analytics of user selections, e.g. selection of programs or purchase activity
    • H04N21/44224Monitoring of user activity on external systems, e.g. Internet browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/252Processing of multiple end-users' preferences to derive collaborative data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42607Internal components of the client ; Characteristics thereof for processing the incoming bitstream
    • H04N21/4263Internal components of the client ; Characteristics thereof for processing the incoming bitstream involving specific tuning arrangements, e.g. two tuners
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43622Interfacing an external recording device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44222Analytics of user selections, e.g. selection of programs or purchase activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • H04N21/4583Automatically resolving scheduling conflicts, e.g. when a recording by reservation has been programmed for two programs in the same time slot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4668Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47214End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for content reservation or setting reminders; for requesting event notification, e.g. of sport results or stock market
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/475End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data
    • H04N21/4756End-user interface for inputting end-user data, e.g. personal identification number [PIN], preference data for rating content, e.g. scoring a recommended movie
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4826End-user interface for program selection using recommendation lists, e.g. of programs or channels sorted out according to their score
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6543Transmission by server directed to the client for forcing some client operations, e.g. recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal

Definitions

  • the present disclosure relates to a program guide that identifies programs available for presentation to a viewer, and in particular to a merged program guide containing program information obtained from a plurality of media controllers.
  • media controllers such devices can include set top boxes, digital video recorders, intelligent gaming consoles such as the Microsoft® Xbox®, Sony® PlayStation®, and Nintendo® GameCube®, media consoles such as the Apple® TV®, personal computers, and the like.
  • Each of these media controllers may receive programming from one or more content providers, including cable content providers, satellite content providers, internet content providers, and the like, and provide the programming to a viewer upon request.
  • a digital video recorder in a bedroom may receive content from a cable provider that offers television programs, music channels, video on demand content, and the like.
  • a second digital video recorder in the living room may receive content from the same cable provider, as well as a satellite provider that offers different television programs, music channels and video on demand content.
  • a Sony® Playstation® in the basement may receive content from the Internet, and have a variety of programs and music recorded on an attached storage device.
  • What is needed is an intuitive and dynamic electronic program guide that contains information identifying the content that is available from all the media controllers in a household. It would also be beneficial if the electronic program guide could identify who is consuming what content at which location, both currently and historically. Such information would, among other advantages, greatly expand a viewer's options, and enable individuals to keep track of what other individuals have, or are, consuming.
  • Embodiments of the present disclosure include a method for generating a program guide that includes program records containing program metadata identifying programs available at multiple media controllers coupled to a local area network. Each media controller can transmit program metadata identifying programs available via the respective media controller onto the network. Each media controller can receive the program metadata of the other media controllers and store the program metadata in a merged program guide.
  • the merged program guide enables the display of information relating to which programs are available at each of the media controllers at a locale, such as a residence.
  • a first media controller may receive a first content package from a first content provider, and provide program metadata identifying the programs available in the first content package to a second media controller.
  • the second media controller may receive a second content package, and provide program metadata identifying the programs available in the second content package to the first media controller.
  • At least one of the media controllers generates a merged program guide containing program records which includes program metadata identifying programs available in the first content package and the second content package.
  • the first media controller may compare second program metadata received from the second media controller to first program metadata identifying a program available via a first content package at the first media controller.
  • the first media controller may determine that the second program metadata identifies the same program identified by the first program metadata.
  • the media controller stores the second program metadata in association with the first program metadata in the guide, enabling notification to a viewer that the same program is available via multiple media controllers.
  • a first media controller may determine which particular viewers are in proximity to the first media controller during the presentation of a program.
  • the identity of the particular viewers may be stored in a program record corresponding to the program.
  • the program record may be transmitted onto a network and made available to the other media controllers coupled to the network.
  • a second media controller may cause a display on a display device identifying the program currently being presented by the first media controller, and the identity of the viewers in proximity to the first media controller.
  • a first media controller may determine which program is currently being presented by a second media controller, and cause a display on a display device that identifies the program.
  • the first media controller may request that the second media controller provide a program stream of the program currently being presented by the second media controller.
  • the second media controller may generate and provide via the network a program stream of the program to the first media controller.
  • the first media controller may cause the display to present a first program that is currently being presented by the first media controller in a first area of the display device, while concurrently causing the display of the program stream from the second media controller in a second area of the display device.
  • the first media controller may also display an identification of those viewers who are in proximity of the first media controller, as well as those viewers who are in proximity to the second media controller.
  • the media controller may, upon request by a viewer, use the program records in the program guide to cause historical information to be displayed on the display device. For example, the media controller may cause the display to present information identifying which programs were previously presented via which media controller, and the identification of the viewers of such programs.
  • FIG. 1 is an exemplary block diagram of a locale in which embodiments may be practiced
  • FIG. 2 is a block diagram illustrating additional detail of a media controller according to one embodiment
  • FIG. 3 is block diagram of an exemplary stored item record according to one embodiment
  • FIG. 4 is a block diagram illustrating exemplary nodal data according to one embodiment
  • FIG. 5 is a block diagram of an exemplary recorder according to one embodiment
  • FIG. 6 is a block diagram of an exemplary merged guide according to one embodiment
  • FIG. 7 is a flowchart illustrating an exemplary method for generating program records
  • FIG. 8 is a block diagram illustrating exemplary update timestamp data according to one embodiment
  • FIG. 9 is a flowchart illustrating an exemplary method for receiving and processing program metadata sent from one media controller to another media controller;
  • FIG. 10 is a flowchart illustrating an exemplary method for sending program metadata to another media controller
  • FIG. 11 illustrates an exemplary merged guide at a first point in time
  • FIG. 12 illustrates the exemplary merged guide illustrated in FIG. 11 at a second point in time
  • FIG. 13 is a block diagram illustrating exemplary mechanisms that may be used by a media controller to determine the identity of a particular viewer
  • FIG. 14 is a flowchart illustrating an exemplary method for integrating viewer information with a program record
  • FIG. 15 illustrates an exemplary guide window suitable for displaying information obtained from the merged guide
  • FIG. 16 illustrates another exemplary guide window suitable for displaying historical information obtained from the merged guide
  • FIG. 17 illustrates another exemplary guide window suitable for displaying information obtained from the merged guide
  • FIG. 18 is block diagram illustrating exemplary requests that one media controller may make of another media controller
  • FIGS. 19-21 illustrate exemplary guide windows suitable for displaying information obtained from the merged guide.
  • FIG. 22 illustrates an exemplary media controller according to one embodiment.
  • Embodiments of the present disclosure include a method for generating a program guide that includes program records containing program metadata identifying programs available at multiple media controllers coupled to a local area network. Each media controller transmits program metadata identifying programs available via the respective media controller onto the network. Each media controller receives the program metadata of the other media controllers and stores the program metadata in a merged program guide.
  • the merged program guide enables the display of information relating to which programs are available at each of the media controllers in a residence.
  • FIG. 1 illustrates a locale 10 , such as a residence, in which media controllers 12 A and 12 B (generally, media controller 12 or media controllers 12 ) are located.
  • the media controllers 12 may comprise any device capable of providing, presenting, or otherwise causing the display of content upon demand, such, for example, a set top box, a digital video recorder, an intelligent gaming console, such as the Microsoft® Xbox®, Sony® PlayStation®, and Nintendo® GameCube®, a media console such as the Apple® TV®, and the like.
  • the media controllers 12 provide content to one or more viewers 14 by causing a display on a display device 16 .
  • the display device 16 may comprise any display technology, such as a television, a computer monitor, a projector, and the like.
  • the media controllers 12 generate output streams that are provided to output connections on the media controllers 12 (not illustrated), which are directed to a respective display device 16 , typically via a cable or other signal-carrying mechanism. While for purposes of illustration the media controllers 12 and display devices 16 are illustrated as devices which are separate from one another, the display device 16 may be integral with the media controller 12 . For example, a single unit may include both a media controller 12 , such as a digital video recorder, and a display device 16 , such as a television. Where a media controller 12 and display device 16 are integral, the signal-carrying connection between the two may not be by a connection cable, but rather by an internal bus or other signal-carrying mechanism.
  • the media controller 12 A receives content from content providers 18 A and 18 B (generally content providers 18 , or content provider 18 ).
  • the content providers 18 may comprise any provider of content, including service providers that provide content for a direct or indirect fee, cable operators, satellite operators, internet content providers, and the like.
  • the content received by the media controllers 12 may be any content desirable for presentation, display or otherwise rendering to a viewer 14 , such as broadcast television, movies, video on demand, music, and the like.
  • Units of content will be referred to herein as programs, and a program can refer to any unit of content that is referred to individually by the content provider, such as a particular television show, a particular movie, a song, and the like.
  • Content is typically, but not necessarily, provided to the media controllers 12 in a content package that is defined by a particular subscription.
  • the subscription between the media controller 12 and the content provider 18 defines which channels and features make up a particular content package, and therefore defines the programming that will be provided by the respective content provider 18 to the media controller 12 pursuant to the subscription.
  • the media controller 12 A may receive a first content package that includes premium movies and high definition content from the content provider 18 A pursuant to a first subscription.
  • the media controller 12 B may receive a second content package that includes only standard definition content and no premium movies from the content provider 18 D pursuant to a different subscription, even though the content provider 18 A may be the same content provider as the content provider 18 D.
  • the same program may therefore be available to the same or different media controllers 12 .
  • different versions of the same program may be available to the same or different media controllers 12 .
  • the media controller 12 A may have access to a high-definition version of a particular episode of Survivor, while the media controller 12 B has access only to a standard-definition version of Survivor based on the respective subscriptions.
  • the content providers 18 typically provide a guide to the media controllers 12 that identifies programs available via the respective content provider 18 .
  • Such guides are depicted in FIG. 1 in the form of respective local electronic programming guides 20 A, 20 B (generally, local guides 20 or local guide 20 ). While for purposes of illustration each media controller 12 is shown as having only a single local guide 20 , it will be understood that each media controller 12 may have multiple local guides 20 , since each content provider 18 may provide its own respective local guide 20 to the media controller 12 .
  • Local guides 20 typically comprise program metadata identifying attributes and characteristics of particular programs.
  • the program metadata may be provided to the media controller 12 continually on a particular channel, or upon request by the media controller 12 , or at certain predetermined times.
  • the program metadata can include any data that may be useful or desirable to the viewer 14 (typically as determined by the respective content provider 18 ).
  • program metadata may include a title, a description, identification of well-known actors, a channel on which the program will be provided, a genre, an MPAA rating, a duration, a version, a time and date the program will be provided, and the like.
  • a viewer 14 accesses a local guide 20 via an input device (not illustrated) such as a remote control, wherein, upon receipt of a request via the remote control, the media controller 12 will cause a display of information from the local guide 20 on the display device 16 .
  • an input device such as a remote control
  • the media controllers 12 A, 12 B may also contain one or more respective recorded programs 22 A, 22 B (generally, recorded programs 22 or recorded program 22 ).
  • the recorded programs 22 may have been previously selected by the viewer 14 for time-shifting purposes, for example, to enable the viewer 14 to view a program at a different time from when the program was originally provided by a content provider 18 .
  • Different programs may be recorded at different media controllers 12 , and thus, for example, the recorded programs 22 A may differ from the recorded programs 22 B.
  • the media controllers 12 may also be communicatively coupled to local entertainment libraries 24 that contain a variety of programs, such as movies, songs, videos and the like that may have been downloaded, ripped, or otherwise obtained by the viewer 14 .
  • Each of the media controllers 12 A, 12 B are communicatively coupled to one another via a local area network 26 .
  • the local area network 26 may comprise any suitable communication mechanism that enables the media controllers 12 A, 12 B to communicate with one another, including, for example, an Ethernet network, Token Ring network, and the like.
  • the media controllers 12 access the network 26 via communication links 28 , which may comprise any suitable technology for accessing the network 26 , such as, for example, WiFi, an Ethernet cable, and the like.
  • the network 26 may use any suitable message transport protocol to enable message communications between the media controllers 12 A, 12 B, such as, for example, TCP/IP.
  • each of the media controllers 12 A, 12 B also includes a respective merged guide 30 A, 30 B (generally, merged guides 30 or merged guide 30 ). While the generation and contents of the merged guide 30 will be discussed later in detail, generally, each merged guide 30 contains program records identifying programs available from a variety of different sources, including programs that are available at other media controllers 12 .
  • the merged guide 30 A may contain program records identifying programs available from each of the content providers 18 A- 18 E, programs available in the entertainment libraries 24 A, 24 B, and recorded programs 22 A and 22 B.
  • the merged guide 30 B associated with the media controller 12 B also preferably contains program records identifying programs available from each of the content providers 18 A- 18 E, programs available in the entertainment libraries 24 A, 24 B, and recorded programs 22 A and 22 B.
  • the media controller 12 A may cause a display on the display device 16 which presents information contained in the merged guide 30 A.
  • a viewer 14 may use any media controller 12 that is coupled to the network 26 to determine the entire collection of content that may be consumed by the viewer 14 .
  • the media controllers 12 may discover one another on the network 26 using any suitable device discovery mechanism or techniques.
  • Device discovery mechanisms are known to those skilled in the art and will not be described in detail herein.
  • the media controller 12 A may use the Bonjour® service discovery protocol to discover the media controller 12 B, but the embodiments are not limited to any particular device discovery mechanism.
  • FIG. 2 is a block diagram illustrating additional details of a media controller 12 according to one embodiment.
  • the media controller 12 preferably includes nodal data 32 , which includes information that may be unique to the respective media controller 12 , such as, for example, a name of the media controller 12 , a serial number associated with the media controller 12 , log files generated by the media controller 12 , and the like. Exemplary nodal data 32 will be discussed in greater detail with reference to FIG. 3 .
  • the media controller 12 includes a tuner 34 which is used to select content provided by a content provider 18 . For example, the content provider 18 may concurrently provide a number of different programs to the media controller 12 , each program being delivered on a particular frequency.
  • the tuner 34 for example in response to a channel selection from a viewer 14 , tunes to a particular frequency and captures the program data being provided at the particular frequency.
  • the tuner 34 then typically causes the program to be displayed on a display device 16 , or may record the program, as discussed in greater detail herein. While the tuner 34 has been discussed herein in terms of tuning to a particular frequency, it will be apparent that programs may be differentiated from one another by mechanisms other than a frequency, and the tuner 34 therefore is not limited to a frequency tuner, but may comprise any suitable tuner capable of selecting a desired program from a plurality of programs.
  • the media controller 12 preferably includes a recorder 36 for recording a program.
  • the recorder 36 preferably receives input from the tuner 34 , encodes the input into a desired format, if necessary, and stores the program data in a storage 38 .
  • the storage 38 may comprise any suitable storage technology, such as a hard drive, flash drive, and the like.
  • the storage 38 is preferably a persistent storage that survives the powering down of the media controller 12 , and may contain data from a variety of sources, including, for example, the local guide 20 , the merged guide 30 , and the like.
  • the media controller 12 may also include a retransmitter 40 which enables the retransmission of a program received by the media controller 12 onto the network 26 .
  • the retransmitter 40 may segment the program data received by the media controller 12 into packets and transmit the packets to another media controller 12 via the network 26 .
  • the retransmitter 40 may encode the program differently from the way the program was encoded when initially received by the tuner 34 .
  • a first media controller 12 may request from a second media controller 12 a program stream of a program currently being presented to viewers 14 by the second media controller 12 . The request may identify that a particular quality, or resolution, of the program stream is desired.
  • the first media controller 12 may intend to display the program stream in a relatively small area of a display device 16 in conjunction with other information, and thus not require a high resolution program stream.
  • the second media controller 12 may then encode the program into a sufficiently lower resolution version of the program prior to transmitting the program stream onto the network 26 to minimize network usage.
  • the media controller 12 may also include a web server 42 for use in transferring program metadata between media controllers 12 .
  • the web server 42 may respond to requests for program metadata from other media controllers 12 .
  • the program metadata may be formatted and transferred in an XML format.
  • the media controller 12 may also include update timestamp data 44 that identifies the times that other media controllers 12 last provided program metadata to the media controller 12 .
  • the update timestamp data 44 may be used by the media controller 12 to quickly determine which program metadata received by another media controller 12 constitutes new program metadata. The receipt of program metadata by a media controller 12 and the use of the update timestamp data 44 will be described in greater detail herein.
  • FIG. 3 is block diagram of a stored item record 50 - 1 that contains data associated with items stored in storage 38 , or elsewhere.
  • the storage 38 may contain a plurality of stored item records 50 - 1 - 50 -N.
  • the stored item record 50 - 1 contains information identifying, for example, a recorded program 22 , or a program in the entertainment library 24 .
  • the stored item record 50 - 1 may include a globally unique identifier (GUID) field 52 that contains a GUID which uniquely identifies the stored item record. The generation of a GUID is known to those skilled in the art, and will not be discussed in detail herein.
  • the stored item record 50 - 1 also includes a location field 54 identifying a location of the corresponding program.
  • the location field 54 may indicate the program resides in the storage 38 , the entertainment library 24 , or elsewhere.
  • the stored item record 50 - 1 preferably includes a metadata GUID field 56 that contains a metadata GUID which uniquely identifies a metadata record containing metadata pertaining to the corresponding program.
  • the metadata record may be in the storage 38 , on a local server coupled to the network 26 , or on a remote server accessible by the media controller 12 over a wide area network coupled to the network 26 .
  • FIG. 4 is a block diagram illustrating exemplary nodal data 32 according to one embodiment.
  • the nodal data 32 can include a name field 58 that contains a name which identifies the respective media controller 12 .
  • the name field 58 of the media controller 12 A may be “TIVO DVR”, and the name field 58 of the media controller 12 B may be “TimeWarner SetTop.”
  • the name field 58 may contain a link or reference to a graphical image that depicts a particular type of media controller 12 .
  • the nodal data 32 can include a description field 60 that provides a short textual description of the capabilities of the respective media controller 12 .
  • a capabilities field 62 may identify operations performable by the respective media controller 12 , and power consumption characteristics.
  • a serial number field 64 may contain a unique manufacturer serial number of the media controller 12 .
  • a manufacturer field 66 may identify the manufacturer of the media controller 12 .
  • a model field 68 may identify a particular model of the media controller 12 .
  • Logs field 70 may comprise data generated during the operation of the media controller 12 , such as, for example, faults or errors that occur during the operation of the media controller 12 , and/or input selections received from viewers 14 , which programs were watched at which times, and the like.
  • a service field 72 may contain service status information regarding the media controller 12 such as service intervals and/or wear counts.
  • the wear count may indicate how many times particular “wear items” have been used.
  • a media controller 12 containing a hard drive may provide a wear count on the hard drive indicating how many times the hard drive has been written to. This information may in turn be used to predict how much useful life is left on the drive.
  • a state field 74 may contain a status of the media controller 12 , such as, for example “Booting”, “On”, “Recording”, “Sleep”, “Updating”, and the like.
  • a location field 76 may identify a location of the media controller 12 within the locale 10 .
  • the location field 76 of the media controller 12 A may contain “Den”, and the location field 76 of the media controller 12 B may contain “Living Room.”
  • the nodal data 32 may also include a preference settings field 78 identifying preferences of one or more viewers 14 . Any desired preference data may be stored in the preference settings field 78 , such as, for example, genre preferences, actor preferences, time preferences, series preferences, and the like. Preference data may be used, for example, by the media controller 12 to provide program recommendations to a viewer 14 .
  • FIG. 5 is a block diagram of the recorder 36 according to one embodiment.
  • the recorder 36 receives a source 80 from the tuner 34 .
  • the recorder 36 uses an encoder 82 to encode the source 80 in a desired format, such as the MPEG-2 format.
  • the encoded program can be stored in the storage 38 .
  • the recorder 36 may include a buffer 84 for use in temporarily storing segments of the source 80 while it is being encoded.
  • FIG. 6 is an exemplary block diagram of a merged guide 30 according to one embodiment.
  • the format of the merged guide 30 depicted in FIG. 6 is but one exemplary layout, and the embodiments are not limited thereto.
  • the merged guide 30 may include a plurality of channel records 86 , such as channel records 86 - 1 - 86 -N.
  • the phrase “record” as used herein means a structure which contains data and may be stored and accessed as necessary, and does not imply a particular format or internal layout.
  • the channel record 86 - 1 may include an information field 88 that contains text identifying source attributes of the channel, such as the particular service provider, or other source.
  • the information field 88 may contain the name of the cable company. Alternately, the channel information field 88 may contain the ultimate source of the content associated with the channel, such as NBC, ABC, and the like. Where the content associated with the channel is provided by a local source, such as the entertainment library 24 , the channel information field 88 may identify the entertainment library 24 by a name, such as “John's Video Library.”
  • the channel 86 - 1 may also include a rating field 90 that generally describes the content associated with the channel 86 - 1 . For example, if the channel 86 - 1 is a mature adult channel, the rating field 90 may identify it as such.
  • Each channel 86 may include one or more program records 92 .
  • the channel 86 - 1 contains a plurality of program records 92 - 1 - 92 -N.
  • Each program record 92 contains metadata associated with a particular program.
  • each program record 92 corresponds to a particular program.
  • the program record 92 may contain a GUID field 94 that contains a GUID which uniquely identifies the program.
  • a title field 96 may contain a textual title of the program.
  • a start field 98 may identify a present, past or future start time of the program.
  • a duration field 100 identifies a length of the program.
  • a rating field 102 may contain an MPAA rating of the program.
  • a quality field 104 may identify the encoding quality of the program.
  • An alt location field 106 may contain an alternate location of the program other than the location identified in the source field 116 , described below.
  • the location identified in the source field 116 may be the source of a highest quality version of the program, while the alt location field 106 may provide a lower quality version of the program.
  • a uniform resource identifier represents the location indicated by the source field 116 and alt location field 106 .
  • the URI may point to a local media item, or may reference a program available from another media controller 12 over the network.
  • a requestors field 108 may contain information identifying one or more viewers 14 that have requested that the program be recorded.
  • a viewers list 110 may identify one or more viewers 14 that were identified as being in proximity to the media controller 12 which presented the program.
  • a metadata GUID field 112 may contain a metadata GUID which uniquely identifies a metadata record containing metadata describing additional attributes of the program. The metadata record may exist, for example, on a local or a remote server accessible by the media controller 12 .
  • An originator field 115 may identify the particular media controller 12 which originated the respective program record 92 .
  • a record update timestamp (TS) field 114 may contain a timestamp identifying the time of the last update to the record 92 - 1 .
  • a source field 116 may identify a location of the program, and may comprise, for example, a URI.
  • the program record 92 may also include an operation field 117 for identifying a particular operation performed on the corresponding program by the media controller identified in the originator field 115 .
  • the operation field 117 may contain a value of 0 to indicate the no operation was performed on the program, a value of 1 to indicate the program was recorded, a value of 2 to indicate the program was presented to a viewer 14 , and a value of 3 to indicate that the program was both recorded and presented to a viewer 14 .
  • each media controller 12 coupled to the network 26 generates program records 92 for each program that is available at the respective media controller 12 .
  • local guide 20 A may include guides for programs available from the content providers 18 A and 18 B.
  • the media controller 12 A may read the local guide 20 A and generate a program record 92 for each program identified in the local guide 20 A.
  • the media controller 12 A may also generate program records 92 for each recorded program 22 A, and each item available for presentation from the entertainment library 24 A. If program metadata for such programs is unavailable, the media controller 12 A may access well-known sources of program metadata from, for example, an Internet provider of such data, and use the program metadata to populate the fields of the program record 92 .
  • FIG. 7 is a flowchart illustrating an exemplary method for generating program records 92 .
  • the media controller 12 A is traversing a local guide 20 A, and determines that the local guide 20 A identifies a program that is not identified in the merged guide 30 A.
  • the content provider 18 A may have recently provided the media controller 12 A new program guide data that identifies programs that will be available for presentation one week from the present date.
  • the media controller 12 A generates a program record 92 (step 1000 ).
  • the media controller 12 A then generates a GUID that uniquely identifies this program (step 1002 ).
  • the media controller 12 A then populates the fields described above with regard to FIG. 6 with the appropriate data (step 1004 ).
  • the media controller may insert the current time in the record update timestamp field 114 .
  • the media controller 12 A then stores the program record 92 in the merged guide 30 (step 1006 ).
  • Each media controller 12 preferably provides program metadata from the program records 92 which are available from the respective media controller 12 to the other media controllers 12 .
  • the media controller 12 A provides the media controller 12 B program metadata from each of the program records 92 stored in the merged guide 30 A.
  • the media controller 12 B similarly provides the media controller 12 A program metadata from each of the program records 92 in the merged guide 30 B.
  • each media controller 12 contains program records 92 identifying programs available at not only the respective media controller 12 , but which are available at all media controllers 12 coupled to the network 26 .
  • the program metadata may be provided in the same format as the program records 92 , or in a different format.
  • the program metadata may be “pushed” as desired by a media controller 12 to the other media controllers, or may be “pulled” from a media controller 12 upon request.
  • the program metadata may be provided in an XML file, which may have a format similar to the program record 92 .
  • a media controller 12 may broadcast a signal on the network 26 to indicate that new program metadata is available. Referring again to FIG. 1 , assume that the media controller 12 A has generated one or more new program records 92 . The media controller 12 A may broadcast a signal on the network 26 indicating that the media controller 12 A has new program metadata for distribution.
  • the media controller 12 B upon receipt of the signal, may send a message to the media controller 12 A requesting the program metadata.
  • each media controller 12 may maintain a last update timestamp for each other media controller 12 . Such last update timestamps may be maintained in the update timestamp data 44 ( FIG. 2 ) associated with the respective media controller 12 .
  • FIG. 8 is a block diagram illustrating exemplary update timestamp data 44 according to one embodiment.
  • the update timestamp data 44 may include one or more last update timestamps 120 - 1 - 120 -N (generally, last update timestamps 120 ), each of which may correspond to a respective media controller 12 .
  • the last update timestamps 120 identify the time of the last update of program metadata from the corresponding media controller 12 .
  • a media controller 12 that has program metadata to provide to another media controller 12 will be referred to as a publishing media controller 12
  • the media controller 12 receiving the program metadata will be referred to as a receiving media controller 12 .
  • the receiving media controller 12 may use a last update timestamp 120 to indicate to the publishing media controller 12 which program records 92 are needed. For example, in the current example, assume that the last update timestamp 120 - 1 corresponds to the publishing media controller 12 . The receiving media controller 12 may provide the last update timestamp 120 - 1 to the publishing media controller 12 to indicate to the publishing media controller 12 that the receiving media controller 12 only requires program metadata from those program records 92 that contain a record update timestamp more recent than the last update timestamp 120 - 1 .
  • the publishing media controller 12 may thus use the last update timestamp 120 - 1 to generate an XML file containing only program metadata for those program records 92 which have a record update timestamp that is more recent than the last update timestamp 120 - 1 .
  • the receiving media controller 12 receives, and then processes, the program metadata and updates the last update timestamp 120 - 1 with the latest record update timestamp associated with any program record 92 provided by the publishing media controller 12 .
  • FIG. 9 is a flowchart illustrating an exemplary method for receiving and processing program metadata sent from one media controller 12 to another media controller 12 .
  • FIG. 9 will be discussed in conjunction with FIGS. 1 and 6 .
  • the media controller 12 A will be assumed to have program metadata to distribute to the media controller 12 B, and will be referred to as the publishing media controller 12 A, and the media controller 12 B will be referred to as the receiving media controller 12 B.
  • the publishing media controller 12 A broadcasts a notification that the publishing media controller 12 A has new program metadata available for distribution.
  • the receiving media controller 12 B receives the notification (step 2000 ).
  • the receiving media controller 12 B obtains the last update timestamp 120 - 1 which corresponds to the publishing media controller 12 A (step 2002 ).
  • the receiving media controller 12 B generates a request containing the last update timestamp 120 - 1 and sends the request to the publishing media controller 12 A (steps 2004 , 2006 ).
  • the publishing media controller 12 A uses the last update timestamp 120 - 1 to select program metadata from each program record 92 having a record update timestamp that is later than the last update timestamp 120 - 1 .
  • the publishing media controller 12 A formats the program metadata and sends it to the receiving media controller 12 B.
  • the media receiving controller 12 B receives the program metadata (step 2008 ).
  • the receiving media controller 12 B may, for each program identified by the program metadata, attempt to match the program metadata to an existing program record 92 in the merged guide 30 B (step 2010 ). What constitutes a “match” may be system dependent. Generally, the receiving media controller 12 B may determine if various data in the provided program metadata matches corresponding data in any existing program record 92 . For example, the receiving media controller 12 B may determine that the program identified by the metadata matches a program identified by a program record 92 if the data from the title fields 96 match one another and the data from the start fields 98 match one another.
  • the receiving media controller 12 B may generate a child program record 92 from the supplied program metadata, such that the matched program record 92 in the merged guide 30 A is stored in association with the child program record 92 (step 2014 ).
  • establishing such a parent-child relationship between program records 92 enables the receiving media controller 12 B to cause the display of information to a viewer 14 that the same program is available at multiple media controllers 12 .
  • the receiving media controller 12 B may generate a program record 92 as a parent program record 92 that is not a child program record 92 to any other program record 92 (step 2016 ). While for purposes of illustration only two program records 92 have been shown as stored in association with one another, it is apparent any number of program records 92 that identify the same program may be stored in association with one another.
  • FIG. 10 is a flowchart illustrating an exemplary method for sending program metadata to another media controller.
  • the publishing media controller 12 A has new program metadata to distribute.
  • the publishing media controller 12 A broadcasts a notification signal onto the network 26 indicating that new program metadata is available (step 3000 ).
  • the publishing media controller 12 A receives a request for data from the receiving media controller 12 B (step 3002 ).
  • the publishing media controller 12 A obtains the last update timestamp 120 - 1 from the request for data (step 3004 ).
  • the publishing media controller 12 A obtains program metadata from those program records 92 having a record update timestamp greater than the last update timestamp 120 - 1 (step 3006 ).
  • FIGS. 11 and 12 are block diagrams illustrating exemplary relationships between several program records 92 .
  • FIG. 11 illustrates that at a first point in time, the merged guide 30 A contains a plurality of program records 92 A- 92 C, each of which may be considered a parent program record 92 .
  • the merged guide 30 B contains a plurality of program records 92 D- 92 F, each of which may also be considered a parent program record 92 .
  • FIG. 12 illustrates an exemplary relationship between program records 92 after the media controller 12 A has communicated the program records 92 A- 92 C to the media controller 12 B, and has received from the media controller 12 B the program records 92 D- 92 F.
  • the media controller 12 A determined that the program record 92 D identified the same program as identified by the program record 92 A, and consequently made the program record 92 D a child record to the program record 92 A.
  • the program record 92 E was also determined to identify the same program as identified by the program record 92 B, and was therefore similarly made a child record to the program record 92 B. Because the program record 92 F did not match any other program record 92 in the merged guide 30 A, the program record 92 F is made a parent program record 92 F.
  • the media controller 12 may determine the identity of the viewers 14 that are in proximity to the media controller 12 . This information may be stored in the viewers list 110 of the program records 92 for the corresponding programs that are presented by the media controller 12 .
  • FIG. 13 is a block diagram illustrating exemplary mechanisms that may be used by a media controller 12 to determine the identity of a particular viewer.
  • the media controller 12 A in a den 118 is communicatively coupled to an input device 128 . As the viewers 14 A, 14 B enter the den 118 , each viewer 14 A, 14 B uses the input device 128 to indicate that the respective viewer 14 A, 14 B is in the den 118 and watching programming presented by the media controller 12 A.
  • each viewer 14 A, 14 B may use the input device 128 to indicate they are departing the den 118 .
  • the media controller 12 A may maintain the identity of the viewers 14 who are in the den 118 , and for each program provided during the presence of a viewer 14 , update the viewers list 110 in the program record 92 corresponding to the presented program.
  • the input device 128 may comprise any suitable device and interface, such as a keyboard, or a mouse and a computer having a user interface that enables a viewer 14 to simply click on a designated portion of a display to indicate the presence or departure of the viewer 14 from the den 118 .
  • the computer may be wirelessly coupled to the media controller 12 A, and communicate the status of incoming and outgoing viewers 14 to the media controller 12 as appropriate.
  • the media controller 12 B in the living room 122 includes a facial recognition processor 130 that is able to identify through facial processing technology the viewers 14 C- 14 E. Facial recognition technology is known to those skilled in the art, and will not be described in detail herein.
  • the facial recognition processor 130 communicates the identity of the viewers 14 C- 14 E to the media controller 12 B. While the facial recognition processor 130 is illustrated as being integral with the media controller 12 B, in an alternate embodiment, the facial recognition processor 130 may be separate from but coupled to media controller 12 B via a wired or wireless communications channel, for example.
  • the media controller 12 C in a bedroom 124 includes a radio frequency identification (RFID) processor 134 .
  • the RFID processor 134 may receive a signal from a device worn, or carried, by the viewer 14 F. For example, a cell phone of the viewer 14 F may emit a signal that can be received by the RFID processor 134 . Upon receipt of such signal, the RFID processor 134 can communicate the identity of the viewer 14 F to the media controller 12 C.
  • the media controller 12 D in a basement 126 is coupled to a wireless Bluetooth interface which enables the media controller 12 D to communicate with Bluetooth devices, such as a cell phone, that contain the appropriate software to interface with the media controller 12 D.
  • Bluetooth devices such as a cell phone
  • Such software may be programmed to emit a signal that can be detected by the media controller 12 D via the wireless Bluetooth interface 132 .
  • the signal may contain an identifier identifying a particular viewer 14 G, 14 H.
  • the media controller 12 D may periodically poll the cell phone to determine if the viewer 14 G, 14 H is still in proximity of the media controller 12 D. If the media controller 12 D does not receive a response to the poll, the media controller 12 D may determine that the viewers 14 G, 14 H are no longer in proximity of the media controller 12 D.
  • FIG. 14 is a flowchart illustrating an exemplary method for storing viewer information into a program record 92 .
  • the media controller 12 determines that a new viewer 14 is in proximity to the media controller 12 , and identifies the new viewer 14 (step 4000 ).
  • the media controller 12 may use one of the mechanisms described with regard to FIG. 13 , or any other suitable mechanism.
  • the media controller 12 obtains the program record 92 corresponding to the program that is currently being provided for display by the media controller 12 (step 4002 ).
  • the media controller 12 updates the viewer list 110 of the program record 92 to include an identification of the new viewer 14 ( 4004 ).
  • the media controller 12 also updates the record update timestamp of the program record 92 .
  • the media controller 12 stores the program record 92 in the merged guide (step 4006 ). Note that the media controller 12 may also broadcast a notification signal to the network 26 to notify other media controllers 12 that the media controller 12 has new program metadata to distribute. In this manner, each media controller 12 coupled to the network 26 may be, substantially in real-time, provided data that identify who, in which room, is watching which programs.
  • the merged guide 30 may be used by the media controller 12 to cause a display of guide information that may be desired by a viewer 14 .
  • FIG. 15 illustrates an exemplary guide window 136 suitable for displaying guide information obtained from the merged guide 30 .
  • the guide window 136 includes a channel column 138 identifying a plurality of channels.
  • the channel information depicted in the channel column 138 is obtained from the channel field 86 ( FIG. 6 ).
  • the guide window 136 may also include program information area 140 identifying a plurality of programs that have, are, or may be available for presentation by the media controller 12 .
  • the program information area 140 is obtained from the program records 92 .
  • Program information area 140 A illustrates the presentation of information obtained by a parent program record 92 and a child program record 92 identifying the same program, in this example, the show “Survivor.”
  • Program information area 140 A identifies for the viewer 14 that Survivor is available in the living room, and is also available in the den.
  • Program information area 140 A also indicates that the version of Survivor available in the living room is a standard definition version, while the version available in the den is a high definition version.
  • Program information area 140 B similarly informs the viewer 14 that the show “Castle” is available in standard definition in the bedroom and the living room, and in high definition in the den.
  • FIG. 16 illustrates another exemplary guide window 136 suitable for displaying historical information obtained from the merged guide 30 .
  • Program information area 140 A indicates that the viewers 14 , Matt and Ben, viewed the news on the ABC channel between 6:00-7:00.
  • the program information area 140 B indicates that viewers Jack and Jill viewed the CW news between 6:00 and 7:00.
  • the program information area 140 A is obtained from the viewers list 110 of the program record 92 corresponding to the news program carried on ABC between 6:00-7:00.
  • the program information area 140 B is obtained from the viewers list 110 of the program record 92 corresponding to the news program carried on CW between 6:00-7:00. In this manner, a viewer 14 may determine who watched which programs.
  • FIG. 17 illustrates another exemplary guide window 136 suitable for displaying information obtained from the merged guide 30 .
  • the program information area 140 A indicates that the show Survivor is available in the living room, and has also been previously recorded by the media controller 12 in the den.
  • the program information area 140 B indicates that the show Castle is available in the living room, and has also been previously recorded by the media controller 12 in the bedroom.
  • the one media controller 12 may send requests to another media controller 12 for information, or to direct the other media controller 12 to provide a desired function.
  • FIG. 18 is block diagram illustrating certain requests that one media controller 12 may make of another media controller 12 according to one embodiment.
  • the media controller 12 A may send an IDENTIFY_CURRENT_PROGRAM request 142 to the media controller 12 B.
  • An IDENTIFY_CURRENT_PROGRAM request 142 requests that the media controller 12 B identify the specific program that is currently being provided by the media controller 12 B.
  • the media controller 12 B may provide the media controller 12 A the program record 92 corresponding to the program that the media controller 12 B is currently presenting.
  • the media controller 12 A may send the media controller 12 B a RECORDING_STATUS_REQUEST 144 , which requests information regarding the recording status of the program that is currently being presented by the media controller 12 B.
  • the media controller 12 B provides a message indicating whether the current program being provided by the media controller 12 B is being recorded.
  • the media controller 12 A may send the media controller 12 B a RECORD_PROGRAM request 146 , which requests that the media controller 12 B record a particular program.
  • the RECORD_PROGRAM request 146 may include the program record 92 corresponding to the program that is to be recorded.
  • the media controller 12 B may determine that no tuner is available to record the program, or may begin recording the desired program, or may schedule the desired program for recording if the program has not begun yet.
  • the media controller 12 B may provide the media controller 12 A a message indicating success or failure of the request.
  • the media controller 12 A may send the media controller 12 B a PROVIDE_CURRENT_PROGRAM request 148 , which requests that the media controller 12 B provide a program stream of the program that is currently being provided by the media controller 12 B.
  • the media controller 12 B using the retransmitter 40 , may then provide a program stream of the program which is currently being provided by the media controller 12 B.
  • FIG. 19 illustrates another exemplary guide window 136 suitable for displaying information obtained from the merged guide 30 .
  • the guide window 136 generally contains two portions, a media controller information area 150 and a program-by-viewer area 152 .
  • the media controller information area 150 provides current status information about selected media controllers 12 coupled to the network 26 .
  • the selected media controllers 12 may be each media controller 12 coupled to the network 26 , or a subset thereof. For example, if a media controller 12 is not currently providing any programs to a viewer 14 , that media controller 12 may not be selected, and therefore will not have a corresponding media controller information area 150 in the guide window 136 .
  • the guide window 136 includes media controller information areas 154 A- 154 C, each of which corresponds to a respective media controller 12 A- 12 C.
  • the media controller information area 154 A corresponds to the media controller 12 A.
  • the media controller information area 154 A includes a media controller location identifier 156 A, which for the media controller 12 A indicates the media controller 12 A is in the den.
  • the media controller information area 154 A also includes a program identification 158 A which identifies the program currently being provided by the media controller 12 A.
  • the media controller information area 154 A may include a device type identifier 160 A which identifies the type of device of the media controller 12 A.
  • the device type identifier 160 A may be a textual description, such as “set top box”, or “computer”, or “XBOX”, or may comprise an image or icon which graphically depicts the device type.
  • the device type identifier 160 A may be derived in whole or in part from the name field 58 . For example, if the media controller 12 A is a set top box, the device type identifier 160 A may comprise a set top box image or icon. Alternately, if the media controller 12 A is a computer, the device type identifier 160 A may comprise a computer image or icon.
  • the media controller information area 154 A may also include requestor identifier 162 A which identifies the viewer 14 that is requesting the display of the guide window 136 .
  • the requestor identifier 162 may be a textual identifier, such as the name of the viewer 14 , or may by an icon or image that the viewer 14 designated as corresponding to the viewer 14 .
  • the media controller information area 154 A may provide a recording status indicator 164 a , indicating whether or not the program currently being provided by the media controller 12 A is being recorded.
  • the media controller information area 154 A preferably includes viewer identifiers 166 A- 166 C corresponding to the viewers 14 that have been determined to be in proximity to the media controller 12 A.
  • the viewer identifiers 166 A- 166 C may comprise textual identifiers, such as the names of the corresponding viewers 14 , or may comprise unique icons or images that each of the viewers 14 has previously identified to the media controller 12 A as representing such viewer 14 , or may be a combination of both a name and an icon or image.
  • the media controller information area 154 A may also include program display area 168 A wherein a real-time display of the program currently being provided by the media controller 12 A is displayed.
  • the media controller information area 154 B contains similar information corresponding to the media controller 12 B.
  • a media controller location identifier 156 B identifies the location of the media controller 12 B as the living room.
  • a program identification 158 B identifies the program currently being provided by the media controller 12 B as “(2001) Star Wars: The Clone Army.”
  • a device type identifier 160 B indicates a type of device of the media controller 12 B.
  • a recording status indicator 164 B indicates that the media controller 12 B is not recording the program that is currently being provided.
  • Viewer identifiers 166 D- 166 F identify three viewers 14 as watching the program currently being provided by the media controller 12 B.
  • a program display area 168 B provides a display of the program currently being provided by the media controller 12 B.
  • the information used to provide the program display area 168 B may be generated by the media controller 12 B and provided to the media controller 12 A in response to a request from the media controller 12 A, as described previously. For example, upon receiving a request from a viewer 14 to display the guide window 136 , the media controller 12 A may send each selected media controller 12 a provide current program request 150 ( FIG. 18 ). As the media controller 12 A receives the program streams, the media controller 12 A renders each program stream in the appropriate program display area 168 .
  • the media controller information area 154 C contains similar information for the media controller 12 C.
  • a media controller location identifier 156 C identifies the location of the media controller 12 C as the bedroom.
  • a program identification 158 C identifies the program currently being provided by the media controller 12 C as “(1998) Chris Rock: Stand Up.”
  • a device type identifier 160 C indicates a type of device of the media controller 12 C.
  • a recording status indicator 164 C indicates that the media controller 12 C is recording the program that is currently being provided.
  • Viewer identifiers 166 G- 166 I identify three viewers 14 as watching the program currently being provided by the media controller 12 C.
  • a program display area 168 C provides a display of the program currently being provided by the media controller 12 C.
  • each media controller information area 154 is depicted in FIG. 19 as having unique cross-hatching.
  • each media controller information area 154 may preferably depict a unique status background imagery, shading, coloring, or the like, to visually distinguish each such media controller information area 154 from one another.
  • such distinguishing background visually associates viewing activity with a particular location.
  • the program-by-viewer area 152 includes a viewer column 170 which identifies one or more viewers 14 . For purposes of illustration, information for only three viewers 14 are illustrated, but it is apparent that the program-by-viewer area 152 may provide information for any number of viewers 14 . Each viewer 14 may have a viewer identifier 166 , as discussed previously, which may comprise a textual identifier such as a name, an image, or both.
  • the program-by-viewer area 152 preferably contains a row of information for each viewer 14 .
  • the program-by-viewer area 152 may provide historical information 174 , current information 176 and future recommendations 178 . Assume for the purposes of illustration that the guide window is displayed at 7:00 PM.
  • a program information area 172 A illustrates that Jan viewed the ABC News program between 6:00 and 6:30. As depicted by cross-hatch, the program information area 172 A preferably has a background imagery, shading, coloring, or the like that matches one of the media controller information areas 154 . For example, the information area 172 A indicates by cross-hatching that Jan viewed the ABC News program in the living room, because the cross-hatching of the information area 172 A matches the cross-hatching of the media controller information area 154 B. Similarly, information area 172 B indicates that Cindy viewed the Sopranos program in the bedroom. Information area 172 C indicates that Marsha viewed the NBC News program in the den. While information areas 172 identify a particular program, it should be apparent that additional, or different information could be provided. For example, information areas 172 may provide the channel information associated with the program in addition to, or in place of, the program identification information.
  • the program information area 172 D in the current information 176 indicates that Jan is currently watching Star Wars: The Clone Army in the living room.
  • the program information area 172 E indicates that Cindy is currently watching Chris Rock: Stand Up in the bedroom.
  • the program information area 172 F indicates that Marsha is currently watching The Office: Episode #9 in the den.
  • the future recommendations 178 may provide program recommendations based on previous viewing habits, or based on preferences that have been provided by the respective viewer 14 .
  • Previous viewing information may be maintained in the merged guide 30 for a period of time, and after a predetermined period archived from the merged guide 30 and stored in a separate data structure. Information such as preferred shows, channels, genres, actors, times, days and the like may be gleaned for each viewer 14 , and based on this information, the guide window 136 may provide recommendations on a viewer-by-viewer basis. For example, based on past viewing history, user preferences, or a combination of both, the information areas 172 G- 172 I indicate that a recommendation for each of Jan, Cindy and Marsha is the program Survivor.
  • the information areas 172 G- 172 I further recommend that the program Survivor be viewed in the den. This may be based on historical information that Survivor is provided by the media controller 12 A in the Den with a sufficient frequency to predict that Survivor will likely be provided in the future in the den. For example, it may be determined that Survivor was provided in the den at 8:00 PM for seven of the previous eight weeks. While for purposes of illustration the program information areas 172 G- 172 I have recommended the same program for each of Jan, Cindy and Marsha, it is apparent that different programs, and different locations, may be provided for each such viewer 14 .
  • FIG. 20 illustrates another exemplary guide window 136 suitable for displaying information obtained from the merged guide 30 .
  • the guide window 136 generally contains two portions, a media controller information area 150 and a view-by-channel area 180 .
  • the media controller information area 150 was described previously with regard to FIG. 19 .
  • the view-by-channel area 180 includes a channel column 182 in which one or more channels are identified. Note that devices that provide programs from local storage may be identified as a channel, such as the Playstation or Roku media controllers 12 . While for purposes of illustration only several channels are depicted in the guide window 136 , it will be apparent that any number of channels could be provided.
  • the view-by-channel area 180 can include a historical information 174 and a current information 176 .
  • the historical information 174 may include program information areas 172 that identify which programs were previously provided by a media controller 12 .
  • program information area 172 A indicates that ABC News was provided at 6 : 00 , and by virtue of the cross-hatching, that ABC News was provided in the living room.
  • the program information area 172 B indicates that NBC News was provided at 6:00, and by virtue of the cross-hatching, that NBC News was provided in the den.
  • the program information area 172 C indicates that the program Sopranos was provided at 6:00, and by virtue of the cross-hatching, that the Sopranos was provided in the bedroom.
  • the program information area 172 D indicates that the program The Office: Episode #9 on NBC is currently being provided in the den.
  • the program information area 172 E indicates that the program Chris Rock: Stand Up on HBO is currently being provided in the bedroom.
  • the program information area 172 F indicates that the program Star Wars: The Clone Army on BET is currently being provided in the living room.
  • FIG. 21 illustrates another exemplary guide window 136 suitable for displaying information obtained from the merged guide 30 .
  • the guide window 136 generally contains two portions, a media controller information area 150 and a view-by-room area 184 .
  • the media controller information area 150 was described previously with regard to FIG. 19 , and will not be discussed in detail again.
  • a letter is used to identify each of a plurality of viewers 14 , and is depicted in the corresponding viewer identifiers 166 illustrated herein. While such viewer identifiers 166 preferably contain names of the viewers 14 , images or icons associated with the viewers 14 , or a combination thereof, for purposes of ease of illustration viewers 14 will be identified by a single letter with regard to FIG. 21 .
  • the view-by-room area 184 includes a location column 186 identifying a location of each media controller 12 for which information will be displayed.
  • the view-by-room area 184 may provide historical information 174 , current information 176 and future recommendations 178 .
  • the historical information 174 may include program information areas 172 identifying what channels, programs, or combination of channels and programs were provided in which locations.
  • the program information areas 172 may also depict which viewers viewed which programs at which locations. For example, the program information area 172 A indicates that viewers A, B, C, D, E, and F watched the ABC channel in the den between 6:00 and 7:00.
  • the program information area 172 B indicates that viewers G and H watched the BET channel in the living room between 6:00 and 7:00.
  • the current information 176 may include program information areas 172 identifying what channels, programs, or a combination of channels and programs are currently being provided in which locations.
  • the program information area 172 C indicates that viewers A, B and C are currently watching the NBC channel in the den.
  • the program information area 172 D indicates that viewers D, E and F are currently watching the BET channel in the living room.
  • the program information area 172 E indicates that viewers G, H, and I are currently watching the HBO channel in the bedroom.
  • the future recommendations 178 may provide program or channel recommendations based on previous viewing habits, preferences that have been provided by the respective viewer 14 , or a combination of both.
  • the program information area 172 F indicates a recommendation for viewers B and F to watch the HBO channel in the den at 8:00 PM.
  • FIG. 22 illustrates an exemplary media controller 12 according to one embodiment.
  • the media controller 12 may, as discussed previously, comprise a set top box, a digital video recorder, an intelligent gaming console, such as the Microsoft® Xbox®, Sony® PlayStation®, and Nintendo® GameCube®, a media console such as the Apple® TV®, personal computers, and the like.
  • the exemplary media controller 12 may also include a central processing unit 200 , a system memory 202 , and a system bus 204 .
  • the system bus 204 provides an interface for system components including, but not limited to, the system memory 202 and the central processing unit 200 .
  • the central processing unit 200 can be any of various commercially available or proprietary processors. Dual microprocessors and other multi-processor architectures may also be employed as the central processing unit 200 .
  • the media controller 12 may include one or more tuners 34 for selecting program content from a communications channel.
  • the recorder 36 may receive a source input from the tuner 34 and store the content onto a storage device, such as the storage 38 .
  • the retransmitter 40 may provide a program of stream of program content over the network 26 to another media controller 12 .
  • the system bus 204 can be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures.
  • the system memory 202 can include non-volatile memory 206 (e.g., read only memory (ROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), etc.) and/or volatile memory 208 (e.g., random access memory (RAM)).
  • a basic input/output system (BIOS) 210 can be stored in the non-volatile memory 206 , which can include the basic routines that help to transfer information between elements within the media controller 12 .
  • the volatile memory 208 can also include a high-speed RAM such as static RAM for caching data.
  • the media controller 12 may further include a storage 38 , which may comprise, for example, an internal hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)) for storage.
  • the media controller 12 may further include an optical disk drive 212 (e.g., for reading a compact disk or DVD 214 ).
  • the drives and associated computer readable media provide non-volatile storage of data, data structures, computer-executable instructions, and so forth. For the media controller 12 , the drives and media accommodate the storage of any data in a suitable digital format.
  • computer-readable media refers to an HDD and optical media such as a CD-ROM or DVD
  • Zip disks magnetic cassettes, flash memory cards, cartridges, and the like
  • any such media may contain computer-executable instructions for performing novel methods of the disclosed architecture.
  • a number of program modules can be stored in the drives and volatile memory 208 including an operating system 216 and one or more program modules 218 which implement the functionality described herein. It is to be appreciated that the embodiments can be implemented with various commercially available operating systems or combinations of operating systems. All or a portion of the embodiments may be implemented as a computer program product, such as a computer usable medium having a computer-readable program code embodied therein.
  • the computer-readable program code can include software instructions for implementing the functionality of embodiments described herein.
  • the central processing unit 200 in conjunction with the program modules 218 in the volatile memory 208 may serve as a control system for the media controller 12 that is adapted to implement the functionality described herein.
  • a user can enter commands and information into the media controller 12 through one or more wired/wireless input devices, for example, a keyboard and a pointing device, such as a mouse (not illustrated).
  • Other input devices may include a microphone, an infrared (IR) remote control, a joystick, a game pad, a stylus pen, a touch screen, or the like.
  • IR infrared
  • These and other input devices are often connected to the central processing unit 200 through an input device interface 220 that is coupled to the system bus 204 but can be connected by other interfaces such as a parallel port, an IEEE 1394 serial port, a game port, a universal serial bus (USB) port, an IR interface, etc.
  • the media controller 12 may drive a separate or integral display device 16 , which may also be connected to the system bus 204 via an interface, such as a video output port 222 .
  • the media controller 12 may operate in a networked environment using a wired and/or wireless communication network interface 224 .
  • the network interface 224 can facilitate wired and/or wireless communications to the network 26 ( FIG. 1 ).
  • the media controller 12 may be operable to communicate with any wireless devices or entities operatively disposed in wireless communication, for example, a printer, a scanner, a desktop and/or portable computer via wireless technologies, such as Wi-Fi and Bluetooth, for example.
  • Embodiments have been provided herein for purposes of illustration and explanation, but those skilled in the art will recognize that many additional and/or alternative embodiments are possible. For example, while a plurality of guide windows 136 in various formats, and depicting various information have been provided, it is apparent that embodiments may provide the same information in many different formats, and provide additional information based on the program records 92 .

Abstract

A merged program guide which includes program metadata from a plurality of different media controllers is provided. A first media controller receives program metadata that identifies a first plurality of programs. The first plurality of programs corresponds to a first content package provided by a content provider. A first program record identifying a first program of the first plurality of programs is generated. The first program record includes first program metadata associated with the first program. The first media controller receives second program metadata associated with a second program of a second plurality of programs which correspond to a second content package associated with the second media controller. The first program metadata and the second program metadata are stored in a program guide on the first media controller and the first media controller enables display of the program guide.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. Pat. No. 9,015,757, filed Mar. 25, 2010, entitled “Merged Program Guide.” which claims the benefit of provisional patent application Ser. No. 61/163,086, filed Mar. 25, 2009, the disclosures of which are hereby incorporated herein by reference in their entirety.
  • FIELD OF THE DISCLOSURE
  • The present disclosure relates to a program guide that identifies programs available for presentation to a viewer, and in particular to a merged program guide containing program information obtained from a plurality of media controllers.
  • BACKGROUND
  • Devices that provide programs for entertainment are increasingly popular. Referred to herein generally as media controllers, such devices can include set top boxes, digital video recorders, intelligent gaming consoles such as the Microsoft® Xbox®, Sony® PlayStation®, and Nintendo® GameCube®, media consoles such as the Apple® TV®, personal computers, and the like. Each of these media controllers may receive programming from one or more content providers, including cable content providers, satellite content providers, internet content providers, and the like, and provide the programming to a viewer upon request.
  • It is increasingly common for a single household to own several media controllers, and to receive content from multiple content providers. For example, a digital video recorder in a bedroom may receive content from a cable provider that offers television programs, music channels, video on demand content, and the like. A second digital video recorder in the living room may receive content from the same cable provider, as well as a satellite provider that offers different television programs, music channels and video on demand content. A Sony® Playstation® in the basement may receive content from the Internet, and have a variety of programs and music recorded on an attached storage device.
  • While the proliferation of media controllers increases a viewer's choices as to what, when and where content may be consumed, it is difficult, over time, for a viewer to remember exactly which media controllers in which rooms offer access to which content. Moreover, it is difficult to track which members of a household are consuming what content. Tracking such information may not only be interesting, but may be considered necessary to ensure that certain members of a household are not consuming inappropriate content, and that other members have access to all available content regardless of the room they are in.
  • What is needed is an intuitive and dynamic electronic program guide that contains information identifying the content that is available from all the media controllers in a household. It would also be beneficial if the electronic program guide could identify who is consuming what content at which location, both currently and historically. Such information would, among other advantages, greatly expand a viewer's options, and enable individuals to keep track of what other individuals have, or are, consuming.
  • SUMMARY
  • Embodiments of the present disclosure include a method for generating a program guide that includes program records containing program metadata identifying programs available at multiple media controllers coupled to a local area network. Each media controller can transmit program metadata identifying programs available via the respective media controller onto the network. Each media controller can receive the program metadata of the other media controllers and store the program metadata in a merged program guide. Among other advantages, the merged program guide enables the display of information relating to which programs are available at each of the media controllers at a locale, such as a residence.
  • A first media controller may receive a first content package from a first content provider, and provide program metadata identifying the programs available in the first content package to a second media controller. The second media controller may receive a second content package, and provide program metadata identifying the programs available in the second content package to the first media controller. At least one of the media controllers generates a merged program guide containing program records which includes program metadata identifying programs available in the first content package and the second content package.
  • The first media controller may compare second program metadata received from the second media controller to first program metadata identifying a program available via a first content package at the first media controller. The first media controller may determine that the second program metadata identifies the same program identified by the first program metadata. The media controller stores the second program metadata in association with the first program metadata in the guide, enabling notification to a viewer that the same program is available via multiple media controllers.
  • In one embodiment, a first media controller may determine which particular viewers are in proximity to the first media controller during the presentation of a program. The identity of the particular viewers may be stored in a program record corresponding to the program. The program record may be transmitted onto a network and made available to the other media controllers coupled to the network. A second media controller may cause a display on a display device identifying the program currently being presented by the first media controller, and the identity of the viewers in proximity to the first media controller.
  • A first media controller may determine which program is currently being presented by a second media controller, and cause a display on a display device that identifies the program. The first media controller may request that the second media controller provide a program stream of the program currently being presented by the second media controller. In response to the request, the second media controller may generate and provide via the network a program stream of the program to the first media controller. The first media controller may cause the display to present a first program that is currently being presented by the first media controller in a first area of the display device, while concurrently causing the display of the program stream from the second media controller in a second area of the display device. The first media controller may also display an identification of those viewers who are in proximity of the first media controller, as well as those viewers who are in proximity to the second media controller.
  • In another embodiment, the media controller may, upon request by a viewer, use the program records in the program guide to cause historical information to be displayed on the display device. For example, the media controller may cause the display to present information identifying which programs were previously presented via which media controller, and the identification of the viewers of such programs.
  • Those skilled in the art will appreciate the scope of the present disclosure and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.
  • BRIEF DESCRIPTION OF THE DRAWING FIGURES
  • The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the disclosure, and together with the description serve to explain the principles of the disclosed embodiments.
  • FIG. 1 is an exemplary block diagram of a locale in which embodiments may be practiced;
  • FIG. 2 is a block diagram illustrating additional detail of a media controller according to one embodiment;
  • FIG. 3 is block diagram of an exemplary stored item record according to one embodiment;
  • FIG. 4 is a block diagram illustrating exemplary nodal data according to one embodiment;
  • FIG. 5 is a block diagram of an exemplary recorder according to one embodiment;
  • FIG. 6 is a block diagram of an exemplary merged guide according to one embodiment;
  • FIG. 7 is a flowchart illustrating an exemplary method for generating program records;
  • FIG. 8 is a block diagram illustrating exemplary update timestamp data according to one embodiment;
  • FIG. 9 is a flowchart illustrating an exemplary method for receiving and processing program metadata sent from one media controller to another media controller;
  • FIG. 10 is a flowchart illustrating an exemplary method for sending program metadata to another media controller;
  • FIG. 11 illustrates an exemplary merged guide at a first point in time;
  • FIG. 12 illustrates the exemplary merged guide illustrated in FIG. 11 at a second point in time;
  • FIG. 13 is a block diagram illustrating exemplary mechanisms that may be used by a media controller to determine the identity of a particular viewer;
  • FIG. 14 is a flowchart illustrating an exemplary method for integrating viewer information with a program record;
  • FIG. 15 illustrates an exemplary guide window suitable for displaying information obtained from the merged guide;
  • FIG. 16 illustrates another exemplary guide window suitable for displaying historical information obtained from the merged guide;
  • FIG. 17 illustrates another exemplary guide window suitable for displaying information obtained from the merged guide;
  • FIG. 18 is block diagram illustrating exemplary requests that one media controller may make of another media controller;
  • FIGS. 19-21 illustrate exemplary guide windows suitable for displaying information obtained from the merged guide; and
  • FIG. 22 illustrates an exemplary media controller according to one embodiment.
  • DETAILED DESCRIPTION
  • The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the embodiments and illustrate the best mode of practicing the embodiments. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the disclosure and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
  • Embodiments of the present disclosure include a method for generating a program guide that includes program records containing program metadata identifying programs available at multiple media controllers coupled to a local area network. Each media controller transmits program metadata identifying programs available via the respective media controller onto the network. Each media controller receives the program metadata of the other media controllers and stores the program metadata in a merged program guide. Among other advantages, the merged program guide enables the display of information relating to which programs are available at each of the media controllers in a residence.
  • FIG. 1 illustrates a locale 10, such as a residence, in which media controllers 12A and 12B (generally, media controller 12 or media controllers 12) are located. The media controllers 12 may comprise any device capable of providing, presenting, or otherwise causing the display of content upon demand, such, for example, a set top box, a digital video recorder, an intelligent gaming console, such as the Microsoft® Xbox®, Sony® PlayStation®, and Nintendo® GameCube®, a media console such as the Apple® TV®, and the like. The media controllers 12 provide content to one or more viewers 14 by causing a display on a display device 16. The display device 16 may comprise any display technology, such as a television, a computer monitor, a projector, and the like. By “causing” or “cause” to display it is meant that the media controllers 12 generate output streams that are provided to output connections on the media controllers 12 (not illustrated), which are directed to a respective display device 16, typically via a cable or other signal-carrying mechanism. While for purposes of illustration the media controllers 12 and display devices 16 are illustrated as devices which are separate from one another, the display device 16 may be integral with the media controller 12. For example, a single unit may include both a media controller 12, such as a digital video recorder, and a display device 16, such as a television. Where a media controller 12 and display device 16 are integral, the signal-carrying connection between the two may not be by a connection cable, but rather by an internal bus or other signal-carrying mechanism.
  • The media controller 12A receives content from content providers 18A and 18B (generally content providers 18, or content provider 18). The content providers 18 may comprise any provider of content, including service providers that provide content for a direct or indirect fee, cable operators, satellite operators, internet content providers, and the like. The content received by the media controllers 12 may be any content desirable for presentation, display or otherwise rendering to a viewer 14, such as broadcast television, movies, video on demand, music, and the like. Units of content will be referred to herein as programs, and a program can refer to any unit of content that is referred to individually by the content provider, such as a particular television show, a particular movie, a song, and the like.
  • Content is typically, but not necessarily, provided to the media controllers 12 in a content package that is defined by a particular subscription. The subscription between the media controller 12 and the content provider 18 defines which channels and features make up a particular content package, and therefore defines the programming that will be provided by the respective content provider 18 to the media controller 12 pursuant to the subscription. For example, the media controller 12A may receive a first content package that includes premium movies and high definition content from the content provider 18A pursuant to a first subscription. The media controller 12B may receive a second content package that includes only standard definition content and no premium movies from the content provider 18D pursuant to a different subscription, even though the content provider 18A may be the same content provider as the content provider 18D. The same program may therefore be available to the same or different media controllers 12. Moreover, different versions of the same program may be available to the same or different media controllers 12. For example, the media controller 12A may have access to a high-definition version of a particular episode of Survivor, while the media controller 12B has access only to a standard-definition version of Survivor based on the respective subscriptions.
  • The content providers 18 typically provide a guide to the media controllers 12 that identifies programs available via the respective content provider 18. Such guides are depicted in FIG. 1 in the form of respective local electronic programming guides 20A, 20B (generally, local guides 20 or local guide 20). While for purposes of illustration each media controller 12 is shown as having only a single local guide 20, it will be understood that each media controller 12 may have multiple local guides 20, since each content provider 18 may provide its own respective local guide 20 to the media controller 12.
  • Local guides 20 typically comprise program metadata identifying attributes and characteristics of particular programs. The program metadata may be provided to the media controller 12 continually on a particular channel, or upon request by the media controller 12, or at certain predetermined times. The program metadata can include any data that may be useful or desirable to the viewer 14 (typically as determined by the respective content provider 18). For example, program metadata may include a title, a description, identification of well-known actors, a channel on which the program will be provided, a genre, an MPAA rating, a duration, a version, a time and date the program will be provided, and the like. Typically, a viewer 14 accesses a local guide 20 via an input device (not illustrated) such as a remote control, wherein, upon receipt of a request via the remote control, the media controller 12 will cause a display of information from the local guide 20 on the display device 16.
  • The media controllers 12A, 12B may also contain one or more respective recorded programs 22A, 22B (generally, recorded programs 22 or recorded program 22). The recorded programs 22 may have been previously selected by the viewer 14 for time-shifting purposes, for example, to enable the viewer 14 to view a program at a different time from when the program was originally provided by a content provider 18. Different programs may be recorded at different media controllers 12, and thus, for example, the recorded programs 22A may differ from the recorded programs 22B. The media controllers 12 may also be communicatively coupled to local entertainment libraries 24 that contain a variety of programs, such as movies, songs, videos and the like that may have been downloaded, ripped, or otherwise obtained by the viewer 14.
  • Each of the media controllers 12A, 12B are communicatively coupled to one another via a local area network 26. The local area network 26 may comprise any suitable communication mechanism that enables the media controllers 12A, 12B to communicate with one another, including, for example, an Ethernet network, Token Ring network, and the like. The media controllers 12 access the network 26 via communication links 28, which may comprise any suitable technology for accessing the network 26, such as, for example, WiFi, an Ethernet cable, and the like. The network 26 may use any suitable message transport protocol to enable message communications between the media controllers 12A, 12B, such as, for example, TCP/IP.
  • According to one embodiment, each of the media controllers 12A, 12B also includes a respective merged guide 30A, 30B (generally, merged guides 30 or merged guide 30). While the generation and contents of the merged guide 30 will be discussed later in detail, generally, each merged guide 30 contains program records identifying programs available from a variety of different sources, including programs that are available at other media controllers 12. For example, the merged guide 30A may contain program records identifying programs available from each of the content providers 18A-18E, programs available in the entertainment libraries 24A, 24B, and recorded programs 22A and 22B. Similarly, the merged guide 30B associated with the media controller 12B also preferably contains program records identifying programs available from each of the content providers 18A-18E, programs available in the entertainment libraries 24A, 24B, and recorded programs 22A and 22B. As will be discussed in greater detail herein, the media controller 12A may cause a display on the display device 16 which presents information contained in the merged guide 30A. Thus, a viewer 14 may use any media controller 12 that is coupled to the network 26 to determine the entire collection of content that may be consumed by the viewer 14.
  • The media controllers 12 may discover one another on the network 26 using any suitable device discovery mechanism or techniques. Device discovery mechanisms are known to those skilled in the art and will not be described in detail herein. For example, the media controller 12A may use the Bonjour® service discovery protocol to discover the media controller 12B, but the embodiments are not limited to any particular device discovery mechanism.
  • FIG. 2 is a block diagram illustrating additional details of a media controller 12 according to one embodiment. The media controller 12 preferably includes nodal data 32, which includes information that may be unique to the respective media controller 12, such as, for example, a name of the media controller 12, a serial number associated with the media controller 12, log files generated by the media controller 12, and the like. Exemplary nodal data 32 will be discussed in greater detail with reference to FIG. 3. The media controller 12 includes a tuner 34 which is used to select content provided by a content provider 18. For example, the content provider 18 may concurrently provide a number of different programs to the media controller 12, each program being delivered on a particular frequency. The tuner 34, for example in response to a channel selection from a viewer 14, tunes to a particular frequency and captures the program data being provided at the particular frequency. The tuner 34 then typically causes the program to be displayed on a display device 16, or may record the program, as discussed in greater detail herein. While the tuner 34 has been discussed herein in terms of tuning to a particular frequency, it will be apparent that programs may be differentiated from one another by mechanisms other than a frequency, and the tuner 34 therefore is not limited to a frequency tuner, but may comprise any suitable tuner capable of selecting a desired program from a plurality of programs.
  • The media controller 12 preferably includes a recorder 36 for recording a program. The recorder 36 preferably receives input from the tuner 34, encodes the input into a desired format, if necessary, and stores the program data in a storage 38. The storage 38 may comprise any suitable storage technology, such as a hard drive, flash drive, and the like. The storage 38 is preferably a persistent storage that survives the powering down of the media controller 12, and may contain data from a variety of sources, including, for example, the local guide 20, the merged guide 30, and the like.
  • The media controller 12 may also include a retransmitter 40 which enables the retransmission of a program received by the media controller 12 onto the network 26. For example, the retransmitter 40 may segment the program data received by the media controller 12 into packets and transmit the packets to another media controller 12 via the network 26. The retransmitter 40 may encode the program differently from the way the program was encoded when initially received by the tuner 34. For example, in one embodiment, a first media controller 12 may request from a second media controller 12 a program stream of a program currently being presented to viewers 14 by the second media controller 12. The request may identify that a particular quality, or resolution, of the program stream is desired. For example, the first media controller 12 may intend to display the program stream in a relatively small area of a display device 16 in conjunction with other information, and thus not require a high resolution program stream. The second media controller 12 may then encode the program into a sufficiently lower resolution version of the program prior to transmitting the program stream onto the network 26 to minimize network usage.
  • The media controller 12 may also include a web server 42 for use in transferring program metadata between media controllers 12. For example, the web server 42 may respond to requests for program metadata from other media controllers 12. In one embodiment the program metadata may be formatted and transferred in an XML format. The media controller 12 may also include update timestamp data 44 that identifies the times that other media controllers 12 last provided program metadata to the media controller 12. The update timestamp data 44 may be used by the media controller 12 to quickly determine which program metadata received by another media controller 12 constitutes new program metadata. The receipt of program metadata by a media controller 12 and the use of the update timestamp data 44 will be described in greater detail herein.
  • FIG. 3 is block diagram of a stored item record 50-1 that contains data associated with items stored in storage 38, or elsewhere. The storage 38 may contain a plurality of stored item records 50-1-50-N. The stored item record 50-1 contains information identifying, for example, a recorded program 22, or a program in the entertainment library 24. The stored item record 50-1 may include a globally unique identifier (GUID) field 52 that contains a GUID which uniquely identifies the stored item record. The generation of a GUID is known to those skilled in the art, and will not be discussed in detail herein. The stored item record 50-1 also includes a location field 54 identifying a location of the corresponding program. The location field 54 may indicate the program resides in the storage 38, the entertainment library 24, or elsewhere. The stored item record 50-1 preferably includes a metadata GUID field 56 that contains a metadata GUID which uniquely identifies a metadata record containing metadata pertaining to the corresponding program. The metadata record may be in the storage 38, on a local server coupled to the network 26, or on a remote server accessible by the media controller 12 over a wide area network coupled to the network 26.
  • FIG. 4 is a block diagram illustrating exemplary nodal data 32 according to one embodiment. The nodal data 32 can include a name field 58 that contains a name which identifies the respective media controller 12. For example, the name field 58 of the media controller 12A may be “TIVO DVR”, and the name field 58 of the media controller 12B may be “TimeWarner SetTop.” Alternately, the name field 58 may contain a link or reference to a graphical image that depicts a particular type of media controller 12. The nodal data 32 can include a description field 60 that provides a short textual description of the capabilities of the respective media controller 12. A capabilities field 62 may identify operations performable by the respective media controller 12, and power consumption characteristics. A serial number field 64 may contain a unique manufacturer serial number of the media controller 12. A manufacturer field 66 may identify the manufacturer of the media controller 12. A model field 68 may identify a particular model of the media controller 12. Logs field 70 may comprise data generated during the operation of the media controller 12, such as, for example, faults or errors that occur during the operation of the media controller 12, and/or input selections received from viewers 14, which programs were watched at which times, and the like.
  • A service field 72 may contain service status information regarding the media controller 12 such as service intervals and/or wear counts. The wear count may indicate how many times particular “wear items” have been used. For example, a media controller 12 containing a hard drive may provide a wear count on the hard drive indicating how many times the hard drive has been written to. This information may in turn be used to predict how much useful life is left on the drive. A state field 74 may contain a status of the media controller 12, such as, for example “Booting”, “On”, “Recording”, “Sleep”, “Updating”, and the like. A location field 76 may identify a location of the media controller 12 within the locale 10. For example, the location field 76 of the media controller 12A may contain “Den”, and the location field 76 of the media controller 12B may contain “Living Room.” The nodal data 32 may also include a preference settings field 78 identifying preferences of one or more viewers 14. Any desired preference data may be stored in the preference settings field 78, such as, for example, genre preferences, actor preferences, time preferences, series preferences, and the like. Preference data may be used, for example, by the media controller 12 to provide program recommendations to a viewer 14.
  • FIG. 5 is a block diagram of the recorder 36 according to one embodiment. The recorder 36 receives a source 80 from the tuner 34. The recorder 36 uses an encoder 82 to encode the source 80 in a desired format, such as the MPEG-2 format. The encoded program can be stored in the storage 38. The recorder 36 may include a buffer 84 for use in temporarily storing segments of the source 80 while it is being encoded.
  • FIG. 6 is an exemplary block diagram of a merged guide 30 according to one embodiment. The format of the merged guide 30 depicted in FIG. 6 is but one exemplary layout, and the embodiments are not limited thereto. The merged guide 30 may include a plurality of channel records 86, such as channel records 86-1-86-N. The phrase “record” as used herein means a structure which contains data and may be stored and accessed as necessary, and does not imply a particular format or internal layout. The channel record 86-1 may include an information field 88 that contains text identifying source attributes of the channel, such as the particular service provider, or other source. For example, if the channel 86-1 is provided by a service provider via cable, the information field 88 may contain the name of the cable company. Alternately, the channel information field 88 may contain the ultimate source of the content associated with the channel, such as NBC, ABC, and the like. Where the content associated with the channel is provided by a local source, such as the entertainment library 24, the channel information field 88 may identify the entertainment library 24 by a name, such as “John's Video Library.” The channel 86-1 may also include a rating field 90 that generally describes the content associated with the channel 86-1. For example, if the channel 86-1 is a mature adult channel, the rating field 90 may identify it as such.
  • Each channel 86 may include one or more program records 92. For example, the channel 86-1 contains a plurality of program records 92-1-92-N. Each program record 92 contains metadata associated with a particular program. Thus, each program record 92 corresponds to a particular program. The program record 92 may contain a GUID field 94 that contains a GUID which uniquely identifies the program. A title field 96 may contain a textual title of the program. A start field 98 may identify a present, past or future start time of the program. A duration field 100 identifies a length of the program. A rating field 102 may contain an MPAA rating of the program. A quality field 104 may identify the encoding quality of the program. An alt location field 106 may contain an alternate location of the program other than the location identified in the source field 116, described below. For example, the location identified in the source field 116 may be the source of a highest quality version of the program, while the alt location field 106 may provide a lower quality version of the program. In one embodiment, a uniform resource identifier (URI) represents the location indicated by the source field 116 and alt location field 106. The URI may point to a local media item, or may reference a program available from another media controller 12 over the network.
  • A requestors field 108 may contain information identifying one or more viewers 14 that have requested that the program be recorded. A viewers list 110 may identify one or more viewers 14 that were identified as being in proximity to the media controller 12 which presented the program. A metadata GUID field 112 may contain a metadata GUID which uniquely identifies a metadata record containing metadata describing additional attributes of the program. The metadata record may exist, for example, on a local or a remote server accessible by the media controller 12. An originator field 115 may identify the particular media controller 12 which originated the respective program record 92. A record update timestamp (TS) field 114 may contain a timestamp identifying the time of the last update to the record 92-1. A source field 116 may identify a location of the program, and may comprise, for example, a URI.
  • The program record 92 may also include an operation field 117 for identifying a particular operation performed on the corresponding program by the media controller identified in the originator field 115. For example, the operation field 117 may contain a value of 0 to indicate the no operation was performed on the program, a value of 1 to indicate the program was recorded, a value of 2 to indicate the program was presented to a viewer 14, and a value of 3 to indicate that the program was both recorded and presented to a viewer 14.
  • Preferably, each media controller 12 coupled to the network 26 generates program records 92 for each program that is available at the respective media controller 12. For example, referring again to FIG. 1, local guide 20A may include guides for programs available from the content providers 18A and 18B. The media controller 12A may read the local guide 20A and generate a program record 92 for each program identified in the local guide 20A. The media controller 12A may also generate program records 92 for each recorded program 22A, and each item available for presentation from the entertainment library 24A. If program metadata for such programs is unavailable, the media controller 12A may access well-known sources of program metadata from, for example, an Internet provider of such data, and use the program metadata to populate the fields of the program record 92.
  • FIG. 7 is a flowchart illustrating an exemplary method for generating program records 92. Assume that the media controller 12A is traversing a local guide 20A, and determines that the local guide 20A identifies a program that is not identified in the merged guide 30A. For example, the content provider 18A may have recently provided the media controller 12A new program guide data that identifies programs that will be available for presentation one week from the present date. The media controller 12A generates a program record 92 (step 1000). The media controller 12A then generates a GUID that uniquely identifies this program (step 1002). The media controller 12A then populates the fields described above with regard to FIG. 6 with the appropriate data (step 1004). The media controller may insert the current time in the record update timestamp field 114. The media controller 12A then stores the program record 92 in the merged guide 30 (step 1006).
  • Each media controller 12 preferably provides program metadata from the program records 92 which are available from the respective media controller 12 to the other media controllers 12. For example, referring again to FIG. 1, the media controller 12A provides the media controller 12B program metadata from each of the program records 92 stored in the merged guide 30A. The media controller 12B similarly provides the media controller 12A program metadata from each of the program records 92 in the merged guide 30B. In this manner, each media controller 12 contains program records 92 identifying programs available at not only the respective media controller 12, but which are available at all media controllers 12 coupled to the network 26.
  • The program metadata may be provided in the same format as the program records 92, or in a different format. The program metadata may be “pushed” as desired by a media controller 12 to the other media controllers, or may be “pulled” from a media controller 12 upon request. In one embodiment, the program metadata may be provided in an XML file, which may have a format similar to the program record 92. In one embodiment, a media controller 12 may broadcast a signal on the network 26 to indicate that new program metadata is available. Referring again to FIG. 1, assume that the media controller 12A has generated one or more new program records 92. The media controller 12A may broadcast a signal on the network 26 indicating that the media controller 12A has new program metadata for distribution. The media controller 12B, upon receipt of the signal, may send a message to the media controller 12A requesting the program metadata. According to one embodiment, each media controller 12 may maintain a last update timestamp for each other media controller 12. Such last update timestamps may be maintained in the update timestamp data 44 (FIG. 2) associated with the respective media controller 12.
  • FIG. 8 is a block diagram illustrating exemplary update timestamp data 44 according to one embodiment. The update timestamp data 44 may include one or more last update timestamps 120-1-120-N (generally, last update timestamps 120), each of which may correspond to a respective media controller 12. The last update timestamps 120 identify the time of the last update of program metadata from the corresponding media controller 12. For purposes of illustration with regard to FIG. 8, a media controller 12 that has program metadata to provide to another media controller 12 will be referred to as a publishing media controller 12, and the media controller 12 receiving the program metadata will be referred to as a receiving media controller 12. The receiving media controller 12 may use a last update timestamp 120 to indicate to the publishing media controller 12 which program records 92 are needed. For example, in the current example, assume that the last update timestamp 120-1 corresponds to the publishing media controller 12. The receiving media controller 12 may provide the last update timestamp 120-1 to the publishing media controller 12 to indicate to the publishing media controller 12 that the receiving media controller 12 only requires program metadata from those program records 92 that contain a record update timestamp more recent than the last update timestamp 120-1. The publishing media controller 12 may thus use the last update timestamp 120-1 to generate an XML file containing only program metadata for those program records 92 which have a record update timestamp that is more recent than the last update timestamp 120-1. The receiving media controller 12 receives, and then processes, the program metadata and updates the last update timestamp 120-1 with the latest record update timestamp associated with any program record 92 provided by the publishing media controller 12.
  • FIG. 9 is a flowchart illustrating an exemplary method for receiving and processing program metadata sent from one media controller 12 to another media controller 12. FIG. 9 will be discussed in conjunction with FIGS. 1 and 6. Again, for purposes of illustration with regard to FIG. 9, the media controller 12A will be assumed to have program metadata to distribute to the media controller 12B, and will be referred to as the publishing media controller 12A, and the media controller 12B will be referred to as the receiving media controller 12B. The publishing media controller 12A broadcasts a notification that the publishing media controller 12A has new program metadata available for distribution. The receiving media controller 12B receives the notification (step 2000). The receiving media controller 12B obtains the last update timestamp 120-1 which corresponds to the publishing media controller 12A (step 2002). The receiving media controller 12B generates a request containing the last update timestamp 120-1 and sends the request to the publishing media controller 12A (steps 2004, 2006). The publishing media controller 12A uses the last update timestamp 120-1 to select program metadata from each program record 92 having a record update timestamp that is later than the last update timestamp 120-1. The publishing media controller 12A formats the program metadata and sends it to the receiving media controller 12B. The media receiving controller 12B receives the program metadata (step 2008). The receiving media controller 12B may, for each program identified by the program metadata, attempt to match the program metadata to an existing program record 92 in the merged guide 30B (step 2010). What constitutes a “match” may be system dependent. Generally, the receiving media controller 12B may determine if various data in the provided program metadata matches corresponding data in any existing program record 92. For example, the receiving media controller 12B may determine that the program identified by the metadata matches a program identified by a program record 92 if the data from the title fields 96 match one another and the data from the start fields 98 match one another.
  • If the receiving media controller 12B determines that the provided program metadata matches a program identified by a program record 92 (step 2012), then the receiving media controller 12B may generate a child program record 92 from the supplied program metadata, such that the matched program record 92 in the merged guide 30A is stored in association with the child program record 92 (step 2014). Among other advantages, establishing such a parent-child relationship between program records 92 enables the receiving media controller 12B to cause the display of information to a viewer 14 that the same program is available at multiple media controllers 12. If the receiving media controller 12B determines that the program metadata does not match any existing program identified in a program record 92 (step 2012), the receiving media controller 12B may generate a program record 92 as a parent program record 92 that is not a child program record 92 to any other program record 92 (step 2016). While for purposes of illustration only two program records 92 have been shown as stored in association with one another, it is apparent any number of program records 92 that identify the same program may be stored in association with one another.
  • FIG. 10 is a flowchart illustrating an exemplary method for sending program metadata to another media controller. Assume again that the publishing media controller 12A has new program metadata to distribute. The publishing media controller 12A broadcasts a notification signal onto the network 26 indicating that new program metadata is available (step 3000). The publishing media controller 12A receives a request for data from the receiving media controller 12B (step 3002). The publishing media controller 12A obtains the last update timestamp 120-1 from the request for data (step 3004). The publishing media controller 12A obtains program metadata from those program records 92 having a record update timestamp greater than the last update timestamp 120-1 (step 3006).
  • FIGS. 11 and 12 are block diagrams illustrating exemplary relationships between several program records 92. FIG. 11 illustrates that at a first point in time, the merged guide 30A contains a plurality of program records 92A-92C, each of which may be considered a parent program record 92. Similarly, the merged guide 30B contains a plurality of program records 92D-92F, each of which may also be considered a parent program record 92. FIG. 12 illustrates an exemplary relationship between program records 92 after the media controller 12A has communicated the program records 92A-92C to the media controller 12B, and has received from the media controller 12B the program records 92D-92F. As illustrated, the media controller 12A determined that the program record 92D identified the same program as identified by the program record 92A, and consequently made the program record 92D a child record to the program record 92A. The program record 92E was also determined to identify the same program as identified by the program record 92B, and was therefore similarly made a child record to the program record 92B. Because the program record 92F did not match any other program record 92 in the merged guide 30A, the program record 92F is made a parent program record 92F.
  • A similar analysis was conducted by the media controller 30B, and thus the program record 92A was made a child record of the program record 92D, and the program record 92B was made a child record of the program record 92E.
  • According to one embodiment, the media controller 12 may determine the identity of the viewers 14 that are in proximity to the media controller 12. This information may be stored in the viewers list 110 of the program records 92 for the corresponding programs that are presented by the media controller 12. FIG. 13 is a block diagram illustrating exemplary mechanisms that may be used by a media controller 12 to determine the identity of a particular viewer. The media controller 12A in a den 118 is communicatively coupled to an input device 128. As the viewers 14A, 14B enter the den 118, each viewer 14A, 14B uses the input device 128 to indicate that the respective viewer 14A, 14B is in the den 118 and watching programming presented by the media controller 12A. Prior to exiting the den 118, each viewer 14A, 14B may use the input device 128 to indicate they are departing the den 118. The media controller 12A may maintain the identity of the viewers 14 who are in the den 118, and for each program provided during the presence of a viewer 14, update the viewers list 110 in the program record 92 corresponding to the presented program. The input device 128 may comprise any suitable device and interface, such as a keyboard, or a mouse and a computer having a user interface that enables a viewer 14 to simply click on a designated portion of a display to indicate the presence or departure of the viewer 14 from the den 118. The computer may be wirelessly coupled to the media controller 12A, and communicate the status of incoming and outgoing viewers 14 to the media controller 12 as appropriate.
  • The media controller 12B in the living room 122 includes a facial recognition processor 130 that is able to identify through facial processing technology the viewers 14C-14E. Facial recognition technology is known to those skilled in the art, and will not be described in detail herein. The facial recognition processor 130 communicates the identity of the viewers 14C-14E to the media controller 12B. While the facial recognition processor 130 is illustrated as being integral with the media controller 12B, in an alternate embodiment, the facial recognition processor 130 may be separate from but coupled to media controller 12B via a wired or wireless communications channel, for example.
  • The media controller 12C in a bedroom 124 includes a radio frequency identification (RFID) processor 134. The RFID processor 134 may receive a signal from a device worn, or carried, by the viewer 14F. For example, a cell phone of the viewer 14F may emit a signal that can be received by the RFID processor 134. Upon receipt of such signal, the RFID processor 134 can communicate the identity of the viewer 14F to the media controller 12C.
  • The media controller 12D in a basement 126 is coupled to a wireless Bluetooth interface which enables the media controller 12D to communicate with Bluetooth devices, such as a cell phone, that contain the appropriate software to interface with the media controller 12D. Such software may be programmed to emit a signal that can be detected by the media controller 12D via the wireless Bluetooth interface 132. The signal may contain an identifier identifying a particular viewer 14G, 14H. The media controller 12D may periodically poll the cell phone to determine if the viewer 14G, 14H is still in proximity of the media controller 12D. If the media controller 12D does not receive a response to the poll, the media controller 12D may determine that the viewers 14G, 14H are no longer in proximity of the media controller 12D.
  • FIG. 14 is a flowchart illustrating an exemplary method for storing viewer information into a program record 92. The media controller 12 determines that a new viewer 14 is in proximity to the media controller 12, and identifies the new viewer 14 (step 4000). The media controller 12 may use one of the mechanisms described with regard to FIG. 13, or any other suitable mechanism. The media controller 12 obtains the program record 92 corresponding to the program that is currently being provided for display by the media controller 12 (step 4002). The media controller 12 updates the viewer list 110 of the program record 92 to include an identification of the new viewer 14 (4004). Preferably, the media controller 12 also updates the record update timestamp of the program record 92. The media controller 12 stores the program record 92 in the merged guide (step 4006). Note that the media controller 12 may also broadcast a notification signal to the network 26 to notify other media controllers 12 that the media controller 12 has new program metadata to distribute. In this manner, each media controller 12 coupled to the network 26 may be, substantially in real-time, provided data that identify who, in which room, is watching which programs.
  • According to one embodiment, the merged guide 30 may be used by the media controller 12 to cause a display of guide information that may be desired by a viewer 14. FIG. 15 illustrates an exemplary guide window 136 suitable for displaying guide information obtained from the merged guide 30. Assume that the media controller 12 causing the display of the guide window 136 is located in the living room. The guide window 136 includes a channel column 138 identifying a plurality of channels. The channel information depicted in the channel column 138 is obtained from the channel field 86 (FIG. 6). The guide window 136 may also include program information area 140 identifying a plurality of programs that have, are, or may be available for presentation by the media controller 12. The program information area 140 is obtained from the program records 92. Program information area 140A illustrates the presentation of information obtained by a parent program record 92 and a child program record 92 identifying the same program, in this example, the show “Survivor.” Program information area 140A identifies for the viewer 14 that Survivor is available in the living room, and is also available in the den. Program information area 140A also indicates that the version of Survivor available in the living room is a standard definition version, while the version available in the den is a high definition version. Program information area 140B similarly informs the viewer 14 that the show “Castle” is available in standard definition in the bedroom and the living room, and in high definition in the den.
  • FIG. 16 illustrates another exemplary guide window 136 suitable for displaying historical information obtained from the merged guide 30. Assume that the present time of the display is 7:10. Program information area 140A indicates that the viewers 14, Matt and Ben, viewed the news on the ABC channel between 6:00-7:00. The program information area 140B indicates that viewers Jack and Jill viewed the CW news between 6:00 and 7:00. The program information area 140A is obtained from the viewers list 110 of the program record 92 corresponding to the news program carried on ABC between 6:00-7:00. Similarly, the program information area 140B is obtained from the viewers list 110 of the program record 92 corresponding to the news program carried on CW between 6:00-7:00. In this manner, a viewer 14 may determine who watched which programs.
  • FIG. 17 illustrates another exemplary guide window 136 suitable for displaying information obtained from the merged guide 30. The program information area 140A indicates that the show Survivor is available in the living room, and has also been previously recorded by the media controller 12 in the den. The program information area 140B indicates that the show Castle is available in the living room, and has also been previously recorded by the media controller 12 in the bedroom.
  • According to another embodiment, the one media controller 12 may send requests to another media controller 12 for information, or to direct the other media controller 12 to provide a desired function. FIG. 18 is block diagram illustrating certain requests that one media controller 12 may make of another media controller 12 according to one embodiment. For example, the media controller 12A may send an IDENTIFY_CURRENT_PROGRAM request 142 to the media controller 12B. An IDENTIFY_CURRENT_PROGRAM request 142 requests that the media controller 12B identify the specific program that is currently being provided by the media controller 12B. In response, the media controller 12B may provide the media controller 12A the program record 92 corresponding to the program that the media controller 12B is currently presenting.
  • The media controller 12A may send the media controller 12B a RECORDING_STATUS_REQUEST 144, which requests information regarding the recording status of the program that is currently being presented by the media controller 12B. In response, the media controller 12B provides a message indicating whether the current program being provided by the media controller 12B is being recorded. The media controller 12A may send the media controller 12B a RECORD_PROGRAM request 146, which requests that the media controller 12B record a particular program. The RECORD_PROGRAM request 146 may include the program record 92 corresponding to the program that is to be recorded. In response, the media controller 12B may determine that no tuner is available to record the program, or may begin recording the desired program, or may schedule the desired program for recording if the program has not begun yet. The media controller 12B may provide the media controller 12A a message indicating success or failure of the request. The media controller 12A may send the media controller 12B a PROVIDE_CURRENT_PROGRAM request 148, which requests that the media controller 12B provide a program stream of the program that is currently being provided by the media controller 12B. The media controller 12B, using the retransmitter 40, may then provide a program stream of the program which is currently being provided by the media controller 12B.
  • FIG. 19 illustrates another exemplary guide window 136 suitable for displaying information obtained from the merged guide 30. Assume that the media controller 12 causing the display of the guide window 136 is located in the living room. The guide window 136 generally contains two portions, a media controller information area 150 and a program-by-viewer area 152. The media controller information area 150 provides current status information about selected media controllers 12 coupled to the network 26. The selected media controllers 12 may be each media controller 12 coupled to the network 26, or a subset thereof. For example, if a media controller 12 is not currently providing any programs to a viewer 14, that media controller 12 may not be selected, and therefore will not have a corresponding media controller information area 150 in the guide window 136.
  • Assume for purposes of illustration that the media controller 12A is located in the den, the media controller 12B in the living room and the media controller 12C in the bedroom. The guide window 136 includes media controller information areas 154A-154C, each of which corresponds to a respective media controller 12A-12C. Thus, the media controller information area 154A corresponds to the media controller 12A. The media controller information area 154A includes a media controller location identifier 156A, which for the media controller 12A indicates the media controller 12A is in the den. The media controller information area 154A also includes a program identification 158A which identifies the program currently being provided by the media controller 12A. In this example, the program being provided by the media controller 12A is titled “(1997) The Office: Episode #9.” The media controller information area 154A may include a device type identifier 160A which identifies the type of device of the media controller 12A. The device type identifier 160A may be a textual description, such as “set top box”, or “computer”, or “XBOX”, or may comprise an image or icon which graphically depicts the device type. The device type identifier 160A may be derived in whole or in part from the name field 58. For example, if the media controller 12A is a set top box, the device type identifier 160A may comprise a set top box image or icon. Alternately, if the media controller 12A is a computer, the device type identifier 160A may comprise a computer image or icon.
  • The media controller information area 154A may also include requestor identifier 162A which identifies the viewer 14 that is requesting the display of the guide window 136. The requestor identifier 162 may be a textual identifier, such as the name of the viewer 14, or may by an icon or image that the viewer 14 designated as corresponding to the viewer 14. The media controller information area 154A may provide a recording status indicator 164 a, indicating whether or not the program currently being provided by the media controller 12A is being recorded. The media controller information area 154A preferably includes viewer identifiers 166A-166C corresponding to the viewers 14 that have been determined to be in proximity to the media controller 12A. The viewer identifiers 166A-166C may comprise textual identifiers, such as the names of the corresponding viewers 14, or may comprise unique icons or images that each of the viewers 14 has previously identified to the media controller 12A as representing such viewer 14, or may be a combination of both a name and an icon or image. The media controller information area 154A may also include program display area 168A wherein a real-time display of the program currently being provided by the media controller 12A is displayed.
  • The media controller information area 154B contains similar information corresponding to the media controller 12B. A media controller location identifier 156B identifies the location of the media controller 12B as the living room. A program identification 158B identifies the program currently being provided by the media controller 12B as “(2001) Star Wars: The Clone Army.” A device type identifier 160B indicates a type of device of the media controller 12B. A recording status indicator 164B indicates that the media controller 12B is not recording the program that is currently being provided. Viewer identifiers 166D-166F identify three viewers 14 as watching the program currently being provided by the media controller 12B. A program display area 168B provides a display of the program currently being provided by the media controller 12B. The information used to provide the program display area 168B may be generated by the media controller 12B and provided to the media controller 12A in response to a request from the media controller 12A, as described previously. For example, upon receiving a request from a viewer 14 to display the guide window 136, the media controller 12A may send each selected media controller 12 a provide current program request 150 (FIG. 18). As the media controller 12A receives the program streams, the media controller 12A renders each program stream in the appropriate program display area 168.
  • The media controller information area 154C contains similar information for the media controller 12C. A media controller location identifier 156C identifies the location of the media controller 12C as the bedroom. A program identification 158C identifies the program currently being provided by the media controller 12C as “(1998) Chris Rock: Stand Up.” A device type identifier 160C indicates a type of device of the media controller 12C. A recording status indicator 164C indicates that the media controller 12C is recording the program that is currently being provided. Viewer identifiers 166G-166I identify three viewers 14 as watching the program currently being provided by the media controller 12C. A program display area 168C provides a display of the program currently being provided by the media controller 12C.
  • Note that each media controller information area 154 is depicted in FIG. 19 as having unique cross-hatching. Alternatively, each media controller information area 154 may preferably depict a unique status background imagery, shading, coloring, or the like, to visually distinguish each such media controller information area 154 from one another. As will be discussed in greater detail here with regard to the program-by-viewer area 152, such distinguishing background visually associates viewing activity with a particular location.
  • The program-by-viewer area 152 includes a viewer column 170 which identifies one or more viewers 14. For purposes of illustration, information for only three viewers 14 are illustrated, but it is apparent that the program-by-viewer area 152 may provide information for any number of viewers 14. Each viewer 14 may have a viewer identifier 166, as discussed previously, which may comprise a textual identifier such as a name, an image, or both. The program-by-viewer area 152 preferably contains a row of information for each viewer 14. The program-by-viewer area 152 may provide historical information 174, current information 176 and future recommendations 178. Assume for the purposes of illustration that the guide window is displayed at 7:00 PM. A program information area 172A illustrates that Jan viewed the ABC News program between 6:00 and 6:30. As depicted by cross-hatch, the program information area 172A preferably has a background imagery, shading, coloring, or the like that matches one of the media controller information areas 154. For example, the information area 172A indicates by cross-hatching that Jan viewed the ABC News program in the living room, because the cross-hatching of the information area 172A matches the cross-hatching of the media controller information area 154B. Similarly, information area 172B indicates that Cindy viewed the Sopranos program in the bedroom. Information area 172C indicates that Marsha viewed the NBC News program in the den. While information areas 172 identify a particular program, it should be apparent that additional, or different information could be provided. For example, information areas 172 may provide the channel information associated with the program in addition to, or in place of, the program identification information.
  • The program information area 172D in the current information 176 indicates that Jan is currently watching Star Wars: The Clone Army in the living room. The program information area 172E indicates that Cindy is currently watching Chris Rock: Stand Up in the bedroom. The program information area 172F indicates that Marsha is currently watching The Office: Episode #9 in the den.
  • The future recommendations 178 may provide program recommendations based on previous viewing habits, or based on preferences that have been provided by the respective viewer 14. Previous viewing information may be maintained in the merged guide 30 for a period of time, and after a predetermined period archived from the merged guide 30 and stored in a separate data structure. Information such as preferred shows, channels, genres, actors, times, days and the like may be gleaned for each viewer 14, and based on this information, the guide window 136 may provide recommendations on a viewer-by-viewer basis. For example, based on past viewing history, user preferences, or a combination of both, the information areas 172G-172I indicate that a recommendation for each of Jan, Cindy and Marsha is the program Survivor. The information areas 172G-172I further recommend that the program Survivor be viewed in the den. This may be based on historical information that Survivor is provided by the media controller 12A in the Den with a sufficient frequency to predict that Survivor will likely be provided in the future in the den. For example, it may be determined that Survivor was provided in the den at 8:00 PM for seven of the previous eight weeks. While for purposes of illustration the program information areas 172G-172I have recommended the same program for each of Jan, Cindy and Marsha, it is apparent that different programs, and different locations, may be provided for each such viewer 14.
  • FIG. 20 illustrates another exemplary guide window 136 suitable for displaying information obtained from the merged guide 30. Assume as before that the media controller 12 causing the display of the guide window 136 is located in the living room, and that the current time is 7:00, however, the information in the guide window 136 may not otherwise be consistent with the information provided in FIG. 19. The guide window 136 generally contains two portions, a media controller information area 150 and a view-by-channel area 180. The media controller information area 150 was described previously with regard to FIG. 19. The view-by-channel area 180 includes a channel column 182 in which one or more channels are identified. Note that devices that provide programs from local storage may be identified as a channel, such as the Playstation or Roku media controllers 12. While for purposes of illustration only several channels are depicted in the guide window 136, it will be apparent that any number of channels could be provided.
  • The view-by-channel area 180 can include a historical information 174 and a current information 176. The historical information 174 may include program information areas 172 that identify which programs were previously provided by a media controller 12. For example, program information area 172A indicates that ABC News was provided at 6:00, and by virtue of the cross-hatching, that ABC News was provided in the living room. The program information area 172B indicates that NBC News was provided at 6:00, and by virtue of the cross-hatching, that NBC News was provided in the den. The program information area 172C indicates that the program Sopranos was provided at 6:00, and by virtue of the cross-hatching, that the Sopranos was provided in the bedroom.
  • The program information area 172D indicates that the program The Office: Episode #9 on NBC is currently being provided in the den. The program information area 172E indicates that the program Chris Rock: Stand Up on HBO is currently being provided in the bedroom. The program information area 172F indicates that the program Star Wars: The Clone Army on BET is currently being provided in the living room.
  • FIG. 21 illustrates another exemplary guide window 136 suitable for displaying information obtained from the merged guide 30. Assume as before that the media controller 12 causing the display of the guide window 136 is located in the living room, and that the current time is 7:00, however, for purposes of illustration the information in the guide window 136 is not consistent with the information provided in FIGS. 19 and 20. The guide window 136 generally contains two portions, a media controller information area 150 and a view-by-room area 184. The media controller information area 150 was described previously with regard to FIG. 19, and will not be discussed in detail again. However, for purposes of illustration, a letter is used to identify each of a plurality of viewers 14, and is depicted in the corresponding viewer identifiers 166 illustrated herein. While such viewer identifiers 166 preferably contain names of the viewers 14, images or icons associated with the viewers 14, or a combination thereof, for purposes of ease of illustration viewers 14 will be identified by a single letter with regard to FIG. 21.
  • The view-by-room area 184 includes a location column 186 identifying a location of each media controller 12 for which information will be displayed. The view-by-room area 184 may provide historical information 174, current information 176 and future recommendations 178. The historical information 174 may include program information areas 172 identifying what channels, programs, or combination of channels and programs were provided in which locations. The program information areas 172 may also depict which viewers viewed which programs at which locations. For example, the program information area 172A indicates that viewers A, B, C, D, E, and F watched the ABC channel in the den between 6:00 and 7:00. The program information area 172B indicates that viewers G and H watched the BET channel in the living room between 6:00 and 7:00.
  • The current information 176 may include program information areas 172 identifying what channels, programs, or a combination of channels and programs are currently being provided in which locations. For example, the program information area 172C indicates that viewers A, B and C are currently watching the NBC channel in the den. The program information area 172D indicates that viewers D, E and F are currently watching the BET channel in the living room. The program information area 172E indicates that viewers G, H, and I are currently watching the HBO channel in the bedroom.
  • As discussed with regard to FIG. 19, the future recommendations 178 may provide program or channel recommendations based on previous viewing habits, preferences that have been provided by the respective viewer 14, or a combination of both. For example, the program information area 172F indicates a recommendation for viewers B and F to watch the HBO channel in the den at 8:00 PM.
  • FIG. 22 illustrates an exemplary media controller 12 according to one embodiment. The media controller 12 may, as discussed previously, comprise a set top box, a digital video recorder, an intelligent gaming console, such as the Microsoft® Xbox®, Sony® PlayStation®, and Nintendo® GameCube®, a media console such as the Apple® TV®, personal computers, and the like. In addition to components discussed previously herein, the exemplary media controller 12 may also include a central processing unit 200, a system memory 202, and a system bus 204. The system bus 204 provides an interface for system components including, but not limited to, the system memory 202 and the central processing unit 200. The central processing unit 200 can be any of various commercially available or proprietary processors. Dual microprocessors and other multi-processor architectures may also be employed as the central processing unit 200.
  • The media controller 12 may include one or more tuners 34 for selecting program content from a communications channel. The recorder 36 may receive a source input from the tuner 34 and store the content onto a storage device, such as the storage 38. The retransmitter 40 may provide a program of stream of program content over the network 26 to another media controller 12.
  • The system bus 204 can be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. The system memory 202 can include non-volatile memory 206 (e.g., read only memory (ROM), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), etc.) and/or volatile memory 208 (e.g., random access memory (RAM)). A basic input/output system (BIOS) 210 can be stored in the non-volatile memory 206, which can include the basic routines that help to transfer information between elements within the media controller 12. The volatile memory 208 can also include a high-speed RAM such as static RAM for caching data.
  • The media controller 12 may further include a storage 38, which may comprise, for example, an internal hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)) for storage. The media controller 12 may further include an optical disk drive 212 (e.g., for reading a compact disk or DVD 214). The drives and associated computer readable media provide non-volatile storage of data, data structures, computer-executable instructions, and so forth. For the media controller 12, the drives and media accommodate the storage of any data in a suitable digital format. Although the description of computer-readable media above refers to an HDD and optical media such as a CD-ROM or DVD, it should be appreciated by those skilled in the art that other types of media which are readable by a computer, such as Zip disks, magnetic cassettes, flash memory cards, cartridges, and the like, may also be used in the exemplary operating environment, and further, any such media may contain computer-executable instructions for performing novel methods of the disclosed architecture.
  • A number of program modules can be stored in the drives and volatile memory 208 including an operating system 216 and one or more program modules 218 which implement the functionality described herein. It is to be appreciated that the embodiments can be implemented with various commercially available operating systems or combinations of operating systems. All or a portion of the embodiments may be implemented as a computer program product, such as a computer usable medium having a computer-readable program code embodied therein. The computer-readable program code can include software instructions for implementing the functionality of embodiments described herein. The central processing unit 200 in conjunction with the program modules 218 in the volatile memory 208 may serve as a control system for the media controller 12 that is adapted to implement the functionality described herein.
  • A user can enter commands and information into the media controller 12 through one or more wired/wireless input devices, for example, a keyboard and a pointing device, such as a mouse (not illustrated). Other input devices (not illustrated) may include a microphone, an infrared (IR) remote control, a joystick, a game pad, a stylus pen, a touch screen, or the like. These and other input devices are often connected to the central processing unit 200 through an input device interface 220 that is coupled to the system bus 204 but can be connected by other interfaces such as a parallel port, an IEEE 1394 serial port, a game port, a universal serial bus (USB) port, an IR interface, etc.
  • The media controller 12 may drive a separate or integral display device 16, which may also be connected to the system bus 204 via an interface, such as a video output port 222. The media controller 12 may operate in a networked environment using a wired and/or wireless communication network interface 224. The network interface 224 can facilitate wired and/or wireless communications to the network 26 (FIG. 1).
  • The media controller 12 may be operable to communicate with any wireless devices or entities operatively disposed in wireless communication, for example, a printer, a scanner, a desktop and/or portable computer via wireless technologies, such as Wi-Fi and Bluetooth, for example.
  • Embodiments have been provided herein for purposes of illustration and explanation, but those skilled in the art will recognize that many additional and/or alternative embodiments are possible. For example, while a plurality of guide windows 136 in various formats, and depicting various information have been provided, it is apparent that embodiments may provide the same information in many different formats, and provide additional information based on the program records 92.
  • Those skilled in the art will recognize improvements and modifications to the embodiments. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.

Claims (25)

What is claimed is:
1. A method for generating a program guide, comprising:
receiving, by a first media controller coupled to a local area network (LAN), from a content provider, program metadata identifying a first plurality of programs from a first content package provided by the content provider;
generating, by the first media controller, a first program record identifying a first program of the first plurality of programs, the first program record comprising first program metadata associated with the first program;
receiving, by the first media controller from a second media controller, second program metadata identifying a second program of a second plurality of programs from a second content package associated with the second media controller; and
storing the first program metadata and the second program metadata in a program guide on the first media controller, wherein the first media controller enables display of the program guide.
2. The method of claim 1, further comprising:
transmitting the first program metadata onto a network to make the first program metadata available to a second media controller;
3. The method of claim 1, wherein the first media controller receives the first content package via a subscription associated with the first media controller, and wherein the first content package is different from the second content package.
4. The method of claim 3, wherein the second media controller receives the second content package via a subscription associated with the second media controller.
5. The method of claim 1, further comprising:
comparing the second program metadata to the first program metadata;
determining that the second program metadata identifies a same program as the first program; and
storing the second program metadata in a second program record in association with the first program record wherein the second program is identified as the same program as the first program.
6. The method of claim 5, further comprising:
receiving a request to present guide information;
obtaining the first program record and the second program record; and
causing a display on a display device that concurrently identifies the first program as being associated with the first media controller and the second program as being associated with the second media controller.
7. The method of claim 1, further comprising receiving, by the first media controller, third program metadata associated with a third program stored on the second media controller, and storing the third program metadata in a third program record in the program guide.
8. The method of claim 7, further comprising:
comparing the third program metadata to the first program metadata;
determining that the first program comprises a same program as the third program; and
storing the third program record in association with the first program record wherein the third program record is identified as comprising the same program as the first program.
9. The method of claim 8, further comprising:
receiving a request to present the program guide;
obtaining the first program record and the third program record; and
causing a display on a display device that concurrently identifies the first program as being associated with the first media controller and the third program as being stored on a third media controller.
10. The method of claim 1, further comprising:
causing a display of the first program on a display device;
determining that a first viewer is in proximity to the first media controller;
storing in the first program record a first identifier identifying the first viewer to generate an updated first program record; and
transmitting the updated first program record onto the network to make the updated first program record available to the second media controller.
11. The method of claim 10, further comprising determining that a second viewer is in proximity to the first media controller; and
storing in the first program record the first identifier identifying the first viewer and a second identifier identifying the second viewer to generate the updated first program record.
12. The method of claim 11, further comprising receiving a request to display program guide information at a point in time after the first program has been displayed on the display device; in response to the request, obtaining the updated first program record; and displaying on the display device the first identifier and the second identifier.
13. The method of claim 1, further comprising based on the program guide, causing a display on a display device that identifies the first program as being associated with the first media controller and the second program as being associated with the second media controller.
14. The method of claim 1, further comprising:
receiving a notification that the second media controller has the second program metadata available for distribution;
accessing a last update timestamp associated with the second media controller that identifies a last time at which the first media controller received program metadata from the second media controller;
sending to the second media controller a request that includes the last update timestamp; and
wherein the second program metadata is received from the second media controller in response to sending the request to the second media controller.
15. A media controller, comprising:
a network interface adapted to interface with a network; and
a control system coupled to the network interface, the control system including a processor and adapted to:
receive from a content provider, program metadata identifying a first plurality of programs from a first content package provided by the content provider;
generate a first program record identifying a first program of the first plurality of programs, the first program record comprising first program metadata associated with the first program;
receive a second program record comprising second program metadata of a second plurality of programs from a second content package associated with a second media controller; and
store the first program record and the second program record in a program guide, wherein the first media controller enables display of the program guide.
16. The media controller of claim 15, wherein the control system is further adapted to:
transmit the first program metadata onto a network to make the first program metadata available to a second media controller.
17. The media controller of claim 15, wherein the control system is further adapted to:
compare the second program metadata to the first program metadata;
determine that the second program comprises a same program as the first program; and
store the second program record in association with the first program record wherein the second program record is identified as comprising the same program as the first program.
18. The media controller of claim 17, wherein the control system is further adapted to:
receive a request to display guide information;
obtain the first program record and the second program record; and
cause a display on a display device that concurrently identifies the first program as being associated with the media controller and the second program as being associated with the second media controller.
19. The media controller of claim 15, wherein the control system is further adapted to:
cause a display of the first program on a display device;
determine that a first viewer is in proximity to the media controller;
store in the first program record a first identifier identifying the first viewer to generate an updated first program record; and
transmit the updated first program record onto the network via the network interface to make the updated first program record available to the second media controller.
20. A computer program product, comprising a computer usable medium having a computer readable program code embodied therein, the computer readable program code adapted to be executed to implement a method for generating a program guide, the method comprising:
receiving, by a first media controller coupled to a local area network (LAN), from a content provider, program metadata identifying a first plurality of programs from a first content package provided by the content provider;
generating, by the first media controller, a first program record identifying a first program of the first plurality of programs, the first program record comprising first program metadata associated with the first program;
receiving, by the first media controller from a second media controller, second program metadata identifying a second program of a second plurality of programs from a second content package associated with the second media controller; and
storing the first program metadata and the second program metadata in a program guide on the first media controller, wherein the first media controller enables display of the program guide.
21. The computer program product of claim 17, wherein the method further comprises:
transmit the first program metadata onto a network to make the first program metadata available to a second media controller.
22. The computer program product of claim 20, wherein the method further comprises:
comparing the second program metadata to the first program metadata;
determining that the second program comprises a same program as the first program; and
storing the second program record in association with the first program record wherein the second program record is identified as comprising the same program as the first program.
23. The computer program product of claim 22, further comprising:
receiving a request to display guide information;
obtaining the first program record and the second program record; and
causing a display on a display device that concurrently identifies the first program as being associated with the first media controller and the second program as being associated with the second media controller.
24. The computer program product of claim 20, further comprising:
causing a display of the first program on a display device;
determining that a first viewer is in proximity to the first media controller;
storing in the first program record a first identifier identifying the first viewer to generate an updated first program record; and
transmitting the updated first program record onto the network via a network interface to make the updated first program record available to the second media controller.
25. The computer program product of claim 24, wherein the method further comprises receiving a request to display information about the first program after the first program has been displayed on the display device; in response to the request, obtaining the first program record; and displaying on the display device the first identifier.
US14/690,680 2009-03-25 2015-04-20 Merged Program Guide Abandoned US20150229993A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/690,680 US20150229993A1 (en) 2009-03-25 2015-04-20 Merged Program Guide

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16308609P 2009-03-25 2009-03-25
US12/731,676 US9015757B2 (en) 2009-03-25 2010-03-25 Merged program guide
US14/690,680 US20150229993A1 (en) 2009-03-25 2015-04-20 Merged Program Guide

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/731,676 Continuation US9015757B2 (en) 2009-03-25 2010-03-25 Merged program guide

Publications (1)

Publication Number Publication Date
US20150229993A1 true US20150229993A1 (en) 2015-08-13

Family

ID=46019710

Family Applications (8)

Application Number Title Priority Date Filing Date
US12/731,817 Expired - Fee Related US9088757B2 (en) 2009-03-25 2010-03-25 Method and system for socially ranking programs
US12/731,771 Expired - Fee Related US9083932B2 (en) 2009-03-25 2010-03-25 Method and system for providing information from a program guide
US12/731,676 Expired - Fee Related US9015757B2 (en) 2009-03-25 2010-03-25 Merged program guide
US12/731,730 Abandoned US20120114312A1 (en) 2009-03-25 2010-03-25 Method and system for determining the availability of a media controller
US12/731,606 Expired - Fee Related US9288540B2 (en) 2009-03-25 2010-03-25 System and method for aggregating devices for intuitive browsing
US14/690,680 Abandoned US20150229993A1 (en) 2009-03-25 2015-04-20 Merged Program Guide
US14/803,203 Abandoned US20150326938A1 (en) 2009-03-25 2015-07-20 Method And System For Socially Ranking Programs
US15/069,203 Abandoned US20160196025A1 (en) 2009-03-25 2016-03-14 System And Method For Aggregating Devices For Intuitive Browsing

Family Applications Before (5)

Application Number Title Priority Date Filing Date
US12/731,817 Expired - Fee Related US9088757B2 (en) 2009-03-25 2010-03-25 Method and system for socially ranking programs
US12/731,771 Expired - Fee Related US9083932B2 (en) 2009-03-25 2010-03-25 Method and system for providing information from a program guide
US12/731,676 Expired - Fee Related US9015757B2 (en) 2009-03-25 2010-03-25 Merged program guide
US12/731,730 Abandoned US20120114312A1 (en) 2009-03-25 2010-03-25 Method and system for determining the availability of a media controller
US12/731,606 Expired - Fee Related US9288540B2 (en) 2009-03-25 2010-03-25 System and method for aggregating devices for intuitive browsing

Family Applications After (2)

Application Number Title Priority Date Filing Date
US14/803,203 Abandoned US20150326938A1 (en) 2009-03-25 2015-07-20 Method And System For Socially Ranking Programs
US15/069,203 Abandoned US20160196025A1 (en) 2009-03-25 2016-03-14 System And Method For Aggregating Devices For Intuitive Browsing

Country Status (1)

Country Link
US (8) US9088757B2 (en)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5549903B2 (en) * 2008-09-14 2014-07-16 雅英 田中 Content receiving device and distribution device
US8589591B2 (en) * 2010-06-04 2013-11-19 Boadcom Corporation Customized delivery of content by a broadband gateway
US8200602B2 (en) * 2009-02-02 2012-06-12 Napo Enterprises, Llc System and method for creating thematic listening experiences in a networked peer media recommendation environment
US8938467B2 (en) 2009-03-25 2015-01-20 Eloy Technology, Llc System and method for intelligent storage of time shifted content
US9088757B2 (en) 2009-03-25 2015-07-21 Eloy Technology, Llc Method and system for socially ranking programs
US9445158B2 (en) 2009-11-06 2016-09-13 Eloy Technology, Llc Distributed aggregated content guide for collaborative playback session
US9356790B2 (en) 2010-05-04 2016-05-31 Qwest Communications International Inc. Multi-user integrated task list
US9003306B2 (en) 2010-05-04 2015-04-07 Qwest Communications International Inc. Doodle-in-chat-context
US9501802B2 (en) 2010-05-04 2016-11-22 Qwest Communications International Inc. Conversation capture
US8819566B2 (en) 2010-05-04 2014-08-26 Qwest Communications International Inc. Integrated multi-modal chat
US9559869B2 (en) 2010-05-04 2017-01-31 Qwest Communications International Inc. Video call handling
US20110273576A1 (en) * 2010-05-04 2011-11-10 Qwest Communications International Inc. Video Recording Environment
WO2012015920A2 (en) 2010-07-28 2012-02-02 Admiemobile Llc Systems and methods for establishing and maintaining virtual computing clouds
WO2012087285A1 (en) * 2010-12-20 2012-06-28 Intel Corporation Techniques for management and presentation of content
CN104363506B (en) * 2011-02-16 2018-12-28 Lg电子株式会社 Television set
US20120222074A1 (en) * 2011-02-28 2012-08-30 Stewart Lyle Mix Methods and systems for providing electronic program guide data
US9317530B2 (en) * 2011-03-29 2016-04-19 Facebook, Inc. Face recognition based on spatial and temporal proximity
US8843554B2 (en) * 2011-05-26 2014-09-23 Facebook, Inc. Social data overlay
US20120324491A1 (en) * 2011-06-17 2012-12-20 Microsoft Corporation Video highlight identification based on environmental sensing
CN102880608A (en) 2011-07-13 2013-01-16 阿里巴巴集团控股有限公司 Ranking and searching method and ranking and searching device based on interpersonal distance
US9386063B2 (en) 2011-09-19 2016-07-05 Comcast Cable Communications, Llc Content storage and identification
US9154821B2 (en) 2011-11-03 2015-10-06 Google Inc. Systems and methods for displaying viewership and/or message data
US10110958B2 (en) * 2011-11-11 2018-10-23 Echostar Ukraine Llc Video services receiver that provides a notification of upcoming program events having content that is preferred by the user, and related operating methods
US9230212B2 (en) * 2012-02-02 2016-01-05 Peel Technologies, Inc. Content based recommendation system
US9392335B2 (en) 2012-03-06 2016-07-12 Comcast Cable Communications, Llc Fragmented content
US20130237317A1 (en) * 2012-03-12 2013-09-12 Samsung Electronics Co., Ltd. Method and apparatus for determining content type of video content
US9875488B2 (en) * 2012-03-30 2018-01-23 Rewardstyle, Inc. Targeted marketing based on social media interaction
CA2791935A1 (en) * 2012-03-30 2013-09-30 Disternet Technology, Inc. Transcoding system and method
US20130347038A1 (en) * 2012-06-21 2013-12-26 United Video Properties, Inc. Systems and methods for searching for media based on derived attributes
CN102892043B (en) * 2012-09-29 2016-06-22 中兴通讯股份有限公司 The update method of mobile TV service instruction, television platform and terminal
US9164979B1 (en) * 2012-11-14 2015-10-20 Amazon Technologies, Inc. Implicit ratings
US9122759B2 (en) * 2012-12-18 2015-09-01 Eharmony, Inc. Systems and methods for online social matchmaking
US9609386B2 (en) 2012-12-18 2017-03-28 Rentak Corporation System and methods for analyzing content engagement in conjunction with social media
US9191689B2 (en) * 2012-12-21 2015-11-17 Rovi Guides, Inc. Systems and methods for translating generic requests into device specific requests based on location information
KR20140085931A (en) * 2012-12-28 2014-07-08 주식회사 알티캐스트 Method and Apparatus for providing broadcast service through detecting of hand movement
KR20140091125A (en) * 2013-01-07 2014-07-21 삼성전자주식회사 Method for transmitting for contents dual tone multi frequency an electronic device thereof
US9038106B2 (en) * 2013-02-04 2015-05-19 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Display tag cloud viewer interactive interface for enabling a viewer to quickly and effectively access a desired television program for viewing
US11553228B2 (en) * 2013-03-06 2023-01-10 Arthur J. Zito, Jr. Multi-media presentation system
US9137566B2 (en) 2013-06-28 2015-09-15 Sony Corporation Distribution system, reception apparatus, and methods for transitioning to new services
US9411942B2 (en) * 2013-08-30 2016-08-09 D&M Holdings, Inc. Network device, system and method for rendering an interactive multimedia playlist
US9246867B2 (en) * 2014-02-14 2016-01-26 Internationa Business Machines Corporation Excluding recipients of a message based on content of the message
US10372747B1 (en) * 2014-02-25 2019-08-06 Google Llc Defining content presentation interfaces based on identified similarities between received and stored media content items
US9769228B2 (en) * 2014-04-21 2017-09-19 Futurewei Technologies, Inc. System and method for servicing one or more user equipments through one or more streams
US10405044B1 (en) * 2014-09-30 2019-09-03 Apple Inc. Content notification system and method
WO2016056125A1 (en) * 2014-10-10 2016-04-14 株式会社日立製作所 Management system for managing calculator system
US10841640B2 (en) * 2014-11-04 2020-11-17 Comcast Cable Communications, Llc Methods and systems for displaying content based on preference information
CN104394432B (en) * 2014-11-26 2018-03-16 广州华多网络科技有限公司 Creation method and service equipment between a kind of net cast
US9613586B2 (en) * 2014-12-23 2017-04-04 Roku, Inc. Providing a representation for a device connected to a display device
US9977834B2 (en) * 2015-04-03 2018-05-22 Facebook, Inc. Personalizing content associated with a third party system for presentation to an online system user based on interactions performed by the user with content from the third party system
US9313552B1 (en) * 2015-04-30 2016-04-12 Ecopro Ict, Inc. Method and apparatus for relaying terrestrial broadcast signal
US11209972B2 (en) 2015-09-02 2021-12-28 D&M Holdings, Inc. Combined tablet screen drag-and-drop interface
US11113022B2 (en) * 2015-05-12 2021-09-07 D&M Holdings, Inc. Method, system and interface for controlling a subwoofer in a networked audio system
US20160337688A1 (en) * 2015-05-15 2016-11-17 Cox Communications, Inc. Systems and Methods of Time Shifted Rewind
US20160357366A1 (en) * 2015-06-07 2016-12-08 Apple Inc. Navigating Through Documents in a Document Viewing Application
US10462524B2 (en) * 2015-06-23 2019-10-29 Facebook, Inc. Streaming media presentation system
CN105096144A (en) * 2015-08-24 2015-11-25 小米科技有限责任公司 Social relation analysis method and social relation analysis device
US20170064405A1 (en) * 2015-08-26 2017-03-02 Caavo Inc System and method for personalizing and recommending content
US10212359B2 (en) * 2015-12-30 2019-02-19 Cerner Innovation, Inc. Camera normalization
US9905267B1 (en) * 2016-07-13 2018-02-27 Gracenote, Inc. Computing system with DVE template selection and video content item generation feature
JP6743604B2 (en) * 2016-09-12 2020-08-19 ソニー株式会社 Multi-camera system, camera, camera processing method, confirmation device, and confirmation device processing method
CN106331817B (en) * 2016-09-27 2019-03-22 北京四达时代软件技术股份有限公司 Set-top box display interface providing method and device
CN107566487A (en) * 2017-09-01 2018-01-09 安徽教育网络出版有限公司 The method of multiple terminal self-adapting matching based on Automatic Typesetting
US10904615B2 (en) * 2017-09-07 2021-01-26 International Business Machines Corporation Accessing and analyzing data to select an optimal line-of-sight and determine how media content is distributed and displayed
US10571991B2 (en) * 2018-04-30 2020-02-25 Centurylink Intellectual Property Llc Method and system for implementing auto-switching or auto-playing video content
CN112740714A (en) * 2018-09-11 2021-04-30 公共电视公司 Techniques to configure and manage user interfaces for content guides for multiple device types
WO2021111310A1 (en) * 2019-12-02 2021-06-10 Wweevv Pty Ltd Method and system for aggregating live streams

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5343239A (en) * 1991-11-20 1994-08-30 Zing Systems, L.P. Transaction based interactive television system
US5682195A (en) * 1992-12-09 1997-10-28 Discovery Communications, Inc. Digital cable headend for cable television delivery system
US20040181811A1 (en) * 2003-03-13 2004-09-16 Rakib Selim Shlomo Thin DOCSIS in-band management for interactive HFC service delivery

Family Cites Families (292)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4468732A (en) 1975-12-31 1984-08-28 International Business Machines Corporation Automated logical file design system with reduced data base redundancy
US4694490A (en) 1981-11-03 1987-09-15 Harvey John C Signal processing apparatus and methods
US4965825A (en) 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US4827447A (en) 1986-06-13 1989-05-02 International Business Machines Corporation Method for selectively returning to the beginning or the previous revision point in document edition
CA1337132C (en) 1988-07-15 1995-09-26 Robert Filepp Reception system for an interactive computer network and method of operation
US4956774A (en) 1988-09-02 1990-09-11 International Business Machines Corporation Data base optimizer using most frequency values statistics
US5121478A (en) 1988-09-08 1992-06-09 Xerox Corporation Window system with independently replaceable window functionality
US5115501A (en) 1988-11-04 1992-05-19 International Business Machines Corporation Procedure for automatically customizing the user interface of application programs
US5353121A (en) 1989-10-30 1994-10-04 Starsight Telecast, Inc. Television schedule system
JPH0792744B2 (en) 1990-08-20 1995-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション A method of installing multi-level application software on a data processing device.
US5594507A (en) 1990-09-28 1997-01-14 Ictv, Inc. Compressed digital overlay controller and method for MPEG type video signal
US5587734A (en) 1990-09-28 1996-12-24 Ictv, Inc. User interface for selecting television information services through pseudo-channel access
US5526034A (en) 1990-09-28 1996-06-11 Ictv, Inc. Interactive home information system with signal assignment
US6724431B1 (en) * 1991-03-28 2004-04-20 Texas Instruments Incorporated Program network specific information for TV or radio
JP3126225B2 (en) 1991-07-12 2001-01-22 富士通株式会社 Database system
CA2067650C (en) 1991-07-24 1996-10-22 Eric Jonathan Bauer Method and apparatus for operating a computer-based file system
US5446891A (en) 1992-02-26 1995-08-29 International Business Machines Corporation System for adjusting hypertext links with weighed user goals and activities
US5404510A (en) 1992-05-21 1995-04-04 Oracle Corporation Database index design based upon request importance and the reuse and modification of similar existing indexes
US5223924A (en) 1992-05-27 1993-06-29 North American Philips Corporation System and method for automatically correlating user preferences with a T.V. program information database
US5719786A (en) 1993-02-03 1998-02-17 Novell, Inc. Digital media data stream network management system
US5579055A (en) 1993-06-07 1996-11-26 Scientific-Atlanta, Inc. Electronic program guide and text channel data controller
US5594509A (en) 1993-06-22 1997-01-14 Apple Computer, Inc. Method and apparatus for audio-visual interface for the display of multiple levels of information on a display
GB9315914D0 (en) 1993-07-31 1993-09-15 Smithkline Beecham Plc Novel compound
US5696897A (en) 1994-01-31 1997-12-09 Sun Microsystems, Inc. Method and apparatus for a multi-layer system quiescent suspend and resume operation
JP3500741B2 (en) 1994-03-01 2004-02-23 ソニー株式会社 Channel selection method and channel selection device for television broadcasting
EP2293548A1 (en) 1994-05-20 2011-03-09 United Video Properties, Inc. Improved electronic televison program schedule guide system and method
US5948040A (en) 1994-06-24 1999-09-07 Delorme Publishing Co. Travel reservation information and planning system
US5528304A (en) 1994-07-22 1996-06-18 Zenith Electronics Corp. Picture-in-picture feedback for channel related features
US5598536A (en) 1994-08-09 1997-01-28 Shiva Corporation Apparatus and method for providing remote users with the same unique IP address upon each network access
US5760838A (en) 1994-09-30 1998-06-02 Intel Corporation Method and system for configuring a display
US5758257A (en) 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5623613A (en) 1994-11-29 1997-04-22 Microsoft Corporation System for displaying programming information
US5530852A (en) 1994-12-20 1996-06-25 Sun Microsystems, Inc. Method for extracting profiles and topics from a first file written in a first markup language and generating files in different markup languages containing the profiles and topics for use in accessing data described by the profiles and topics
EP0718784B1 (en) 1994-12-20 2003-08-27 Sun Microsystems, Inc. Method and system for the retrieval of personalized information
US5596373A (en) 1995-01-04 1997-01-21 Sony Corporation Method and apparatus for providing program oriented information in a multiple station broadcast system
US5710884A (en) 1995-03-29 1998-01-20 Intel Corporation System for automatically updating personal profile server with updates to additional user information gathered from monitoring user's electronic consuming habits generated on computer during use
US5550576A (en) 1995-04-17 1996-08-27 Starsight Telecast Incorporated Method and apparatus for merging television program schedule information received from multiple television schedule information sources
US5666645A (en) 1995-04-26 1997-09-09 News America Publications, Inc. Data management and distribution system and method for an electronic television program guide
US5630119A (en) 1995-05-05 1997-05-13 Microsoft Corporation System and method for displaying program listings in an interactive electronic program guide
US5600378A (en) 1995-05-22 1997-02-04 Scientific-Atlanta, Inc. Logical and composite channel mapping in an MPEG network
US5701451A (en) 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US5652613A (en) 1995-06-07 1997-07-29 Lazarus; David Beryl Intelligent electronic program guide memory management system and method
US5801753A (en) 1995-08-11 1998-09-01 General Instrument Corporation Of Delaware Method and apparatus for providing an interactive guide to events available on an information network
US5712979A (en) 1995-09-20 1998-01-27 Infonautics Corporation Method and apparatus for attaching navigational history information to universal resource locator links on a world wide web page
US5717860A (en) 1995-09-20 1998-02-10 Infonautics Corporation Method and apparatus for tracking the navigation path of a user on the world wide web
US5737599A (en) 1995-09-25 1998-04-07 Rowe; Edward R. Method and apparatus for downloading multi-page electronic documents with hint information
DE69637125T2 (en) 1995-09-25 2008-01-24 Adobe Systems, Inc., San Jose OPTIMAL ACCESS TO ELECTRONIC DOCUMENTS
US5844560A (en) 1995-09-29 1998-12-01 Intel Corporation Graphical user interface control element
US6388714B1 (en) 1995-10-02 2002-05-14 Starsight Telecast Inc Interactive computer system for providing television schedule information
WO1997017793A1 (en) 1995-11-06 1997-05-15 Philips Electronics N.V. Television receiver with caller-id feature
US5793438A (en) 1995-11-13 1998-08-11 Hyundai Electronics America Electronic program guide with enhanced presentation
US5695400A (en) 1996-01-30 1997-12-09 Boxer Jam Productions Method of managing multi-player game playing over a network
US5694176A (en) 1996-02-29 1997-12-02 Hughes Electronics Method and apparatus for generating television program guides with category selection overlay
US5774664A (en) 1996-03-08 1998-06-30 Actv, Inc. Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments
US5778187A (en) 1996-05-09 1998-07-07 Netcast Communications Corp. Multicasting method and apparatus
US5784058A (en) 1996-05-28 1998-07-21 Sun Microsystems, Inc. User-controllable persistent browser display pages
US6034689A (en) 1996-06-03 2000-03-07 Webtv Networks, Inc. Web browser allowing navigation between hypertext objects using remote control
US5896444A (en) 1996-06-03 1999-04-20 Webtv Networks, Inc. Method and apparatus for managing communications between a client and a server in a network
US5727129A (en) 1996-06-04 1998-03-10 International Business Machines Corporation Network system for profiling and actively facilitating user activities
US5945988A (en) 1996-06-06 1999-08-31 Intel Corporation Method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system
US5813007A (en) 1996-06-20 1998-09-22 Sun Microsystems, Inc. Automatic updates of bookmarks in a client computer
PT932398E (en) 1996-06-28 2006-09-29 Ortho Mcneil Pharm Inc USE OF THE SURFACE OR ITS DERIVATIVES FOR THE PRODUCTION OF A MEDICINAL PRODUCT FOR THE TREATMENT OF MANIAC-DEPRESSIVE BIPOLAR DISTURBLES
US5801747A (en) 1996-11-15 1998-09-01 Hyundai Electronics America Method and apparatus for creating a television viewer profile
US5867495A (en) 1996-11-18 1999-02-02 Mci Communications Corporations System, method and article of manufacture for communications utilizing calling, plans in a hybrid network
US6141058A (en) 1996-12-16 2000-10-31 Thomson Licensing S.A. Television receiver having a user-editable telephone system caller-ID feature
US5854897A (en) 1996-12-27 1998-12-29 Quantum Systems, Inc. Network communications marketing system
US6349297B1 (en) 1997-01-10 2002-02-19 Venson M. Shaw Information processing system for directing information request from a particular user/application, and searching/forwarding/retrieving information from unknown and large number of information resources
US5850218A (en) 1997-02-19 1998-12-15 Time Warner Entertainment Company L.P. Inter-active program guide with default selection control
US5907843A (en) 1997-02-27 1999-05-25 Apple Computer, Inc. Replaceable and extensible navigator component of a network component system
US6034683A (en) 1997-03-26 2000-03-07 Netscape Communications Corporation Time line for desktop metaphor
US5893091A (en) 1997-04-11 1999-04-06 Immediata Corporation Multicasting with key words
US20020038387A1 (en) 1997-05-30 2002-03-28 Fuiks Kenneth A. Computer system environmental messaging structure
IL121230A (en) 1997-07-03 2004-05-12 Nds Ltd Intelligent electronic program guide
US5990890A (en) 1997-08-25 1999-11-23 Liberate Technologies System for data entry and navigation in a user interface
US6119098A (en) 1997-10-14 2000-09-12 Patrice D. Guyot System and method for targeting and distributing advertisements over a distributed network
US6351467B1 (en) 1997-10-27 2002-02-26 Hughes Electronics Corporation System and method for multicasting multimedia content
US6442598B1 (en) 1997-10-27 2002-08-27 Microsoft Corporation System and method for delivering web content over a broadcast medium
US7954056B2 (en) 1997-12-22 2011-05-31 Ricoh Company, Ltd. Television-based visualization and navigation interface
AU2025999A (en) 1998-01-05 1999-07-26 Amiga Development Llc System for combining electronic program guide data
US6072486A (en) 1998-01-13 2000-06-06 Microsoft Corporation System and method for creating and customizing a deskbar
US7185355B1 (en) 1998-03-04 2007-02-27 United Video Properties, Inc. Program guide system with preference profiles
US6311175B1 (en) 1998-03-06 2001-10-30 Perot Systems Corp. System and method for generating performance models of complex information technology systems
US6459427B1 (en) 1998-04-01 2002-10-01 Liberate Technologies Apparatus and method for web-casting over digital broadcast TV network
US6400478B1 (en) * 1998-04-02 2002-06-04 Sorrento Networks, Inc. Wavelength-division-multiplexed optical transmission system with expanded bidirectional transmission capacity over a single fiber
US6742183B1 (en) * 1998-05-15 2004-05-25 United Video Properties, Inc. Systems and methods for advertising television networks, channels, and programs
US6735701B1 (en) 1998-06-25 2004-05-11 Macarthur Investments, Llc Network policy management and effectiveness system
JP2000013708A (en) 1998-06-26 2000-01-14 Hitachi Ltd Program selection aiding device
AR020608A1 (en) * 1998-07-17 2002-05-22 United Video Properties Inc A METHOD AND A PROVISION TO SUPPLY A USER REMOTE ACCESS TO AN INTERACTIVE PROGRAMMING GUIDE BY A REMOTE ACCESS LINK
DE69903438T2 (en) * 1998-07-17 2003-08-14 United Video Properties Inc Interactive TV guide with multiple devices in one place
US6505348B1 (en) 1998-07-29 2003-01-07 Starsight Telecast, Inc. Multiple interactive electronic program guide system and methods
US7603685B2 (en) * 1998-11-03 2009-10-13 United Video Properties, Inc. Program guide system with combination category search
US6317881B1 (en) 1998-11-04 2001-11-13 Intel Corporation Method and apparatus for collecting and providing viewer feedback to a broadcast
US6823344B1 (en) 1998-12-03 2004-11-23 International Business Machines Corporation File manager system providing faster and more efficient interactive user access to files in computer displays
US6452612B1 (en) 1998-12-18 2002-09-17 Parkervision, Inc. Real time video production system and method
US6760916B2 (en) 2000-01-14 2004-07-06 Parkervision, Inc. Method, system and computer program product for producing and distributing enhanced media downstreams
US7454777B1 (en) 1999-03-01 2008-11-18 Sony Corporation Satellite system/internet system with display option palette with multiple filtering options
US6694316B1 (en) * 1999-03-23 2004-02-17 Microstrategy Inc. System and method for a subject-based channel distribution of automatic, real-time delivery of personalized informational and transactional data
US6434621B1 (en) 1999-03-31 2002-08-13 Hannaway & Associates Apparatus and method of using the same for internet and intranet broadcast channel creation and management
US6486892B1 (en) 1999-04-07 2002-11-26 Joseph L. Stern System and method for accessing, manipulating and viewing internet and non-internet related information and for controlling networked devices
US8266657B2 (en) * 2001-03-15 2012-09-11 Sling Media Inc. Method for effectively implementing a multi-room television system
US6889382B1 (en) * 1999-07-27 2005-05-03 Mediaone Group, Inc. Remote TV control system
AU1249801A (en) 1999-08-30 2001-03-26 Kerbango, Inc. Search engine to monitor and verify streaming audio sources
US6476827B1 (en) 1999-08-31 2002-11-05 Xoucin, Inc. Method and apparatus for creating and maintaining a scrapbook of information pages
AU7588100A (en) * 1999-09-16 2001-04-17 Ixl Enterprises, Inc. System and method for linking media content
EP1222806A2 (en) * 1999-09-24 2002-07-17 United Video Properties, Inc. Interactive television program guide with enhanced user interface
US7444661B1 (en) * 1999-09-30 2008-10-28 Gateway Inc. Electronic program guide utilizing multiple tuning sources
US7853974B2 (en) 1999-10-05 2010-12-14 Thomson Licensing System for collating data from multiple sources to form a composite program guide for display
US7958457B1 (en) * 1999-12-20 2011-06-07 Wireless Agents, Llc Method and apparatus for scheduling presentation of digital content on a personal communication device
US6754904B1 (en) * 1999-12-30 2004-06-22 America Online, Inc. Informing network users of television programming viewed by other network users
US7373650B1 (en) 2000-02-01 2008-05-13 Scientific-Atlanta, Inc. Apparatuses and methods to enable the simultaneous viewing of multiple television channels and electronic program guide content
US6642938B1 (en) * 2000-03-17 2003-11-04 At&T Corp. Real time personal channel
JP2003527001A (en) 2000-03-17 2003-09-09 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Method and apparatus for grading database objects
US7222163B1 (en) * 2000-04-07 2007-05-22 Virage, Inc. System and method for hosting of video content over a network
US7260564B1 (en) * 2000-04-07 2007-08-21 Virage, Inc. Network video guide and spidering
US20060259926A1 (en) 2000-07-20 2006-11-16 Digital Deck, Inc. Adaptable programming guide for networked devices
US20020053081A1 (en) 2000-10-31 2002-05-02 Digitaldeck, Inc. Adaptable programming guide for networked devices
US20050022241A1 (en) 2000-10-31 2005-01-27 Griggs Theodore L. Adaptable programming guide for networked devices
US7149511B1 (en) 2000-08-31 2006-12-12 Rosetta-Wireless Corporation Wireless intelligent personal server
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US8302127B2 (en) * 2000-09-25 2012-10-30 Thomson Licensing System and method for personalized TV
CA2428946C (en) 2000-11-14 2010-06-22 Scientific-Atlanta, Inc. Networked subscriber television distribution
US20020112244A1 (en) * 2000-12-19 2002-08-15 Shih-Ping Liou Collaborative video delivery over heterogeneous networks
JP3950632B2 (en) * 2001-01-23 2007-08-01 日本電気株式会社 Broadcast storage system, apparatus, program, and recording medium
US6986154B1 (en) 2001-01-31 2006-01-10 Keen Personal Media, Inc. System and method for selecting content to be presented to a user
US20020166123A1 (en) * 2001-03-02 2002-11-07 Microsoft Corporation Enhanced television services for digital video recording and playback
US20020174428A1 (en) 2001-03-28 2002-11-21 Philips Electronics North America Corp. Method and apparatus for generating recommendations for a plurality of users
US8060906B2 (en) 2001-04-06 2011-11-15 At&T Intellectual Property Ii, L.P. Method and apparatus for interactively retrieving content related to previous query results
US8677416B2 (en) * 2001-07-17 2014-03-18 Ati Technologies, Inc. Method, system and software for display of multiple media channels
WO2003015408A1 (en) 2001-08-06 2003-02-20 Koninklijke Philips Electronics N.V. System and method for combining several epg sources to one reliable epg
US20030048808A1 (en) 2001-09-12 2003-03-13 Stahl Thomas Anthony Method and apparatus for changing received streaming content channels
US8365230B2 (en) * 2001-09-19 2013-01-29 Tvworks, Llc Interactive user interface for television applications
US8042132B2 (en) 2002-03-15 2011-10-18 Tvworks, Llc System and method for construction, delivery and display of iTV content
US20030066074A1 (en) * 2001-09-29 2003-04-03 Koninklijke Philips Electronics N.V. System and method for displaying group viewing statistics during television viewing
US20030084452A1 (en) * 2001-10-11 2003-05-01 Ryan Timothy L. Entertainment portal
US7246060B2 (en) 2001-11-06 2007-07-17 Microsoft Corporation Natural input recognition system and method using a contextual mapping engine and adaptive user bias
US7571452B2 (en) 2001-11-13 2009-08-04 Koninklijke Philips Electronics N.V. Method and apparatus for recommending items of interest to a user based on recommendations for one or more third parties
US7136871B2 (en) * 2001-11-21 2006-11-14 Microsoft Corporation Methods and systems for selectively displaying advertisements
US7283992B2 (en) * 2001-11-30 2007-10-16 Microsoft Corporation Media agent to suggest contextually related media content
US20030110500A1 (en) * 2001-12-06 2003-06-12 Rodriguez Arturo A. Prediction-based adaptative control of television viewing functionality
US20030200336A1 (en) 2002-02-15 2003-10-23 Suparna Pal Apparatus and method for the delivery of multiple sources of media content
US7690012B2 (en) * 2002-02-28 2010-03-30 Scientific-Atlanta, Inc. Positive parental control
US20040078814A1 (en) * 2002-03-29 2004-04-22 Digeo, Inc. Module-based interactive television ticker
AU2003239385A1 (en) * 2002-05-10 2003-11-11 Richard R. Reisman Method and apparatus for browsing using multiple coordinated device
US20030237093A1 (en) 2002-06-19 2003-12-25 Marsh David J. Electronic program guide systems and methods for handling multiple users
US20040003393A1 (en) 2002-06-26 2004-01-01 Koninlkijke Philips Electronics N.V. Method, system and apparatus for monitoring use of electronic devices by user detection
US20040078807A1 (en) * 2002-06-27 2004-04-22 Fries Robert M. Aggregated EPG manager
DE10243096A1 (en) * 2002-09-16 2004-03-25 Michael Thiemann Streaming portal, computer device with the streaming portal, method for providing the streaming portal, computer program product, computer-readable medium, computer network for providing the streaming portal, first, second and third computer systems and use thereof
US20040060061A1 (en) 2002-09-20 2004-03-25 Imagictv Inc. Multiple view video feed
US20050155052A1 (en) * 2002-10-04 2005-07-14 Barbara Ostrowska Parental control for a networked multiroom system
US20040068739A1 (en) 2002-10-04 2004-04-08 Russ Samuel H. Networked multimedia system having a multi-room interactive network guide
US7296295B2 (en) * 2002-12-11 2007-11-13 Broadcom Corporation Media processing system supporting different media formats via server-based transcoding
JP4651263B2 (en) 2002-12-18 2011-03-16 ソニー株式会社 Information recording apparatus and information recording method
WO2004064296A2 (en) * 2003-01-07 2004-07-29 Home Box Office Integrated media viewing environment
WO2004091187A2 (en) 2003-04-03 2004-10-21 Sedna Patent Services, Llc Content notification and delivery
US20040268403A1 (en) * 2003-06-26 2004-12-30 Microsoft Corporation Context-sensitive television tags
US7373389B2 (en) 2003-08-27 2008-05-13 Spoke Software Periodic update of data in a relationship system
US20050050578A1 (en) * 2003-08-29 2005-03-03 Sony Corporation And Sony Electronics Inc. Preference based program deletion in a PVR
US7457872B2 (en) * 2003-10-15 2008-11-25 Microsoft Corporation On-line service/application monitoring and reporting system
US20050097595A1 (en) * 2003-11-05 2005-05-05 Matti Lipsanen Method and system for controlling access to content
US20050138659A1 (en) 2003-12-17 2005-06-23 Gilles Boccon-Gibod Personal video recorders with automated buffering
JP4900801B2 (en) * 2003-12-23 2012-03-21 ザ・ディレクティービー・グループ・インコーポレイテッド System and method for distributing media in a pay-per-play architecture with remote playback within an enterprise
US7895625B1 (en) * 2003-12-24 2011-02-22 Time Warner, Inc. System and method for recommending programming to television viewing communities
US20050149987A1 (en) 2003-12-24 2005-07-07 Gilles Boccon-Gibod Television viewing communities
US20050193015A1 (en) * 2004-02-19 2005-09-01 Sandraic Logic, Llc A California Limited Liability Company Method and apparatus for organizing, sorting and navigating multimedia content
US7293034B2 (en) * 2004-02-23 2007-11-06 Microsoft Coporation Dynamically customizing a user interface for the aggregation of content
US8356317B2 (en) 2004-03-04 2013-01-15 Sharp Laboratories Of America, Inc. Presence based technology
US20050237699A1 (en) * 2004-04-21 2005-10-27 David Carroll Multi-screen mobile computing system
US20060053470A1 (en) * 2004-04-30 2006-03-09 Vulcan Inc. Management and non-linear presentation of augmented broadcasted or streamed multimedia content
US20130018510A1 (en) * 2004-06-14 2013-01-17 Sava Cvek Selectively Networked Extension and Retraction Arrangements
US8943537B2 (en) 2004-07-21 2015-01-27 Cox Communications, Inc. Method and system for presenting personalized television program recommendation to viewers
US7380264B2 (en) 2004-08-13 2008-05-27 Microsoft Corporation Systems for unifying heterogeneous multimedia tuners
EP1812848A4 (en) 2004-09-15 2009-04-29 Adesso Systems Inc System and method for managing data in a distributed computer system
US8386513B2 (en) * 2004-11-12 2013-02-26 Enr Services Inc. System and method for analyzing, integrating and updating media contact and content data
US20060117354A1 (en) 2004-11-29 2006-06-01 Mark Schutte Consolidating video-on-demand (VOD) services with multi-room personal video recording (MR-PVR) services
WO2006066052A2 (en) 2004-12-16 2006-06-22 Sonic Solutions Methods and systems for use in network management of content
US20060168126A1 (en) 2004-12-21 2006-07-27 Jose Costa-Requena Aggregated content listing for ad-hoc peer to peer networks
US7966382B2 (en) * 2004-12-29 2011-06-21 Intel Corporation Enabling access to media content in media servers in remote networks
US8230456B2 (en) * 2005-01-05 2012-07-24 Yahoo! Inc. Framework for delivering a plurality of content and providing for interaction with the same in a television environment
US7546623B2 (en) 2005-01-05 2009-06-09 Microsoft Corporation Methods and systems for providing multi-source content in electronic program guides
US8381240B2 (en) 2005-10-27 2013-02-19 Ronald Jacoby Framework for providing digital home services
US20070143128A1 (en) 2005-12-20 2007-06-21 Tokarev Maxim L Method and system for providing customized recommendations to users
US20060161953A1 (en) 2005-01-20 2006-07-20 Sbc Knowledge Ventures, L.P. System and method of providing a combined content guide for an entertainment system
TW200704183A (en) * 2005-01-27 2007-01-16 Matrix Tv Dynamic mosaic extended electronic programming guide for television program selection and display
EP1854018B1 (en) * 2005-02-23 2017-07-19 Cisco Technology, Inc. Playout-dependent unicast streaming of digital video content
US20060218581A1 (en) 2005-03-01 2006-09-28 Barbara Ostrowska Interactive network guide with parental monitoring
US20060212906A1 (en) * 2005-03-18 2006-09-21 Cantalini James C System and method for digital media navigation and recording
CA2603045A1 (en) 2005-03-28 2006-10-05 The Directv Group, Inc. Interactive mosaic channel video stream with barker channel and guide
US20060248557A1 (en) * 2005-04-01 2006-11-02 Vulcan Inc. Interface for controlling device groups
JP4345706B2 (en) * 2005-04-20 2009-10-14 ソニー株式会社 Recording apparatus and method, recording medium, and program
US8584171B2 (en) 2005-05-06 2013-11-12 Starz Entertainment Group Llc Local context navigation system
CN101199200A (en) 2005-06-16 2008-06-11 汤姆森许可贸易公司 Sender unit identification in mobile television by using global positioning system
US7716662B2 (en) * 2005-06-22 2010-05-11 Comcast Cable Holdings, Llc System and method for generating a set top box code download step sequence
US8086605B2 (en) 2005-06-28 2011-12-27 Yahoo! Inc. Search engine with augmented relevance ranking by community participation
WO2007019480A2 (en) * 2005-08-05 2007-02-15 Realnetworks, Inc. System and computer program product for chronologically presenting data
US8726325B2 (en) * 2005-08-08 2014-05-13 Telvue Corporation Method and apparatus for scheduling delivery of video and graphics
US7546283B2 (en) * 2005-08-15 2009-06-09 Sony Corporation Networked personal video recorder with shared resource and distributed content
US7805741B2 (en) 2005-09-13 2010-09-28 Cyberlink Corp. Systems and methods for networking digital video recorders
AU2006292506B2 (en) * 2005-09-15 2010-04-22 Fourthwall Media, Inc Self-contained mini-applications system and method for digital television
US7646962B1 (en) * 2005-09-30 2010-01-12 Guideworks, Llc System and methods for recording and playing back programs having desirable recording attributes
US8582946B2 (en) * 2005-11-04 2013-11-12 Rovi Guides, Inc. Systems and methods for recording programs using a network recording device as supplemental storage
US7900818B2 (en) 2005-11-14 2011-03-08 Packetvideo Corp. System and method for accessing electronic program guide information and media content from multiple locations using mobile devices
US8683082B2 (en) * 2005-11-14 2014-03-25 Sandisk Technologies Inc. Removable memory devices for displaying advertisement content on host systems using applications launched from removable memory devices
WO2007064640A2 (en) * 2005-11-29 2007-06-07 Google Inc. Detecting repeating content in broadcast media
US20070143260A1 (en) 2005-12-19 2007-06-21 Microsoft Corporation Delivery of personalized keyword-based information using client-side re-ranking
US20070157281A1 (en) * 2005-12-23 2007-07-05 United Video Properties, Inc. Interactive media guidance system having multiple devices
US20070157240A1 (en) 2005-12-29 2007-07-05 United Video Properties, Inc. Interactive media guidance system having multiple devices
US20070157237A1 (en) 2005-12-29 2007-07-05 Charles Cordray Systems and methods for episode tracking in an interactive media environment
US8607287B2 (en) * 2005-12-29 2013-12-10 United Video Properties, Inc. Interactive media guidance system having multiple devices
US20070157220A1 (en) * 2005-12-29 2007-07-05 United Video Properties, Inc. Systems and methods for managing content
KR100772392B1 (en) * 2006-02-07 2007-11-01 삼성전자주식회사 Method and apparatus for processing contents using TV channel in home network
GB0603237D0 (en) * 2006-02-17 2006-03-29 Mobile Compression Tech Ab A system for submitting and delivering content events to remote devices
US20070220566A1 (en) * 2006-03-03 2007-09-20 Comcast Cable Holdings, Llc Method and system of distributing media content and generating playlists
US7644425B2 (en) 2006-03-22 2010-01-05 Alcatel Lucent Picture-in-picture mosaic
US8316394B2 (en) * 2006-03-24 2012-11-20 United Video Properties, Inc. Interactive media guidance application with intelligent navigation and display features
US7925723B1 (en) * 2006-03-31 2011-04-12 Qurio Holdings, Inc. Collaborative configuration of a media environment
US9167208B2 (en) * 2006-04-07 2015-10-20 Your Choice Interactive, Inc. System and method for providing supplementary interactive content
US20090089838A1 (en) * 2006-04-07 2009-04-02 Pino Jr Angelo J Template Based System, Device and Method for Providing Interactive Content
US8046411B2 (en) * 2006-04-28 2011-10-25 Yahoo! Inc. Multimedia sharing in social networks for mobile devices
JP4971692B2 (en) 2006-06-07 2012-07-11 株式会社日立製作所 Receiver
EP1868385A1 (en) 2006-06-16 2007-12-19 Nokia Siemens Networks Gmbh & Co. Kg Electronic program guide
US8261300B2 (en) * 2006-06-23 2012-09-04 Tivo Inc. Method and apparatus for advertisement placement in a user dialog on a set-top box
US7673327B1 (en) * 2006-06-27 2010-03-02 Confluence Commons, Inc. Aggregation system
US8392947B2 (en) * 2006-06-30 2013-03-05 At&T Intellectual Property I, Lp System and method for home audio and video communication
US8024765B2 (en) * 2006-07-26 2011-09-20 Hewlett-Packard Development Company, L.P. Method and system for communicating media program information
CA2658519A1 (en) * 2006-07-31 2008-02-07 United Video Properties, Inc. Systems and methods for providing media guidance planners
WO2008016634A2 (en) * 2006-08-02 2008-02-07 Tellytopia, Inc. System, device, and method for delivering multimedia
US20080034043A1 (en) 2006-08-03 2008-02-07 International Business Machines Corporation Electronic mail message replay constraints
WO2008022328A2 (en) 2006-08-18 2008-02-21 Sony Corporation Selective media access through a recommendation engine
US7991019B2 (en) * 2006-09-19 2011-08-02 Sharp Laboratories Of America, Inc. Methods and systems for combining media inputs for messaging
US20080086746A1 (en) 2006-10-06 2008-04-10 King John K Simultaneously Viewing Multiple Programs Within A Television Program Guide
US8316307B2 (en) 2006-10-13 2012-11-20 At&T Intellectual Property I, Lp Method and apparatus for abstracting internet content
US8091032B2 (en) 2006-11-30 2012-01-03 Red Hat, Inc. Automatic generation of content recommendations weighted by social network context
US20080163059A1 (en) 2006-12-28 2008-07-03 Guideworks, Llc Systems and methods for creating custom video mosaic pages with local content
US8601515B2 (en) * 2006-12-28 2013-12-03 Motorola Mobility Llc On screen alert to indicate status of remote recording
WO2008085203A2 (en) * 2006-12-29 2008-07-17 Prodea Systems, Inc. Presence status notification from digital endpoint devices through a multi-services gateway device at the user premises
US8015581B2 (en) 2007-01-05 2011-09-06 Verizon Patent And Licensing Inc. Resource data configuration for media content access systems and methods
US8732734B2 (en) * 2007-03-03 2014-05-20 Time Warner Cable Enterprises Llc Methods and apparatus supporting the recording of multiple simultaneously broadcast programs communicated using the same communications channel
US7966638B2 (en) 2007-03-30 2011-06-21 Google Inc. Interactive media display across devices
BRPI0808952A2 (en) * 2007-04-06 2014-08-26 Gaiasoft Ip Ltd "CONTENT DELIVERY SYSTEM, INTERMEDIATE CONTENT MECHANISM, RELIABLE PROFILE DATA MECHANISM AND METHOD FOR DELIVERING CONTENT"
US8705944B2 (en) * 2007-07-06 2014-04-22 At&T Intellectual Property I, L.P. System and method of recording media content
US20090015657A1 (en) 2007-07-09 2009-01-15 Jason Wong Method and system for adapting video according to associated audio
US20090044237A1 (en) * 2007-07-13 2009-02-12 Zachary Ryan Keiter Sport video hosting system and method
US20090024910A1 (en) 2007-07-19 2009-01-22 Media Lasso, Inc. Asynchronous communication and content sharing
US8209171B2 (en) * 2007-08-07 2012-06-26 Aurix Limited Methods and apparatus relating to searching of spoken audio data
US20090052870A1 (en) * 2007-08-22 2009-02-26 Time Warner Cable Inc. Apparatus And Method For Remote Control Of Digital Video Recorders And The Like
US8375068B1 (en) * 2007-10-04 2013-02-12 Lucid Design Group, Llc Extensible framework and graphical user interface for sharing, comparing, and displaying resource usage data
US8160426B2 (en) * 2007-10-12 2012-04-17 Rovi Guides, Inc. Storage management of a recording device in a multi-user system
US8332893B2 (en) * 2007-10-16 2012-12-11 Microsoft Corporation Hybrid channel map
US8312494B2 (en) * 2007-10-26 2012-11-13 International Business Machines Corporation Presenting a continuous programming sequence at a client terminal
US8272015B2 (en) * 2007-11-01 2012-09-18 Microsoft Corporation Alternate source conflict resolution
US20090135177A1 (en) * 2007-11-20 2009-05-28 Big Stage Entertainment, Inc. Systems and methods for voice personalization of video content
CN103369391B (en) * 2007-11-21 2016-12-28 高通股份有限公司 The method and system of electronic equipment is controlled based on media preferences
US20090150806A1 (en) 2007-12-10 2009-06-11 Evje Bryon P Method, System and Apparatus for Contextual Aggregation of Media Content and Presentation of Such Aggregated Media Content
US20090158337A1 (en) * 2007-12-13 2009-06-18 Mobitv, Inc. Mosaic video content selection mechanism
US20090165053A1 (en) 2007-12-19 2009-06-25 General Instrument Corporation Method and apparatus for providing access to and control of multimedia content information across multimedia processing devices
US8381245B2 (en) * 2007-12-19 2013-02-19 Verizon Patent And Licensing Inc. Program guide image objects for media content access systems and methods
US20090319512A1 (en) * 2008-01-18 2009-12-24 Douglas Baker Aggregator, filter, and delivery system for online content
US9477776B2 (en) 2008-04-02 2016-10-25 Paypal, Inc. System and method for visualization of data
US8225354B2 (en) 2008-04-11 2012-07-17 Microsoft Corporation Merging electronic program guide information
US9489383B2 (en) * 2008-04-18 2016-11-08 Beats Music, Llc Relevant content to enhance a streaming media experience
US8307395B2 (en) * 2008-04-22 2012-11-06 Porto Technology, Llc Publishing key frames of a video content item being viewed by a first user to one or more second users
KR101517769B1 (en) * 2008-04-24 2015-05-06 삼성전자주식회사 Method for recommending broadcasting contents in media contents reproducing device and apparatus thereof
US20110191318A1 (en) 2008-05-16 2011-08-04 David Gilbey Community search system with relational ranking
US9246613B2 (en) * 2008-05-20 2016-01-26 Verizon Patent And Licensing Inc. Method and apparatus for providing online social networking for television viewing
US9071797B2 (en) 2008-05-23 2015-06-30 At&T Intellectual Property I, Lp Systems and methods for remote access to programming information
US8370396B2 (en) * 2008-06-11 2013-02-05 Comcast Cable Holdings, Llc. System and process for connecting media content
US8875181B2 (en) 2008-08-05 2014-10-28 At&T Intellectual Property I, L.P. Method and system for presenting media content
US8458153B2 (en) * 2008-08-26 2013-06-04 Michael Pierce Web-based services for querying and matching likes and dislikes of individuals
US20100070995A1 (en) 2008-09-15 2010-03-18 Yang Pan System and method of rendering advertisements by employing switching-on screen of television
US20100077435A1 (en) * 2008-09-24 2010-03-25 Concert Technology System and method for smart trick mode display
US7752265B2 (en) * 2008-10-15 2010-07-06 Eloy Technology, Llc Source indicators for elements of an aggregate media collection in a media sharing system
US8321401B2 (en) 2008-10-17 2012-11-27 Echostar Advanced Technologies L.L.C. User interface with available multimedia content from multiple multimedia websites
US7966641B2 (en) * 2008-10-23 2011-06-21 Sony Corporation User identification using Bluetooth and audio ranging
US8875183B2 (en) * 2008-10-31 2014-10-28 International Business Machines Corporation Intelligent TV mosaic for IPTV
US8386954B2 (en) 2008-11-21 2013-02-26 Microsoft Corporation Interactive media portal
US8407733B2 (en) 2008-12-19 2013-03-26 General Instrument Corporation Method and apparatus for establishing individualized subscription plans in a switched digital video system
US8862691B2 (en) 2008-12-22 2014-10-14 Microsoft Corporation Media aggregation and presentation
US20100162314A1 (en) * 2008-12-23 2010-06-24 Meare David P Enhanced electronic program guides, systems and methods
US8572645B2 (en) 2009-01-18 2013-10-29 Lg Electronics Inc. IPTV and method for controlling emergency alert system widget in IPTV
US8375409B2 (en) 2009-02-05 2013-02-12 Purplecomm Inc. Meta channel based media system control technology
US9088757B2 (en) 2009-03-25 2015-07-21 Eloy Technology, Llc Method and system for socially ranking programs
US20120117632A1 (en) * 2009-04-29 2012-05-10 Eloy Technology, Llc Method and system for authenticating a data stream
US8850328B2 (en) * 2009-08-20 2014-09-30 Genesismedia Llc Networked profiling and multimedia content targeting system
US9445158B2 (en) 2009-11-06 2016-09-13 Eloy Technology, Llc Distributed aggregated content guide for collaborative playback session
US8631428B2 (en) * 2009-11-30 2014-01-14 Charles Scott System and method for displaying media usage
WO2011156783A2 (en) * 2010-06-10 2011-12-15 Cricket Communications, Inc. Mobile handset for media access and playback
US20120117026A1 (en) * 2010-06-10 2012-05-10 Cricket Communications, Inc. Play list management
US8789096B2 (en) * 2011-04-27 2014-07-22 Echostar Technologies L.L.C. Apparatus, systems and methods for transmitting media content events
US9854318B2 (en) * 2011-06-06 2017-12-26 Rovi Guides, Inc. Systems and methods for sharing interactive media guidance information
US9076259B2 (en) * 2011-09-14 2015-07-07 Imagine Communications Corp Geospatial multiviewer
US20140245334A1 (en) * 2013-02-26 2014-08-28 Rawllin International Inc. Personal videos aggregation
US9716737B2 (en) * 2013-05-08 2017-07-25 Qualcomm Incorporated Video streaming in a wireless communication system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5343239A (en) * 1991-11-20 1994-08-30 Zing Systems, L.P. Transaction based interactive television system
US5682195A (en) * 1992-12-09 1997-10-28 Discovery Communications, Inc. Digital cable headend for cable television delivery system
US20040181811A1 (en) * 2003-03-13 2004-09-16 Rakib Selim Shlomo Thin DOCSIS in-band management for interactive HFC service delivery

Also Published As

Publication number Publication date
US20120117598A1 (en) 2012-05-10
US20120117471A1 (en) 2012-05-10
US9083932B2 (en) 2015-07-14
US9015757B2 (en) 2015-04-21
US20120117595A1 (en) 2012-05-10
US9288540B2 (en) 2016-03-15
US20120114312A1 (en) 2012-05-10
US20150326938A1 (en) 2015-11-12
US20160196025A1 (en) 2016-07-07
US20120117581A1 (en) 2012-05-10
US9088757B2 (en) 2015-07-21

Similar Documents

Publication Publication Date Title
US9015757B2 (en) Merged program guide
US20180332330A1 (en) Systems and methods for mirroring and transcoding media content
US10034054B2 (en) Systems and methods for providing remote access to interactive media guidance applications
US20120114311A1 (en) Method and system for distributing the recording of a media item
US8315502B2 (en) Systems and methods for selective archival of media content
EP3507989B1 (en) System and method for managing series recordings as a function of available storage
US20100005496A1 (en) interactive media guidance system having multiple devices
US20070157266A1 (en) Interactive media guidance system having multiple devices
CN111492393A (en) System and method for providing recommendations based on short media viewing profiles and long media viewing profiles
US20150156529A1 (en) Systems and methods for selectively transmitting user interaction information based on biometric information
US11711559B2 (en) Systems and methods for optimizing content viewing using digital rights of multiple users
US20140373046A1 (en) Programming Filter
WO2017151545A1 (en) Systems and methods for synchronizing media asset playback on multiple devices
US20230308711A1 (en) System and method for classifying recorded content for deletion
US20240015356A1 (en) Systems and methods for retrieving segmented media guidance data
US20120036536A1 (en) Systems and methods for updating information in real time for use in a media guidance application
US20190342608A1 (en) Methods and systems for providing uncorrupted media assets
US20120033943A1 (en) Systems and methods for updating information in real time for use in a media guidance application
AU2014203238B2 (en) Systems and Methods for Providing Remote Access to Interactive Media Guidance Applications
AU2012202334B2 (en) Systems and Method for Providing Remote Access to Interactive Media Guidance Applications

Legal Events

Date Code Title Description
AS Assignment

Owner name: ELOY TECHNOLOGY, LLC, DELAWARE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PONS, JUAN A.;SVENDSEN, HUGH;FARRELLY, EUGENE MATTHEW;AND OTHERS;SIGNING DATES FROM 20100324 TO 20100325;REEL/FRAME:035687/0214

AS Assignment

Owner name: CONCERT DEBT, LLC, NEW HAMPSHIRE

Free format text: SECURITY INTEREST;ASSIGNOR:ELOY TECHNOLOGY, LLC;REEL/FRAME:036473/0108

Effective date: 20150501

Owner name: CONCERT DEBT, LLC, NEW HAMPSHIRE

Free format text: SECURITY INTEREST;ASSIGNOR:ELOY TECHNOLOGY, LLC;REEL/FRAME:036472/0875

Effective date: 20150801

AS Assignment

Owner name: CONCERT DEBT, LLC, NEW HAMPSHIRE

Free format text: SECURITY INTEREST;ASSIGNOR:CONCERT TECHNOLOGY CORPORATION;REEL/FRAME:036515/0471

Effective date: 20150501

Owner name: CONCERT DEBT, LLC, NEW HAMPSHIRE

Free format text: SECURITY INTEREST;ASSIGNOR:CONCERT TECHNOLOGY CORPORATION;REEL/FRAME:036515/0495

Effective date: 20150801

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: NAPO ENTERPRISES, LLC, NEW HAMPSHIRE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ELOY TECHNOLOGY, LLC;REEL/FRAME:042834/0085

Effective date: 20170404

AS Assignment

Owner name: CONCERT TECHNOLOGY CORPORATION, NEW HAMPSHIRE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NAPO ENTERPRISES, LLC;REEL/FRAME:051457/0503

Effective date: 20191203