Detailed Description
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It may be evident, however, that the subject invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
In the following discussion, with respect to the figures, like reference numerals refer to like parts throughout the different views.
Embodiments are described herein according to the following outline:
1.0 general overview
2.0 System structural overview
3.0 example techniques and methods
3.1 unified search for broadband and broadcast multimedia content
3.2 identifying multimedia content
3.3 Filtering search results for broadband and broadcast multimedia content
3.4 partial Listing and indicators
3.5 one-touch recording and wish List
3.6 live or delayed broadcasting
4.0 implementation mechanisms-hardware overview
5.0 examples
1.0 general overview
The embodiments of the present invention summarized above, as well as some alternative embodiments of the present invention, are described in detail below. Although an embodiment of the present invention will be described below in terms of a DVR, in alternative embodiments of the present invention, a device other than a DVR may replace a DVR and may perform operations similar to those performed by a DVR.
In an embodiment, the server receives a search request of the client system and performs an integrated search on a database containing information data of broadcast content and broadband content using the received search criteria. The service may be owned or operated by a service provider, a third party, or the like. The owner of the client device pays a service provider, third party, etc. to use the database search service, content record scheduling, content download service, etc. The user enters search criteria on the client device. The client device may be, for example, a DVR, a set-top box, a cell phone, a handheld device, a laptop, a PC, etc.
The client device forms (formulates) a given search request entered by the user and sends the search request to the server. The server receives the search request from the client device and forms a query of at least one broadband database and at least one broadcast database. The broadband database is comprised byData from a partner of the service provider, such as: com, Rockeboom, Amazon, Rockeboom,The New YorkThe broadband database may be present in the server of each partner. The server queries the database of each collaborator with a consistent query created by the server using information about the type of database query required by the database of each collaborator. The data in the broadband database includes links to multimedia content that may be downloaded from the partner. The data also includes information describing the multimedia content, such as: program description, program profile, program rating, actors, director, production, program title, price, etc., as well as search data tags.
In an embodiment, the partner pays the service provider to place data into the database or have the server search their database. For example, the partner may pay a fixed fee or a fee based on the number of times the server queries the partner's database.
The broadcast database contains media services from, for example, TribuneData of an Electronic Program Guide (EPG) provider. EPG data describes available programs from many different broadcasters and service companies, e.g.CableAnd the like. EPG data contains information describing programs such as the channel on which the program is being played, program descriptions, program profiles, program ratings, actors, directors, production, program titles, etc., as well as search data tags.
The server performs searches in both databases using the search queries it creates. The database may be a database directly accessible by the server or a database server controlling the database or other database server. The server receives or generates results from the search query and organizes the retrieved information into a format that can be used by the client device.
In an embodiment, the server also accesses a database of client devices it owns, where the server stores information about the state of all client devices in communication with the server. The client database includes, among other information, multimedia content that the client device has recorded. In the search results, the server can include information relating to broadband content, multimedia content, which can be downloaded from other client devices. The client devices are capable of requesting downloads of multimedia content from the multimedia client devices and receiving segments of the multimedia content from those client devices.
The client device receives the search results from the server. The client device processes the search results and displays the search results to the user in the form of a list. The server creates a user interface screen for the client device for display. Each time the client device sends a search request to the server, the server formats the data received from the database search into a user interface screen that the client device is capable of displaying. The client device receives the user interface screen and displays the screen formatted by the server. The screen information indicates to the client device how it responds to the user's arbitrary key presses.
In embodiments, the client device may request a search for multimedia content, request a download or schedule a recording of the requested multimedia content. The multimedia content may be pre-stored in one or more databases. The client device may effect downloading or scheduling the recording of the multimedia content in one step, such as a one-touch. When desired multimedia content is not available, the multimedia content is added to the client device's wish list. The wish list of the client device may be created on-the-fly if it has not already been created. When a recording of multimedia content is scheduled, the tags corresponding to the multimedia content are checked to determine whether the multimedia content is live or delayed. When the tag indicates that the multimedia content is live or delayed, the client device prompts a suggestion to add additional time at the end of the recording process of the multimedia content.
2.0 System structural overview
FIG. 1 depicts an example system of an embodiment. The system includes at least one client device, such as DVR102, with DVR102 being communicatively coupled to network 105 through any communication interface, such as an Ethernet interface or a wireless communication port. The functionality of a DVR is typically as described in patent nos.: 6233389 which is owned by the applicant and is incorporated herein by reference. The system also includes a service provider 104, a content provider 106, a personal computer 108, and a portable device 110.
Personal computer 108 may be a personal computing device such as a desktop or laptop computer and is also connected to network 105 via any communication interface, including wireless. The portable device 110 may be any handheld computing device, cell phone, portable multimedia player, or any other portable device capable of displaying multimedia content and also connected to the network 105 through any communication interface, including wireless. DVR102, personal computer 108, and portable device 110 are each communicatively coupled to service provider 104 via network 105. In another embodiment, DVR102, personal computer 108, and portable device 110 are each communicatively coupled to content provider 106 via network 105.
Network 105 may be implemented by any medium or mechanism that provides for the exchange of data between devices in a communication system. Examples of network 105 include, but are not limited to, a network such as a Local Area Network (LAN), a Wide Area Network (WAN), the internet, one or more terrestrial, satellite, or wireless links, etc. Alternatively or additionally, any number of devices connected to the network 105 may be directly connected to each other via a communication link.
In one embodiment, content provider 106 provides DVR102 with broadcast programming content via cable, satellite, terrestrial, or other transmission devices. The broadcast program content may include any multimedia content such as: audio, image or video content. In another embodiment, content provider 106 provides multimedia content, such as any downloadable content, to DVR102, personal computer 108, or portable device 110 via network 105.
In one embodiment, DVR102 is communicatively coupled to a service provider 104 that provides program guide data, drawing resources (e.g., fonts, pictures, etc.), service information, software, advertisements, event identification data, and other forms of data that enable DVR102 to operate independently of service provider 104 to meet user interests. In another embodiment, DVR102, personal computer 108, and portable device 110 may be communicatively coupled to each other via network 105, a communication connection, or any local network to transfer content, media data, or any other data.
In another embodiment, the content provider 106 may provide content data or any metadata to the service provider 104, including promotional data, icons, network data, and other information. Service provider 104 may then interpret the metadata and provide the content data and metadata to DVR102, personal computer 108, or portable device 110.
As shown in fig. 2, in an embodiment, DVR102 generally includes a number of components, which are hosted by signal converter 254, that are necessary to digitize an analog television signal and to convert the analog television signal into a digital data stream or to receive a digital data stream. An example of the internal structure and operation of a DVR is further described in U.S. patent No. 6233389.
DVR102 receives a broadcast signal from an antenna, a cable television system, a satellite receiver, etc., via input 252A. Input 252A may include multiple tuning modules that allow for the simultaneous reception and recording of multiple signals. For example, the television input stream received by input 252A may be a National Television Standards Committee (NTSC) compliant signal or a PAL compliant broadcast signal. As another example, the television input stream received by input 252A may be a digital signal, such as a Digital Satellite System (DSS) enabled signal, a Digital Broadcast Service (DBS) enabled signal, or an Advanced Television Standards Committee (ATSC) enabled signal. DBS, DSS, and ATSC are based on standards for motion Picture experts group 2(MPEG-2) and MPEG-2 transport protocols. The MPEG-2 transport protocol is used in standards for formatting digital data streams from television resource transmitters to enable television receivers to decompose the input stream to find programs in a multiplexed signal.
MPEG-2 transport multiplexing supports multiple programs in the same broadcast channel with multiple video and audio seeds and proprietary data. Input 252A tunes to a particular program in a channel, extracts a specified MPEG stream from the channel, and transmits the MPEG stream to other parts of the system. Analog television signals are encoded into a similar MPEG format using separate video and audio encoders so that the rest of the system does not need to know how the signal was obtained. Information may be modulated into the Vertical Blanking Interval (VBI) of an analog television signal in a number of standard ways; for example, the south american broadcast television standard (NABTS) may be used to modulate information onto a particular line of an NTSC signal for which the FCC mandates the use of another particular line for Closed Caption (CC) and Extended Data Services (EDS). Such signals are decoded by input 252A and passed to other modules as if the signals were sent over an MPEG-2 personal data channel.
The recording module 260 records the incoming data stream by storing the digital data stream on at least one storage device, represented by memory 264A/264B, designed to retain segments of the digital data stream. The memory 264A/264B may be one or more non-volatile storage devices (e.g., hard disk, solid state drive, USB external hard disk, USB external memory stick, USB external solid state drive, network-usable storage device, etc.) that are internal 264A and/or external 264B. Signal converter 254 recovers a segment of the data stream, converts the data stream to an analog signal, and then modulates the signal onto an RF carrier via output 252B, where it is delivered to a standard television set. The output 252B may alternatively transmit the digital signal to a television or video monitor. For example, DVR102 may send digitized signals to a television via a DVI cable using a digital visual interface port (DVI).
DVR102 also includes a communication interface 262 through which DVR102 communicates with network 105 via an ethernet, wireless network, modem, USB, or other communication standard. Moreover, DVR102 may be integrated into a television system such that the aforementioned components are included within a television that is capable of performing the functions of each of the components of DVR 102.
In another embodiment, DVR102 generally comprises a plurality of components necessary to receive, record, store, deliver, and playback digital data signals from a plurality of sources, such as a PC, DVR, service provider, or content server. DVR102 is capable of communicating digital data signals to another DVR or PC. DVR102 may encode or decode the digital signals into a variety of formats for playback, storage, or delivery via encoder 256A and decoder 256B. According to one embodiment of the invention, encoder 256A generates an MPEG stream. According to another embodiment of the present invention, encoder 256A generates streams that are encoded by different codecs. Decoder 256B decodes the stream encoded by encoder 256A or stored in the received format using an appropriate decoder. DVR102 may also encrypt or decrypt digital data signals using encryptor or decryptor 258 for storage, delivery, or playback of the digital data signals.
In one embodiment, DVR102 communicates with service provider 104, which provides program guide data, drawing resources such as trademarks and pictures, service information, software programming, advertisements, and other forms of data that enable DVR102 to operate independently of service provider 104 to perform autonomous recording functions. Communication between DVR102 and service provider 104 utilizes a reliable distribution mechanism to transfer data between DVR102 and service provider 104 such that both service data and user privacy are protected.
3.0 example techniques and methods
3.1 unified search for broadband and broadcast multimedia content
According to one embodiment, an advanced DVR (e.g., DVR 102) allows a user to search for multimedia material in both broadcast and broadband sources. The user forms search criteria (by directly entering or selecting menu items) and instructs the DVR to perform the requested search. The user generally does not have to be concerned with searching for broadcast content or broadband content. Embodiments automatically perform multiple searches in different resources using user search criteria. Once the user is presented with a list of available broadcast or broadband content that matches his search, the user can peruse the list of available content to obtain more information or schedule a recording or download of particular content. The ability to search for multimedia content in broadcast and broadband resources is unique to the present embodiment.
Fig. 3 shows a server 304 that receives a search request from a client system and performs an integrated search in a database containing information data for broadcast content and broadband content using received search criteria. The server 304 may be a server that performs a search in the databases 301 and 303. The server 304 may also be comprised of a plurality of web services Application Program Interfaces (APIs) that service client requests. The service 304 may be owned or operated by a service provider, a third party, or the like. The owner of the client device, such as client device 305, needs to pay a service provider, third party, etc. to use the database search service, content recording arrangement, content download service, etc. The user enters search criteria on the client device 305. The client device 305 may be, for example, a DVR, a set-top box, a cell phone, a handheld device, a laptop, a PC, etc.
The client device 305 forms a search request given by the user input. Fig. 4 shows a screenshot of a login screen 400 at which a user enters information such as keywords, actor names, director names, production names, program titles, etc. When the user is searching, each character is entered at the virtual keypad 402 and the client device 305 displays the entered character at the input area 401. The client device 305 forms a search request using the entered characters. The client device 304 sends a search request to the server 304.
The server 304 receives a search request from the client device 305. The server 304 forms a query for each database 301, 303. The database consists of at least one broadband database 301 and at least one broadcast database 303. The broadband database 301 contains data from service providers' partners, such as amazonThe New YorkThe broadband database may exist at the server of each partner. The server 304 then queries the databases of each collaborator through a consistent query created by the server 304 using information about the type of database query required by the databases of each collaborator. In embodiments, the collaborator pays the service provider to place the data in the database or to enable their database to be searched by the server 304. For example, the partner may pay a fixed fee or a fee based on the number of times the server 304 queries the partner's database. The broadband database enables the products and services of the collaborators to be displayed to the user. The data in the broadband database consists of links to multimedia content that can be downloaded from the partner. The data also includes information describing the multimedia content, such as: program description, program profile, program rating, actors, director, production, program title, price, etc., as well as search data tags (described below).
Broadcast database 303 contains information from an electronic program guide (EP)G) Providers such as Tribune media service bulletinThe data of (1). EPG data describes available programs from many different broadcasters and service companies, e.g.CableAnd the like. The EPG data contains information describing programs, such as channels of programs, program descriptions, program profiles, program ratings, actors, directors, production, program titles, etc., as well as search data tags (described below). EPG data is typically updated periodically and typically covers 14 days of programming. The number of days depends on the service provider. EPG data encompasses, for example, the united states, mexico, canada, and other countries. Assuming that the EPG data is in the service provider's database 303, the service provider can retain all EPG data transmitted by the EPG provider. This provides the service provider with historical data from which the user can obtain historical data or program titles. The server can provide the client device with historical EPG data information about the multimedia content, such as the time the content was last played. Such information is typically not available to the ordinary DVR or EPG service end because EPG data is typically limited to a few days, such as 14 days. For a search request for EPG content that is not within the typical 14 days, an empty search response will be received. In this embodiment, since the server has history EPG data, the search request will receive a positive response as long as the content is shown in the time period of the EPG data of the server.
The server 304 performs a search in the databases 301 and 303 using the search query statements it creates. The databases 301 and 303 may be databases directly accessible by the server 304, or database servers that control the databases or other database servers. The server 304 receives or generates results from the search query and organizes the retrieved information into a format that can be used by the client device 305.
In an embodiment, the server 304 also accesses a database (not shown) of client devices it owns, in which the server 304 stores information about the status of all client devices in communication with the server 304. The client database includes, among other information, multimedia content that the client device has recorded. In search results, server 304 can include information related to broadband content, multimedia content, which can be downloaded from other client devices, as described in U.S. patent application No. 11/285,411, owned by the applicant and incorporated herein by reference. A client device can request downloads of multimedia content from multiple client devices and receive segments of multimedia content from those client devices. This allows the user to obtain multimedia content that has not been broadcast for a long time and is not ready to be broadcast and available from the partner.
The client device 305 receives the search results from the server 304. The client device 305 processes the search results and displays the search results to the user in the form of a list 403. The list 403 begins with a first multimedia content that matches the characters of the user input entry box 401. The list can be updated as each feature is entered, or after a few seconds without any action by the user. The user may pause to allow the list to be updated when entering the feature. After a few seconds of each input feature or no operation, the client device 305 creates a search request to the server 304. This provides the user with a dynamic list to react to the user input in a quick manner.
The user may also access the search means through a program information screen that the user uses to display an EPG or specific content that has been recorded. Fig. 5 shows a screen 500 for displaying recorded programs. The screen 500 allows the user to navigate through menu items and select a search term 501.
When the user selects multimedia content from the list 403 or search term 501, the client device 305 displays a screen as described in FIG. 6. The screen 600 displays information about the selected multimedia content. Information contained in the data transmitted from the server 304 is used to display program information, such as a program profile 601. The received data may also include additional search terms 602 that allow the user to select more search terms for multimedia content. The data also contains search request information about the multimedia content 603 that is about to be played out or the downloadable multimedia content 604.
If the user selects multimedia content 603 to be played out, the client device 305 sends a search request to the server 304 requesting information about the multimedia content to be played out. The server 304 queries the broadcast database 303 for the multimedia content to be played and sends the query result data to the client device 305. Fig. 7 illustrates a screen 700 that displays upcoming multimedia content using data received from the server 304. The client device 305 receives EPG data for channels received by the user, scheduled channels, or available channels in the area in which the client device is located.
In one embodiment, the server 304 receives the predetermined information 306 and looks up the user information from the database of user data 302 to supply the client device with the correct information specifying the multimedia content available to the user, either through broadcast or broadband access. The server 304 can form search queries of the broadband database 301 and the broadcast database 303 using the user information to find information that suits the user's location, age, preferences, etc. In one embodiment, the server 304 is capable of filtering content information based on the user's age or parental control settings of the client device (described in more detail below).
If the user selects an available download of multimedia content 604, the client device 305 sends a search request to the server 304 requesting information about the available download of multimedia content. The server 304 queries the broadband database 301 for available downloads of multimedia content. As mentioned above, this operation may include querying a database of multiple collaborators. The server 304 sends the received query data to the client device 305. Fig. 8 shows a screen 800 displaying available downloads of multimedia content. In this example, some of the episodes are available for download as a series of programs available from the partner. The screen 800 can display a list 801 of available downloads having an identification 802 of a partner adjacent to the title of the content that is available from the particular partner. The identification data may come from the broadband database 301 or the server 304. The user can select episodes from the available download list 801 to download the content to their client device 305.
The download may originate from a partner and the user will see a screen displaying an episode profile and any fees for the downloaded content. As discussed above and described in U.S. patent application No. 11/285,411, the user may select downloads retrieved from other client devices. The server 304 filters one or more client devices to create a pool of client devices for delivering the content, depending on a number of factors, including bandwidth. The server 304 initiates the transfer by requesting each client device in the pool of client devices to begin transferring the content to the requesting client device 305 or by directly requesting the client device 305 to retrieve the content from the pool of client devices. The content is sent in portions to the requesting client device, where it is reassembled 305 and stored for later playback. The user need not know the source of the download and may or may not be informed of what device is being used to download the episode.
Fig. 9 shows a screen 900 displaying program information 901 of multimedia content. Screen 900 also displays an option by which the user can obtain more episode information (episode guide) for multimedia content 902. If the user selects the episode guide 902, the client device 305 sends a search request to the server 304 requesting information regarding episode information for the multimedia content. The server 304 queries the broadcast database 303 and/or the broadband database 301 for episode information for the multimedia content. The server 304 processes the received data and sends the processed data to the client device 305.
Fig. 10 shows a screen 1000 displaying available episodes for a particular season for a particular series title. In an embodiment, each time the user further selects a season in the list 1001, the client device 305 sends a search request to the server 304 requesting information regarding episode information for the selected season of the multimedia content. The server 304 queries the broadcast database 303 and/or the broadband database 301 for episode information for the season of multimedia content. The server 304 processes the received data and sends the processed data to the client device 305. The client device 305 displays a list of episodes 1002 to the user.
Fig. 11 shows a screen 1100 displaying a tag regarding multimedia content or series titles. The user can perform a search by clicking on any of the tag keywords or phrases 1101. The client device 305 creates a search request using the selected tags. The server 304 performs a search for tag information contained in the broadband database 301 and/or the broadcast database 303 in the same manner as the search described above.
In an embodiment, the server 304 creates a user interface screen for the client device 305 to display. Each time the client device sends a search request to the server 304, the server formats the data received from the search of the database into a user interface screen that the client device can display. The client device receives the user interface screen and displays the screen as formatted by the server 304. The screen information indicates how the client device reacts to any key pressed by the user. For example, the user moves the highlight bar down and the client device checks which items on the screen are selectable and moves the highlight bar to the next selectable item on the screen. If the user selects an entry, then the client device looks at the screen information to see if the selection operation is worth moving the highlight bar to another location or if a search request needs to be sent to the server 304. This allows the server to dynamically change the look and feel of the user interface screen without having to update the client device's software to effect the change in the user interface. This approach is easy to upgrade and presents as a highly maintainable model. Alternatively, when the client device receives screen information from the server 304, it can format its own user interface screen.
3.2 identifying multimedia content
On the left side of the screen of fig. 11, a tab 1101 may also be displayed as a selected option. For the television show "talent doctors (m.d.)", labels "birth age (meeting of)", "doctors (vector)", "physical examination (medical)" and "talent" are shown. When a tab is selected, the contents of the associated tab appear on the right side of the screen. In this embodiment, for the label "doctor", the drama "story (ER) of emergency room", "intern gray (Grey's) and" intern wind cloud (Scrubs) "appear, since they are all related to the label and are arranged to be shown soon.
Tags, as used herein, refer to a set of words, pictures, or other media that are used to link together portions of content. Examples of tags may be, but are not limited to, the location of the content settings, the type to which the content belongs, or the subject matter related to the content. If the search term "New York" is searched, the returned search results may include the television series "Friends" and the movies "New York Black New York (Gangsof New York)" and "ghost death teams (Ghostbusters)". The search results are returned because each selection is located in new york city. In another embodiment, the search term "married". This search returns content about "marrying". Some search results may include The television series "Wedding Story" and The particular episode of The television series where The Wedding occurred, such as "friend-Story" and The movie "landlord (The RunawayBride)".
Tags linked to content may contain any related terms. Some examples of labels are "singing", "live TV", "fashion", "terrorist", "crime" and "roommates". The tags may increase or change over time. The tags are also not limited to words but may also consist of pictures about the content (e.g. symbols representing the Prince of singer), or other media, such as sound or music. For example, the selection of new era music may be related to soul music programs, and the selection of heavy metal music may be related to skateboard sports television programs.
The tags may be used for broadcast content or downloadable content. Broadcast content includes, but is not limited to, content obtained through antennas, satellites, and cables. Downloadable content includes, but is not limited to, broadband video, podcasts, and other forms of audio, images, and RSS feeds.
In an embodiment, the tag may be created by a service provider. For example, a service provider may wish to indicate a particular topic available in a television program. Thus, if the user repeatedly views a specific video clip on a specific topic, the server provides other video clips related to the specific topic. The service provider may also provide a tag originating from the content provider.
In another embodiment, the content provider creates a tag for the content provider's unique program. In this case, the tags are not first provided to the service provider for dissemination of additional comments. This allows the content provider to be sure that the tag provided to the user is correct and reflects the content provider's intent. The tags may then be used by the content provider to ensure that the user can link to other programs that contain similar content or cater to similar user groups.
According to another embodiment, multimedia devices such as DVRs, PCs, cell phones, and handheld computing devices are used to create video program tags, referred to herein as "community tags". When the user watches a video program, the user enters possible words associating the content with the tag using a control interface, such as a remote control, a touch screen, a touch pad, or a keyboard. For example, the user may utilize the control interface to mark program segments, or alternatively, to mark events in the video program. For example, when watching a sporting event such as a football game, the user signals through a remote control when an exciting game occurs. The user may enter the word "exciting" and the label may then be related to that program. Community tags may be fully open or subject to review by the service provider to maintain order. Also, community tags may be aggregated such that only the most common episodes are selected, and then the tags may be propagated to the user's network.
In embodiments, the selected data is not limited to words for credits and tags, but also includes other media such as video, pictures, or sounds. Examples of pictures include, but are not limited to, the avatar of an actor, a movie poster, or also a picture in a program or movie. The sound may include, but is not limited to, the sound of a theme tune of the program, music in a movie, or actors.
3.3 Filtering search results for broadband and broadcast multimedia content
The server 304 can filter the database query results based on user preferences, user personal information, client device settings, etc. As discussed briefly above, in embodiments, a user is able to set preferences and personal information in their client device, such as the channel that they receive, the channel that they watch, age, gender, programs that the user likes and dislikes, the user's interests, credit card information, home address, and the like.
When the client device 305 sends a search request to the server 304, the server 304 creates a query to the broadcast database 303 and/or the broadband database 301. Upon receiving the requested data, the server 304 can filter the data to customize the data for the client device 305. In one embodiment, the server 304 is capable of supplying broadcast information to the client device 305 only regarding channels received by the client device. In another embodiment, the server 304 can supply broadcast information for the client device 305 only on channels viewed by the user.
Such filtering can be performed on opt-in/opt-out basis. If the user chooses to join, the user is given server permission to automatically filter the requested broadcast and/or broadband information to match the user's preferences and personal information using the user's preferences and personal information 302, 306.
If the user opts out, the server can only utilize information that it knows about the client device 305 that does not include the user's personal information. The server 304 is limited by the location of the client device and the channels that the client device can receive from local cable or satellite broadcast equipment in that area.
The server 304 can also filter information based on the client device type. For example, if the client device 305 is a portable video device, the server 304 may send a compressed version of the search results to the client device 305.
In an embodiment, the user can specify that the client device 305 limits its selection of search terms to particular types of media or access. For example, the user can specify that the search is limited to HD (high definition) content only. The user may also specify that the listed content is available only from broadband or only from broadcast. The user can create any combination of these search definitions. Another embodiment allows the user to specify a combination of tabs displayed on the screen. Referring again to fig. 11, for example, the user can designate a combination of tags piterege (Peter Riga)1102 and Prodigy (Prodigy)1104, or a combination of Prodigy 1104 and departure age (Coming of age)1103, or any other combination of tags.
The user can select each label with the highlight bar. Each time the user selects a tab, he may press a button on the remote control to specify that the selected item is part of the combination. Once the user has selected all of the items he wants, he can press another button (or the same button) on the remote control informing the client device 305 of the search to be performed. For example, the user selects only the wonder child 1104 and the appearance age 1103 and also selects the HD content. The client device 305 then forms a search request and sends the request to the server 304. The server 304 creates a query of the database suitable for searching. Here, since the user has only specified searching for HD content, the server 304 queries the broadband database 301, or the above-mentioned partner's server, and the broadcast database 303 for HD content that includes tags or other content information that matches the selected search tags, such as a wonder child and a show age. The server 304 returns the query results to the client device 305. The client device 305 displays the search results for the user.
3.4 partial Listing and indicators
In embodiments, a user may search for content in one or more content databases. For example, the user may search the broadcast database 303 for entries (entries) (e.g., multimedia content) that have been or are to be broadcast. For example, the ability of a user to search through content in a broadcast database may include each program that has entered such a database. Thus, the results of the search request may be returned to the user's very large list of entries, e.g., hundreds of entries.
In embodiments, to process very large search results, the server 304 returns to the client device 305 a predetermined number of entries, rather than the entire list of entries. For example, the server 304 may return a list of 50 of the total number of entries in the large search results of the client device 305. In an embodiment, the returned indicator carries a predetermined number of entries in the large number of search results. The indicator indicates whether the list of the predetermined number of entries is a full list or a partial list. If the indicator indicates that the list is a partial list, the user may select to view additional entries in a large number of search results. For example, the next 50 buttons may be presented to the user with a partial list containing 50 entries. The user may choose to view the next 50 items by clicking on the next 50 buttons. Likewise, the previous 50 buttons may be presented to the user with a partial list containing 50 entries. The user may choose to view the first 50 items by clicking on the first 50 buttons.
In an embodiment, a list of entries for the search results is displayed with the anchor. An anchor is a special entry that serves as a reference point among other entries, such as the text being browsed. Browsing search results by means of anchors may refer to the description of fig. 13. FIG. 13 is a diagram illustrating a length 1302 bar representing a list of entries for a search result. The specific location in the list is the anchor 1304. The anchor 1304 represents a location in the list selected by the user. From the anchor 1304, the user is then presented with a predetermined number of entries 1306. For example, from a particular entry at the anchor 1304 location, the user is also presented with a next 50 entries 1306. In another embodiment, the user is presented with a predetermined number of items previously, such as the previous 50 items. In yet another embodiment, the anchor is presented with the previous 25 entries and the subsequent 25 entries. Thus, the user can move forward and backward in the list by moving anchor 1304. For example, the user may move anchor 1304 by clicking on another entry and determining that the entry is the current anchor. In an embodiment, browsing search results by means of anchors makes use of a total number and an offset. The total number is a value indicating the location of the anchor. The offset is a value used to determine the number of location entries from the anchor.
In an embodiment, a handoff indicator is sent to the user. With the toggle indicator, the user can toggle between displaying the entire list of results of the search request and displaying the partial list specified by the particular criteria. For example, the user may choose to display a partial list of multimedia content available for the next 14 days, rather than the entire list of multimedia content available for the next 14 days. Then, when the user wants to view the entire list, the user can switch to the entire list option. It will be understood that certain details have been presented herein by way of example only, and not limitation.
3.5 one-touch recording and wish List
One touch recording
In an embodiment, a one-touch recording feature allows a user to select to record multimedia content (e.g., a television program) in a one-touch manner. For example, the user may press a record button on the remote control device while a program is being shown, while a recorded movie is being played back, or while an advertisement is being shown for multimedia content. In another embodiment, when a user finds multimedia content and wants to record such multimedia content, the user may press a button on the remote control in response to an indicator on the interactive user interface. The multimedia content may be a program or series of programs that the user is interested in viewing. The example screen shots depicted in fig. 14 and 15, respectively, illustrate selectable indicators that a user may select for recording multimedia content. Referring to FIG. 14, an indicator 1402 is labeled showing "record this episode" which, when selected, triggers a process for recording the episode or for scheduling the recording of the episode. The client device schedules episodes to be recorded using the locally stored EPG. If the episode is playing, the client device automatically begins recording the episode, and if any portion of the episode is in the client device's cache, the client device adds the portion of the episode in the cache to the recording. In an embodiment, the client device tells the server that the user requests the record, and the server schedules the record for the client device in a master schedule that the server has. The server then downloads the master schedule to the client device, thus updating the client device's local schedule of records. Thus, the selection indicator 1402 is a "one-touch recording" process for recording the episode.
Similarly, the interactive screen in FIG. 15 shows a marked indicator 1502 "record this program," which when selected, triggers the process for recording the program or scheduling the program to be recorded as described above. Thus, the selection indicator 1502 is a "one-touch recording" process for the program.
Creating wish lists
In an embodiment, the wish list corresponds to a list of entries of one or more multimedia contents that the user wants to record when the one or more multimedia contents, such as a particular episode or program, are broadcast. An example of the type of entry in the wish list may be a program identification code (program ID) that corresponds to and identifies a particular multimedia content. For example, assume that the user only wants to see one episode in the on-air program because the particular episode features a particular actor as a passenger actor. According to an embodiment, the user may add this particular episode to the user's wish list. When the particular episode can be scheduled or downloaded, the particular episode is automatically scheduled for recording or automatically downloaded. The user may also create a wish list of any episode or program with a certain actor or a certain director, production, etc. The client device can look for episodes or programs with any criteria specified by the user in the wish list.
Referring to fig. 16, an exemplary screenshot shows information for a particular episode, episode 1 of the program "romantic history of dad and mom". Also presented on the screen is a link 1602 labeled "Create the wish list for the episode". When the user selects link 1602, a wish list is created and the items corresponding to and representing the episode are added to the wish list. The wish list example is described in detail in the following paragraph entitled "wish list example".
One touch recording and wish list
Fig. 17 shows a flow diagram of a one-touch recording and wish list process for a program, which describes an embodiment of a one-touch recording and wish list process for multimedia content that is not readily available, such as a program. On the basis of browsing multimedia contents, such as the results of the searches from the databases 301 and 303, and possibly the search results of historical EPG data, the user can find desired multimedia contents, such as desired programs, which the user wants to record. The user may trigger a one-touch recording indicator (1702). In an embodiment, it is determined whether the desired program is broadcast within a subsequent predetermined or designated time period, e.g., within a subsequent two weeks (1704). If it is determined that the desired program will be broadcast within a subsequent predetermined or designated time period, the desired program is scheduled for recording (1706). For example, if a desired program is scheduled to be broadcast through network television at a specific time of the next day, the broadcast is scheduled to be recorded at the specific time of the next day. If the desired program is downloadable, the process for downloading the program begins. For example, upon activation of the one-touch recording device (1706), the desired program begins to download. The client device downloads the program from the partner or other client devices. In an embodiment, if there is a download-related fee, the client device may ask the user if the fee is acceptable before performing the download. If the user does not wish to accept the download payment, the user may cancel the download and, if another option is available, may select another option, such as placing the desired program in a wish list or scheduling the recording of the desired program.
When the desired program is not played back for a subsequent predetermined or designated interval, e.g., the next two weeks, then the program may be added to the user's wish list. If the wish list has not been created for the user, the wish list may be automatically created (1708). After the automatic creation of the wish list, the program is added to the wish list. Thus, when a program becomes downloadable or schedulable to record (1710), the desired program in the wish list is downloaded or scheduled for recording.
In an embodiment, the client device may perform the above steps in another order based on a server-determined rule or a user-specified rule. For example, the server may specify that the client device first look up the desired multimedia content from the broadband content database. This provides the advantage for the partners of the service to render the content they provide to the user before the client device looks to record the desired multimedia content from the broadcast station. The user may also set his own rules to start searching for desired multimedia content by specifying, for example, a play time to view the desired multimedia content and then search for the desired multimedia content from the broadband download if no broadcast source can be found to play the desired content within a predetermined or specified time frame. If the desired multimedia content is not found from either the broadband or broadcast sources (not necessarily in a particular order), the client device sets up an wish list or wish list entry for the desired multimedia content using, for example, the program ID of the desired multimedia content. The client device performs a periodic search for EPG data subsequently presented by the program ID using the program ID.
In another embodiment, the server performs a search for multimedia content desired by the user using the broadband and broadcast databases, as described above. In an embodiment, the server may also perform a search for content desired by the user using the historical EPG data. If the server finds the desired multimedia content in the broadband database, the server creates a display screen or search information for the client device that contains information that the user can download the desired multimedia content. If the user selects that option from the display screen, the information that the multimedia content should be downloaded from a certain URL or IP address is seen through the screen client device. The client requests the download of the desired multimedia content from that URL or IP address. The client then stores the downloaded multimedia content.
If the server finds the desired multimedia content in the broadcast EPG, it can additionally or only create an entry on the display screen where the user can select to record the desired multimedia content. If the user selects the record program menu item, the client device checks the screen information and finds the program ID that the server that it should schedule the recording determines from its EPG. Finally, if the server finds that the desired multimedia content is not available from both the broadcast source and the broadband source, it creates an entry or search information on the display screen so that the user can choose to place the desired multimedia content into its wish list. The client device checks the screen information and finds the program ID in its wish list (determined by its historical EPG data) that it should schedule a recording. In connection with the previous embodiments, the server may perform the broadcast and the search of the broadband database in an order determined by the server or in an order specified by the user.
In another embodiment, the server performs a search for multimedia content desired by the user using the broadband and broadcast databases, as described above. If the server finds the desired multimedia content in the broadband database, the server requests to download the desired multimedia content from the broadband database through a URL or an IP address. The server then sends the downloaded multimedia content to the client device, which stores the multimedia content.
If the server finds the desired multimedia content in the broadcast EPG, it can instruct the client to schedule a program ID record determined by its EPG data to the server. Finally, if the server finds that the desired multimedia content is not available from both the broadcast source and the broadband source, it places the desired multimedia content into the wish list and sends the wish list to the client device to update the client device's local wish list with the information. The client device schedules the recording of the program IDs in the wish list (as determined by the server through its historical EPG data). In connection with the previous embodiments, the server may perform the broadcast and the search of the broadband database in an order that the server has determined or in an order that the user has specified.
DVR synchronization with wish lists
In an embodiment, data contained in a user wish list that exists at the server is synchronized to the user's DVR on a periodic basis. In an embodiment, a copy of the user wish list at the server is downloaded to the user's DVR. In another example, the user's DVR is synchronized with the user's wish list every 6 hours. When content in the user's wish list becomes available, the DVR downloads the content after synchronization. When content in the user's wish list is broadcast or played at a known point in time, the user's DVR therefore schedules the recording of the multimedia content after synchronization. In an embodiment, and referring to FIG. 3, a user's DVR 305 may have to "opt-in" to the server and be in the network for synchronous operation, including the server accessing the user's wish list on the DVR. For example, when a user's DVR 305 has opted-in to make the user's information available to the service, the user's DVR 305 can then send information to the service 304 and receive information from the service 304, even when the user is not actively using the DVR 305. In an embodiment, the server 304 is authorized to access the user's DVR 305. By authorizing access to the user's DVR 305, the server 304 can collect current information data from the user's user wish list of the user's DVR 305.
By way of example, assume that the user has selected to join. And, it is assumed that the synchronization process is arranged to be performed every 6 hours. Assume that the first synchronization process occurs at noon after the user chooses to join. For example, the server 304 may view a user wish list stored on the user's DVR 305 for multimedia content stored in the broadband database 301 or broadcast database 303 that the server 304 is configured to search. Assume that the user has added a particular episode of a Gllligan island (gillgan's island) to the user's wish list. According to an embodiment, the server 304 may look up the broadcast database 303. In this example, the server 304 will not find the particular episode of Gllligan's island in the next two weeks. Then, assume that at 3 pm, the user adds King of Queens after the program (King of Queens) to the user's wish list. At six pm, the next synchronization process occurs, and server 304 searches the user's user wish list on DVR 305 and finds the king of the newly added item. The server 304 searches the broadband database 301 and finds no match for the king in the future. The server 304 searches the broadcast database 303 and finds a match for the king of the queen. The later king match is the show shown on channel 551 7 pm. Thus, the server 304 instructs the client device to schedule a recording of the play of the queen-to-record at 7 pm while the program is being played on the 7 pm 551 channel.
An example of an wish list is, but is not limited to, the wish list feature described in U.S. patent application No. 10/425,308 entitled "broadcast program automatic recording padding assignment system," filed on 28/4/2003, assigned to the same entity, and incorporated herein by reference in its entirety. It is to be understood that this example of a wish list is for illustrative purposes only and is not limiting. A detailed description of an example wish list as described in the previously mentioned patent application will be given below.
In addition to season pass, the user may also specify a desired list of programs that he wants to record if those programs have already been aired. The wish list is set by the user, wherein the user specifies search characteristics, utilizes user-specified search criteria, such as category, actors, keywords, search term combinations, etc., and finds programs to be played. The user can set a multimedia wish list.
The schedule on the client device searches for show program guide information in the user's wish list that matches the criteria periodically, for example, when updated program guide information (including upcoming program information and broadcast times) is received, so long as the user retains the wish list. The user can see a list of upcoming shows in the search results. The user can also set a wish list to automatically record the wish list and the schedule will schedule each program on the found wish list to be recorded. For example, if the user selects a wish list that specifies actors, the schedule automatically records movies that the particular actor is listed in. The recording also requires conflict management due to conflicts with other scheduled recordings.
The wish list program can be made up for start and/or end times by the user in the same way as a season pass. Just as with season video, there may be reasons for filling in the padding by the user. For example, if the wish list is a show of a game for the san Francisco Jumbo, it is well known that a basketball game will exceed a nominal broadcast end time. The user can set an override value for the wish list.
The scheduling table can discover any conflicts that may occur between the scheduling of the program or season pass being recorded and other programs or season passes scheduled to be recorded. The schedule indicates to the user that a conflict occurs with the scheduled programs. Conflicting programs and/or season passes are listed to the user. The user then decides to cancel the conflicting scheduled recording or not to record the current program. The schedule can alternatively perform automatic conflict management by setting rules or rules specified by the user.
The season pass manager screen can show the season pass and a user selected wish list. The user can find out what the show to be recorded is to be showing by selecting the season pass or the wish list. The user can also change the priority of the season pass or wish list by moving the entries up and down in the list.
The priority of recording season passes or requesting a wish list determines which programs to record when a conflict in scheduling a recording occurs. For example, a show for which a recording is to be scheduled may overlap another show for which a recording has been scheduled, causing a conflict. There are two levels of conflict that can occur. The first is a single show conflicting with another show or the season pass, and the second is a multiple show conflicting with the season pass.
The reason why the season pass video is used in this example is because the season pass video is generally fairly consistent. For example, a season pass may only be the first episode of the show. For example, the first turn of the episode is only played every tuesday night at 8 PDT points. When a season pass is conflicting with any other show already scheduled, the user may choose to record all season passes or non-conflicting episodes. In addition, the user is allowed to resolve conflicts on an episode basis. The wish list is treated in the same way.
The scheduling table manages records of the season pass video, the desired list, and manually selected records. This means that there are a number of different sources that can cause collisions. Not only does the showing conflict with the scheduled play time but things become more complicated due to user adjustment padding (padding). The user does not want to be involved in every decision that must be made regarding a conflict, and conflicts will occur regularly due to schedule reception cycles of program guide updates. By triggering intelligent padding, the schedule can automatically adapt to the padding setting of the user, i.e. make the adjustment of the start and end recording time.
The schedule provides the following options for the padding:
explicit-requested by the user. This means that at some point the user requests to add padding to the season pass, the wish list, or the individual program.
High priority-the padding has the same priority as the recording it is set for. For example, if the padding of a high priority season pass recording conflicts with the main body of a low priority season pass recording, the high priority padding wins. The low priority recording is either cancelled (if the padding is longer than the duration of the low priority recording) or delayed to start.
Low priority-the padding has a lower priority than the recording. For example, if the padding of a high priority season pass conflicts with the body of a low priority season pass record, then the low priority record wins. The padding of the high priority record is discarded.
Essential-padding must be scheduled, or the entire recording should be cancelled.
Choice-if there is a conflict in padding, the padding may not be done when the recording is acquired.
The combination of options can be set by the system or the user. The most common are explicit/high priority/necessary, explicit/high priority/options and explicit/low priority/options. The schedule utilizes options to make its conflict decisions. The options can be set for full recording or down to the granularity of a single program. Setting the options at the program level requires too much user interaction to set the recording, so it is easier for the user to set the options at a higher system-wide level.
Explicit/high priority/necessary examples:
if the first high priority record of the given option conflicts with the second high priority record, then the scheduling table cancels the first record.
The first high priority record of the given option conflicts with the second high priority record of the given option, and the scheduling table cancels the next scheduling record.
Examples of explicit/high priority/options:
if the first high priority record of the given option conflicts with the second high priority record, then the schedule de-complements the first record.
The first high priority record of the given option conflicts with the second low priority record, then the scheduling table starts the second record with the padding and a delay.
Examples of explicit/low priority/options:
if the first high priority record of the given option conflicts with the second low priority record, the schedule de-complements the first record.
The first high priority record of the given option conflicts with the second low priority record of the given option, and the schedule cancels the conflicting completions of the two records.
The scheduling list determines the priority level of the season pass video or the wish list recording by using the priority level setting of the season pass video manager. The user's individual program recordings are explicitly scheduled by the user and considered at a high priority level.
The schedule may also adjust the padding to resolve conflicts. The adjustment is determined by the schedule using predetermined limits.
For example, with explicit/high priority/options, a set of scheduling limit values may be set as:
delay start (main) 1 minute; time-delay start (white supplement) is arbitrary
Cutoff (main body) in advance for 0 min; early cut-off (white supplement) is arbitrary
This means that when two programs conflict, the schedule can suggest to the user, resolving the conflict by taking a low priority program and abandoning: 1) any number of its start or end padding; 2) up to one minute from the beginning of the program body; or 3) there is no amount at the end of the program body. For newly requested programs, the requesting user determines conflict management:
if conflicts can be resolved using the example limits described above, a conflict screen is displayed so that the user can accept/decline any suggested adjustments to schedule the recording or not record the newly requested program.
If the conflict cannot be resolved, a conflict screen is displayed so the user can cancel the conflicting record or decide not to schedule a new record.
When the schedule runs regularly, conflicts detected with existing season passes, expected listings and individual programs will be automatically resolved according to the limit settings, or if no limit is set, according to the straight-ahead path of the selected option.
The schedule can selectively handle the specific case of immediate episodes in a season pass, resolving the conflict by recording a trailer with any margin immediate by the body/trailer recording the second episode.
3.6 live or delayed broadcasting
In one embodiment, a live recording feature is provided such that at any time a user chooses to schedule recording of multimedia content, an associated indicator (e.g., multimedia data about the multimedia content) is viewed to determine whether to mark it as live (e.g., "live") or delayed (e.g., "delayed"). For example, when the indicator is marked "live", such a feature may automatically cause information to be presented to the user suggesting that the multimedia content be time-added to the end of the recorded segment (e.g., in white). Another embodiment, the information may be recorded on the screen and expressed as "because this program is live, it will play longer than desired. Do you want to add extra time at the end of this recording to prevent? ". The user may choose to ignore this information and proceed as usual (e.g., proceed without changing the recording time). Or the user may, in practical cases, add additional recording time, for example, through an interactive interface. For example, a user may be presented with a text entry box in which a number of minutes is entered to increase to the recording time. As another example, the user may point to and select from a list of minutes to increase the recording time, e.g., 1 minute, 2 minutes, etc.
4.0 hardware overview
FIG. 12 illustrates a block diagram of a computer system 1200 upon which an embodiment of the invention may be implemented. Computer system 1200 includes a bus 1202 or other communication mechanism for communicating information, and a processor 1204 coupled with bus 1202 for processing information. Computer system 1200 also includes a main memory 1206, such as a Random Access Memory (RAM) or other dynamic storage device, coupled to bus 1202 for storing information and instructions to be executed by processor 1204. Main memory 1206 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1204. Computer system 1200 further includes a Read Only Memory (ROM)1208 or other static storage device coupled to bus 1202 for storing static information and instructions for processor 1204. A storage device 1210, such as a magnetic disk or optical disk, is coupled to bus 1202 for storing information and instructions.
Computer system 1200 may be coupled via bus 1202 to a display 1212, such as a Cathode Ray Tube (CRT), for displaying information to a computer user. An input device 1214, including alphanumeric and other keys, is coupled to bus 1202 for communicating information and instruction set to processor 1204. Another type of user input device is cursor control 1216, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 1204 and for controlling cursor movement on display 1212. The input device typically has two degrees of freedom in two axial directions, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
The invention is related to the use of computer system 1200 for implementing the techniques described herein. Those techniques performed by computer system 1200, in accordance with one embodiment of the invention, are responsive to processor 1204 executing one or more sequences of one or more instructions contained in main memory 1206. Such instructions may be read into main memory 1206 from another machine-readable medium, such as storage device 1210. Execution of the sequences of instructions contained in main memory 1206 causes processor 1204 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term "machine-readable medium" as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. In an embodiment implemented using computer system 1200, a variety of machine-readable media participate, for example, in providing instructions to processor 1204 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 1210. Volatile media includes dynamic memory, such as main memory 1206. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 1202. Transmission media can also take the form of acoustic or optical waves, such as those generated during radio-wave and infra-red data communications. All such media must be tangible to ensure that the instructions carried by the media are detected by a physical device that reads the instructions into a machine.
Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory disk or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to processor 1204 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can download the instructions to its dynamic memory, and send the instructions over a telephone line using a modem. A modem local to computer system 1200 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 1202. Bus 1202 carries the data to main memory 1206 for retrieval and execution by processor 1204 of the instructions. The instructions received by main memory 1206 may optionally be stored on storage device 1210 either before or after execution by processor 1204.
Computer system 1200 also includes a communication interface 1218 coupled to bus 1202. Communication interface 1218 provides a two-way data communication coupling to a network link 1220 that is connected to a local network 1222. For example, communication interface 1218 may be an Integrated Services Digital Network (ISDN) card or a modem to provide a data communication to a corresponding type of telephone line. As another example, communication interface 1218 may be a Local Area Network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 1218 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 1220 typically provides data communication through one or more networks to other data devices. For example, network link 1220 may provide a connection to a host computer 1224 or to data equipment operated by an Internet Service Provider (ISP)1226 through local network 1222. ISP 1226 in turn provides data communication services through the world wide packet data communication network, now commonly referred to as the "Internet" 1228. Local network 1222 and internet 1228 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 1220 and through communication interface 1218 are exemplary forms of carrier waves transporting the information to and from computer system 1200.
Computer system 1200 can send information and receive data, including program code, through the network(s), network link 1220 and communication interface 1218. In the Internet example, a server 1230 might transmit code needed for an application program through Internet 1228, ISP 1226, local network 1222 and communication interface 1218.
The received code may be executed by processor 1204, as it is received and/or stored in storage device 1210, or other non-volatile storage for later execution. In this manner, computer system 1200 may obtain application program code in the form of a carrier wave.
5.0 examples
In an embodiment, a method includes or carries one or more computer-readable media of a queue of instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of: receiving a request from a client device to record multimedia content; creating a first query based on the request, and performing the steps of: searching a broadcast database for the multimedia content based on the first query; and then receiving search results of the broadcast database, the search results including information of the multimedia content found in the broadcast database, sending to the client device a program identification code (program ID) identifying the multimedia content and instructions for scheduling recording of the multimedia content; creating a second query based on the request, and performing the steps of: searching a broadband database for the multimedia content based on the second query; then receiving a search result of the broadband database, wherein the search result comprises multimedia content information found in the broadband database, and sending a URL (uniform resource locator) corresponding to the multimedia content or an IP (Internet protocol) address corresponding to the multimedia content to the client equipment for downloading the multimedia content; and when the multimedia content is not found in the broadcast database and the broadband database, adding the wish list entries to the wish list of the corresponding client device and transmitting the wish list to the client device, wherein the client device automatically records the multimedia content using the wish list entries.
In an embodiment, the method or computer readable medium further comprises: a wish list for the corresponding client device is automatically created prior to adding the wish list entries.
In an embodiment, the method or computer readable medium further comprises wherein the instructions for scheduling the recording of multimedia content further comprise channel and date instructions for recording the multimedia content.
In an embodiment, the method or computer readable medium further comprises: determining that the client device elects to join the server for synchronization, and accessing the client device by the server.
In an embodiment, the method or computer readable medium further comprises: sending an instruction to the client device, the instruction for retrieving the multimedia content from at least one other client device.
In an embodiment, the method or computer readable medium further comprises: following a rule, the rule specifies a particular order for performing the following steps: creating a first query and creating a second query.
In an embodiment, the method or computer readable medium further comprises, wherein adding the wishlist entry further comprises: the program ID corresponding to the multimedia content is obtained via historical Electronic Program Guide (EPG) data, the wish list entry including the program ID, and wherein the client device is operable to automatically record the multimedia content based on a subsequent presentation of the multimedia content using the program ID.
In an embodiment, an apparatus comprises: a recording request receiver that receives a request from a client device to record multimedia content; a query subsystem that creates a first query based on the request, and further comprising: a broadcast database search subsystem that searches a broadcast database for multimedia content based on a first query; and wherein the broadcast database search subsystem, in turn, receives search results from the broadcast database, the search results including information of multimedia content found in the broadcast database, sends to the client device a program identification code (program ID) defining the multimedia content and instructions for scheduling recording of the multimedia content; wherein the query subsystem creates a second query based on the request and further comprises: a broadband database search subsystem that searches the broadband database for multimedia content based on the second query; and wherein the broadband database search subsystem, based on receiving search results from the broadband database, the search results including multimedia content information found in the broadband database, sends a URL or IP address corresponding to the multimedia content to the client device to download the multimedia content; and an wish list management subsystem that adds wish list entries to the wish list of the client device and sends the wish list to the client device when the multimedia content is not found in both the broadcast database and the broadband database. Wherein the client device utilizes the wish list entries for automatically recording the multimedia content.
In an embodiment, an apparatus further comprises wherein the wish list management subsystem automatically creates a wish list corresponding to the client device prior to adding the wish list entry.
In an embodiment, an apparatus further comprises wherein the instructions for scheduling a multimedia content to be recorded further comprise instructions for recording a channel and a date of the multimedia content.
In an embodiment, an apparatus further comprises: a synchronization subsystem that determines that the client elects to join the server for synchronization and that the client device is accessed by the server.
In an embodiment, an apparatus further comprises: a download manager that sends instructions to the client device for retrieving the multimedia content by at least one other client device.
In an embodiment, an apparatus further comprises: a rules manager that follows rules that specify a particular order for the query subsystem to operate the broadcast database search subsystem and the broadband database search subsystem.
In an embodiment, an apparatus further comprises, wherein the wish list management subsystem further comprises: a program ID lookup subsystem that obtains a program ID corresponding to the multimedia content from historical Electronic Program Guide (EPG) data, and wherein the wish list entry includes the program ID, and wherein the client device is to automatically record the multimedia content based on a subsequent showing of the multimedia content using the program ID.
In an embodiment, a method comprises or a computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: receiving a user input to record multimedia content on a device; sending a search result based on user input to a server; receiving a search result from the server based on the search request; scheduling the multimedia content to be recorded when the search result includes a program identification code (program ID) identifying the multimedia content and an instruction for scheduling the recording of the multimedia content; downloading multimedia content, wherein the multimedia content is downloaded through a URL or an IP address when the search result includes the URL or the IP address corresponding to the multimedia content; and adding the wish list entry to the wish list when the search result does not include an instruction for arranging recording of the multimedia content, the URL, and the IP address. And wherein the device utilizes the wish list entries for automatically recording multimedia content on the device to which it belongs.
In an embodiment, the method or computer readable medium further comprises: the wish list is automatically created before adding the wish list entries.
In an embodiment, the method or computer readable medium further comprises wherein the instructions for the user to schedule the recording of the multimedia content further comprises instructions for recording a channel and a date for the multimedia content.
In an embodiment, the method or computer readable medium further comprises selecting for joining to the server for allowing the server access to synchronize to the device.
In an embodiment, the method or computer readable medium further comprises: receiving, by the server, an instruction to retrieve, by at least one other device, the multimedia content.
In an embodiment, the method or computer readable medium further comprises: receiving, by a server, one or more rules, wherein the rules specify a particular order of performing the following steps: scheduling recording and downloading of multimedia content; or receiving user input specifying one or more rules for performing the following steps in a particular order: the recording and downloading of multimedia content is scheduled.
In an embodiment, the method or computer readable medium further comprises, wherein adding the wishlist entry further comprises: receiving a program ID corresponding to the multimedia content from the server via historical Electronic Program Guide (EPG) data of the server, the wish list entry including the program ID, and wherein the apparatus utilizes the program ID for automatically recording the multimedia content based on a subsequent presentation of the multimedia content.
In an embodiment, an apparatus comprises: a user input receiver that receives user input to record multimedia content on a device; the search request subsystem sends a search request based on user input to the server; a search result receiver which receives a search result based on the search request from the server; a recording schedule table which schedules recording of the multimedia content, when the search result includes a program identification code (program ID) which identifies the multimedia content, and an instruction for scheduling recording of the multimedia content; a content downloader that downloads the multimedia content when the search result includes a URL or an IP address corresponding to the multimedia content. Wherein the multimedia content is downloaded from a URL or IP address; and a wish list manager that adds wish list entries to the wish list when the search result does not include an instruction to schedule recording of the multimedia content, a URL, and an IP address, and wherein the apparatus utilizes the wish list entries for automatically recording the multimedia content to the apparatus.
In an embodiment, an apparatus further comprises wherein the wish list manager automatically creates the wish list prior to adding the wish list entries.
In an embodiment, an apparatus further comprises wherein the instructions for scheduling the recording of the multimedia content further comprise instructions for recording a channel and a date for the multimedia content.
In an embodiment, a device further comprises, wherein the device elects to join to a server for allowing server access to synchronize with the device.
In an embodiment, an apparatus further comprises, wherein the apparatus receives an instruction from a server to retrieve multimedia content from at least one other apparatus.
In an embodiment, an apparatus further comprises: a rule manager that receives one or more rules from a server, wherein the rules specify a particular order of execution of the steps: scheduling recording and downloading of multimedia content; or a rule manager that receives user input specifying one or more rules for performing the steps in a particular order: the recording is scheduled and the multimedia content is downloaded.
In an embodiment, an apparatus further comprises, wherein the wish list manager further comprises: a program ID lookup subsystem that obtains a program ID corresponding to the multimedia content from the server via server historical Electronic Program Guide (EPG) data, the wish list entry including the program ID, and wherein the apparatus utilizes the program ID for automatically recording the multimedia content based on subsequent presentations of the multimedia content.
In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, without limitation, an element, property, feature, advantage or attribute that is expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.