US 20080184322 A1
The present invention is directed to a television schedule guide with enhanced recording capability. Specifically, the invention allows a user to schedule the recording of a television program from a remote location. In one embodiment, a user may call via telephone to schedule the recording. In another embodiment, the user may access a website to remotely schedule the recording.
5. A system comprising:
a server accessible to a user;
a device accessible by the server;
wherein, the server is configured to receive input from the user, the input including a selection of a content from a plurality of contents that will be sent to the device and a request to record the content and in response to the input, the server is configured to set up the device to record a future broadcast of the content.
This application is a continuation of U.S. patent application Ser. No. 10/241,112, filed on Sep. 10, 2002, which is a continuation of U.S. patent application Ser. No. 08/922,212, filed on Sep. 2, 1997 which claims the benefit of U.S. Provisional application No. 60/025,339 which was filed on Sep. 3, 1996.
The present invention relates to a system for providing media schedule information, and more particularly to a television schedule system with enhanced recording capability.
Systems are available for providing television schedule information to a user. For example, U.S. Pat. No. B1 4,706,121 (Young), provides a television schedule system and process. The system disclosed in the Young patent receives television schedule information as a broadcast. In one embodiment of Young, the television schedule information is provided on the user's television screen. The user can then supply selection criteria which are utilized by the Young system to make program selection, to control the television schedule information displayed on the television screen, etc. In addition, Young discloses a system which controls a television receiver to allow for user selection of programs and the automatic, unattended recording of programs that are listed in the television schedule information. The automatic, unattended recording of programs is achieved by controlling a video tape recorder (VCR) or other recording device.
For more information on the systems mentioned, see U.S. Pat. No. B1 4,706,121; and U.S. patent application entitled “TELEVISION SCHEDULE SYSTEM”, having Brian L. Klosterman, Sean A. O'Brien, Kenneth A. Milnes and Steven M. Schein listed as co-inventors (Attorney Docket No. 14774-34). Both the patent and the patent application, like the present patent application, are assigned to StarSight Telecast, Inc. (StarSight). U.S. Pat. No. B1 4,706,121 and U.S. patent application by Klosterman et al. are hereby incorporated by reference in their entirety for all purposes.
The present invention provides an interactive schedule system with enhanced recording capability.
In a preferred embodiment, the system allows users to schedule recordings from a remote location. The user may use a telephone or a computer to schedule the recording of a program. To designate which program to record, the user may enter a predetermined program code or ID that corresponds to the starting time, ending time, channel, date, and time of the program. Alternatively, the user may enter the starting time, ending time, channel, date, and time information directly.
In another preferred embodiment, the user need only enter the title of the program to schedule the recording. Finally, the user may select programs to record according to themes.
According to an aspect of the invention, a television schedule system with enhanced recording capability is provided, comprising: a central processor capable of receiving and processing user input to determine program data associated with a program desired to be recorded; an input device capable of transmitting the user input from a location remote from the processor; and a recording device for recording programs, wherein the processor causes the recording device to record the program.
According to another aspect of the invention, a method of recording a program is provided, comprising the steps of: processing user input received from a remote location using a processor to determine program data associated with a program desired to be recorded; transmitting commands associated with the program data to a recording device in a second location remote from the processor; and recording the program with the recording device in response to the commands.
According to yet another aspect of the invention, a television schedule system with enhanced recording capability is provided, comprising: an input device capable of transmitting user input; a receiver in a first location remote from the input device for receiving the user input; a processor, coupled to the receiver, for processing the user input to determine program data associated with a program desired to be recorded; a memory, coupled to the processor, for storing the program data; and a recording device for recording programs, wherein the recording device records the program after receiving commands from the processor.
According to a further aspect of the invention, a method of scheduling recordings in a television scheduling system is provided, comprising the steps of: transmitting user input using an input device; receiving the user input with a receiver in a first location remote from the input device; processing the user input using a processor coupled to the receiver to determine program data associated with a program desired to be recorded; and storing the program data in a memory coupled to the processor.
Other features and advantages of the present invention will become apparent to those skilled in the art upon a perusal of the remaining portions of the specification and drawings. In the drawings, like reference numerals indicate identical or functionally similar elements.
In yet another embodiment, peripheral devices, which are located within the receiving locations, receive the data stream from, for example, a local service provider 40. Service provider 40 receives the data stream from distribution center 10 via line 17, and broadcasts the data stream to the receiving peripheral devices via satellite 15 (or other satellites), or via lines 19 and 13. The receiving peripheral devices may be televisions 30, televisions 34, VCRs 32, VCRs 36, and/or cable, satellite IRD, web-browser or set-top boxes 38. VCRs 32 and 36 may alternatively be any recording device capable of recording on a recordable medium such as a recordable digital video disk (DVD) or optical disk.
Information in the data stream may include television schedule information. Software applications located within the peripheral devices utilize the schedule information provided in the data stream to generate a schedule guide. The electronic program guide of the present invention may be implemented on a personal computer, a PCTV, a television connected to a set-top box, or a television including a custom board. However, the invention is not limited to any particular hardware configuration and will have increased utility as new combinations of computers and television systems are developed. In the following any of the above will be referred to as a “TV system”. A block diagram of a representative TV system is depicted in
As is well known, the picture to be displayed on a TV may be transmitted as an analog signal, for example according to the NTSC standard utilized in the United States, or as a digital signal modulated onto an analog carrier. The signals may be received over a cable 80, or via an antenna 82 or satellite dish 84. Typically, television sets are designed to receive analog signals and computer display devices are designed to display pictures encoded in a digital format. However, decoder system 86A can convert the digital data to an analog signal for display on a television set, and TV modem 86B can format analog TV signals for display on a PC monitor.
If the TV is a PCTV 90, it typically includes a TV card 92, connected to either live video, baseband video, or channel 3/4 output. TV card 92 digitizes the video image and displays the video image in a resizeable window on the computer monitor. PCTV 90 may also be coupled to land telephone lines by a modem 94. If the received signal is an analog TV signal, the TV card of the PCTV digitizes the analog signal and extracts included information from the vertical blanking intervals. On the other hand, if the signal is a digital signal, separate audio, video, VBI (information such as closed caption, teletext, and program related information), program guide, and conditional access information are provided as separate bit-streams.
The video and audio bit-streams for programs are converted to a format for display and the program guide information is processed to form the program guide database. The processor, executing software stored in memory, generates interactive electronic program guide images, as well as images of received programs. The guide can be used to interact with and control programs displayed in the window.
A television system configured to display an electronic program guide such as a guide provided by StarSight Telecast includes an on-screen display controller and other hardware described below. If a standard analog broadcast signal is received, program guide data is extracted from the VBI by a VBI data slicer and processed to form a program database. If a DBS digital signal is received, either from a satellite or cable, VBI and program data are provided in separate bit streams.
The program guide images are either generated locally or remotely and provided to an on screen display controller. Interactivity is provided via a remote control, mouse or keyboard, for example. Alternatively, the program guide can be displayed on a computer monitor of a computer system that interactively controls the television set through, for example, an IR interface including an IR blaster to generate IR codes to control the television and/or a VCR.
If the electronic guide database is generated locally, the system for creating the electronic programming guide must receive television schedule information and process the received information to create a database. Thus, the system requires, a data reception unit, a processor, memory to store program code and a database, an on-screen display (OSD) generator, and a control interface for tuning to selected channels.
In one embodiment, the schedule information is transmitted as a set of short commands of specified formats. Different commands communicate information such as a show schedule for a given channel, the title of each show in the schedule, descriptions and information attributes about each show in the channel. Thus, information for a show to be broadcast at a particular time is transmitted in several commands. ID numbers in the commands facilitate organizing the information into a relational database utilizing database engine (DBE) software stored in memory and executed by the processor.
In another embodiment, a board is included at a viewer's television set and the database is stored locally and commands are transmitted in the VBIs of programming on a designated channel, for example PBS. An example of a board for receiving program guide information, generating program guide database, displaying the program guide, and interactively controlling the program guide is depicted in
The DBE builds a hierarchical database in the RAM. The hierarchical structure of the database is depicted in
In another embodiment, for example in a DSS system, program guide data is transmitted as a bit stream that is processed by the database engine. Additionally, a N.E.W.S. (new, entertainment, weather, and sports) database has been developed. Commands including story text and story IDs are transmitted. Links from the program guide to stories related to a program can be created and the related stories can be accessed from the guide.
Art advertisement (ad) database is also created from commands including advertising text and logos including IDs for linking the ads to shows displayed in the EPG. The user may therefore access the advertising information directly from the guide.
An internet database is also created from commands including URLs to internet sites related to programs displayed on the EPG. If the viewer is viewing the EPG on a platform that is Web enabled, e.g., WebTV, a PC, or PCTV, then a linked site can be accessed directly from the EPG.
Additionally, a graphics program module builds various displays utilizing schedule, show title, and other information from the database. If the OSD controller operates in the character mode, the display is a grid of character codes that are transferred to the OSD controller, which generates the on-screen display.
An input-response user interface program module responds to user input to generate new displays responsive to the particular input. In one preferred embodiment, the user utilizes an input device, e.g., a remote control, mouse, or keyboard, to place a pointer over a portion of the current display and to select that portion by ‘clicking’. The input-response module responds to the position of the pointer and the particular display currently displayed to generate a responsive display or take a particular action. In another preferred embodiment the user interface responds to function buttons on a remote control or keyboard. Specific examples will be described below.
The on-screen display controller and formatter (OSDCF) 124 functions as an I/O controller, an on-screen display (OSD) controller, and also as a closed-caption data (CCD) VBI data slicer. The VBI is a dead space in a TV signal that allows a television signal to reposition the scanning electron beam from the bottom to the top of the screen. Digital data, for example close-captioned data, is modulated onto the carrier signal during the VBI.
The OSDCF 124 includes an analog to digital convertor (ADC) which digitizes the incoming baseband video and extracts digital information transmitted in the VBIs. As explained more fully below, messages for transmission to the database are transmitted in the VBIs. These messages are transferred to processor 100, which executes a database engine process to build or update the database.
The OSD part of the OSDCF 124 includes cache memory, character memory, timing functions, and an external RAM. The OSD reads high level graphic commands sent from the processor 100 and stores graphic information in the RAM. The OSD outputs red (R), green (G), blue (B), graphic data which is used to generate a local video signal. Depending on the state of the user input interface, described below, the OSD local video output or the incoming live video will be displayed.
Accordingly, screen display graphic data generated by the database engine is transferred to the RAM of the OSD, which generates a local video signal that causes the display screen to be displayed on the television screen.
As mentioned, the DBE builds a hierarchical database in the RAM.
In an embodiment, the hierarchy for the schedule data structures, in descending order is:
A channel data table, depicted in
The next data structure in the hierarchy is the show list depicted in
The database, when fully constructed, holds a week's worth of show lists for each channel. The days of the week are accessed by incrementing the show list handle by two bytes. The show lists are updated each day at midnight GMT with the show list for the day just completed being deleted and the show list for same day next week being added to the database.
The next data structures in the schedule hierarchy are the show title entries, depicted in
Each show title entry includes a theme index ID and the text of the show title. Typically, a single show title entry will be referenced by many show lists for different channels, days, and times. Thus, by utilizing handles in the show lists all show lists reference a single show title entry in memory so that memory is efficiently used. Many show title entries have a long life because the show titles may be for series that are broadcast over long periods of time and may be referenced by many showlists since many shows are broadcast by multiple channels.
Each show description entry includes a theme index ID, critics rating, MPAA rating for the show, traits mask bits, year produced, and show description text. Show description entries tend to have a shorter life than show title entries because a description is only valid for a particular episode of a series.
To obtain schedule information for a particular time and to display the schedule information in the programming grid requires the following steps. For each channel in the channel list, the show list for the day is accessed and scanned. Horizontal blocks for the channel are sized according to the duration of the show slots including and following the selected time. The show title entry referenced by each show slot is accessed and the show title is displayed in the horizontal block corresponding to the show slot.
A powerful feature of the database is the ability to group shows by theme. The theme IDs stored in the show title and show description entries are utilized to match particular shows to particular themes. For example, a viewer may want to see a listing of all comedy movies.
Each primary category, movies in the example above, has a theme category entry included in a theme category table, depicted in
There is a theme sub category table, depicted in
When the viewer initiates a search for a particular type of show, for example a comedy movie, each channel is inspected and theme IDs of each show listed are compared to theme IDs stored in the comedy entry of the theme sub-category table corresponding to the movie primary category entry. Information about shows with matching theme IDs is stored in a theme search data structure in a user interface local buffer.
The theme search function requires two calls to the database. The first of these calls initializes the theme search data structure to the first show that matches the theme category for a specific channel entry, including the show's starting time relative to, or offset from, the search time. The second call will find the next matching show after a particular offset time, updating the search data structure and returning the starting offset of this next matching show.
The basic algorithm for the theme user interface access is:
The shows for the selected category are then displayed in time order.
An ad list data structure is similar to the show list.
It includes a start time and 24 hours of ad scheduling. The ad list is regionalized and includes an ad slot for each ad to be broadcast for a given day. The ad slot includes a duration and an Ad ID utilized to access an ad entry.
Each ad entry includes an ad banner text field, an ad text field, and a pointer to an ad logo, if appropriate. The ad logo includes a graphics file to be displayed with the ad. The ad entries include the ad banner text, and the ad text.
The data base is built by a data base engine software module operating on the processor. Messages comprising discrete commands are received by the database engine. Examples of commands include a Region Command which specifies channels available for a particular subscriber unit to be included in the Channel Data Table; a Channel Data Command including information utilized to form the entries in the Channel Data Table; and Showlist, Show Title, and Show Description Commands including SIDs and DIDs referencing areas in memory. The database engine selects only Showlist Commands relevant to channels included in the Channel Data Table for further processing.
The data base engine creates storage locations in memory for all SIDs and DIDs included in any Showlist. Information included in commands having matching SIDs or DIDs is written to the referenced memory area. In practice the SIDs and DIDs are processed by a hashing system for more efficient searching.
The messages may be transmitted to a subscriber unit in various ways. A system for receiving messages in the VBIs of broadcast programming has been described above. In a DBS system the messages may be transmitted in a dedicated bit stream. Alternatively, the database itself may be transmitted in a digital data stream. For example, in DSS, the program guide information is transmitted in blocks of 3 hours of programming for 36 channels. Programming is digitally modulated onto different bands. As depicted in
When the viewer accesses the guide, the block for that time period is loaded into memory so that the user can interact with the guide. For a future time and different channel there may be time delay. For example, if the current programming block were B1 and the block currently received is B4 the user must wait for blocks B5, B6, and B7 to be transmitted before the current programming can be received and displayed. The viewer would wait for a time delay equal to the sum of time durations for transmitting each block, i.e., d5+d6+d7. If the program guide block is modulated onto a different band the cable box must tune to the band and wait until the desired block is transmitted. Hence, if the guide is accessed for future programming, there could be a delay before the desired data is received.
For cable, the database is built at the SST head end and sent over land-lines to the cable head end. Cable company sends data anyway it wants, for example, via VBIs, satellite, digital data bit stream, and the like.
The guide user interface (GUI) takes remote control commands as its primary input. In one embodiment, a user requests various functions by pressing function buttons on a remote control or direct input device such as a keyboard. In another embodiment, the GUI is utilized with different interactive regions on a displayed screen corresponding to different functions. The user moves the cursor over the interactive region corresponding to a desired function and selects the function to generate a command. The particular form of entering a command will vary according to the device and interface. Technology for utilizing voice commands may soon be available, for example.
The user interface receives commands and responds by presenting the requested display screen and/or by performing the function requested by the command. The function performed may be an action such as recording a program, tuning to a channel, accessing a related internet site, purchasing a pay-per-view program, or purchasing merchandise. The data and format of each screen is dependent on the previous screen, time of day, the contents of the data base, the command received, and other parameters. A state table is used to define the screen flow.
For every defined screen, there is an entrance function, an exit function, an update function, and an array of request-handling functions. The entrance function is called when a state is first entered to collect all necessary data and format the screen. The exit function is called to release memory and data for the screen. The update function is called once per minute to update the screen time and to re-draw or re-render the screen if any information displayed on the screen needs to be updated.
Once in a particular state, the table contains a reference to another software function corresponding to each key on the remote control unit, or the direct input device, or to each interactive region on the screen. These referenced functions will be executed whenever an associated remote control button is pressed or interactive region is selected.
For example, if the user wishes to record a program, in the GUI embodiment, the viewer may move the cursor over to the record interactive region, which is then selected to request that the recording function be performed. A confirmation screen will then be generated. Once the user confirms the recording request, an entry is made in a recording queue. A record daemon is then called from the real-time executive to examine the queue and manage recording functions.
The screens are displayed by an on-screen display (OSD) controller based on graphic display commands issued by the database engine. Among the commands needed to draw system display screens are the Erase Screen Command, Draw Rectangle Command, Save Rectangle Command, Restore Rectangle Command, Move Rectangle Commands, Write ASCII String Command, and Draw Channel Icon Command.
Each screen includes areas that are constant (which are based on code and data stored in non-volatile memory), and variable areas such as show titles and descriptions which utilize data stored in the database. As described above in the description of the database engine, the database is structured to facilitate efficient searching for information, generally in the form of ASCII text strings, stored in the database. In addition, graphics files are also being stored in the database to be displayed in windows of the display screen.
By utilizing the user interface, a user may sort, mix, and create a special customized line-up of channels within the television schedule guide displayed on the television screen. The user may tune to a program within the schedule guide by highlighting the program within the guide and selecting the program. The user may also select one or more desired programs which are listed in the schedule guide for automatic, unattended recording.
As described in the above-referenced patents, the peripheral devices include a schedule data structure wherein time and channel information entries for programs to be recorded are stored in time slots of the schedule data structure. A system calendar/clock outputs time and date information to the system processor. A scheduler program checks time slots in the schedule data structure for selected increments of time. If a time slot for the time currently indicated by the clock indicates that a program is to be recorded then the channel broadcasting the program is selected and the VCR is controlled to record the program.
The present invention enhances the recording capability of the schedule guide by allowing the user to schedule recordings from a remote location. Referring to
Alternatively, the user may enter the starting time, ending time, channel, date, and time information directly. Central processing system 34 preferably also requests confirmation from the user, and stores the information upon receipt of user confirmation. Recording device 336 at the user's home will be activated at the appropriate time. Recording device 336, in one embodiment, is a VCR, but may be any device with video and\or audio recording capabilities.
The processor, in response to the user selecting automatic, unattended recording via the user interface, stores the channel that broadcasts the selected program in the appropriate time slot of the schedule data structure.
In another preferred embodiment, the user need only enter the title of the program that the user wishes to record. Processing system 334 has the capability to look up the starting time, ending time, date, time, and channel information of the program. System 334 preferably requests user confirmation after looking up the relevant information. Upon receipt of user confirmation, system 334 stores the relevant information, and will activate recording device 336 at the appropriate time. The system stores the relevant information in the schedule data structure.
In yet another preferred embodiment, the user may select a program to record according to themes. Examples of themes which the user may select from include sports, movies, science fiction, sit-coms and the like. Selecting by themes is particularly helpful when the user is not quite sure of the title of the program, or when the user desires to record a sports event. For example, if the user wishes to record the Chicago Bulls v. LA Lakers game, the user may first choose to select program by themes. The user may then select sports when presented with a list of theme selections, and further select basketball. The user may be presented with a list of basketball games which are currently being played or are scheduled to be played, and the user may then choose the Bulls vs. Lakers game. Alternatively, the user may enter Bulls, and processing system 334 will present a list of Bulls games to the user, and the user may select one or more of the games to record. After the user has made his/her selection(s), processing system 334 preferably confirms the user's selection(s), and stores the information upon receipt of user confirmation. At the appropriate time(s), processing system 334 will activate recording device 336 at the user's home to record the game(s).
In another preferred embodiment, input device 332 may be a computer. In this embodiment, instead of calling central processing system 334, the user may access a web site which is connected to processing system 334 to enter the user's selection. In this embodiment, the user may also select which program to record by entering a predetermined program code; directly entering the starting time, ending time, channel, date, and time information of the program; entering the title of the program; or by selecting the program according to themes. Processing system 334 preferably asks for user confirmation, stores the user selection upon receipt of user confirmation, and activates recording device 336 at the appropriate time to record the appropriate program. Alternatively, the user may log on or telnet to an account connected to central processing system 334 to make his or her selections. The user may also send recording requests via e-mail to an account connected to processing system 334.
While a full and complete disclosure of the invention has been provided hereinabove, it will be obvious to those skilled in the art that various modifications and changes may be made. Accordingly, the disclosures and descriptions herein are illustrative, but not limiting, of the scope of the invention which is set forth in the following claims.