This invention relates to television entertainment architectures in which program data is generated, processed, and distributed to clients such as set-top boxes, digital video recorders (DVRs), and so on.
Electronic program guides (EPGs) enable TV viewers to navigate through an onscreen program guide and locate shows. With the guides, viewers can look at schedules of current and future programming, set reminders for upcoming programs, or enter instructions to record one or more shows.
Decisions to determine shows that children or teenagers should watch or record are often strongly influenced by a parent's perceived appropriateness of a show for viewers of a particular age. Parents that are concerned about what their children watch and/or record typically cannot easily determine the age range appropriateness of a show solely by using a conventional onscreen program guide.
For instance, conventional onscreen program guides typically only allow TV viewers to locate program content by subject, actor, release date, and subject matter (e.g., weather, sports, movies, etc.), and the like. To obtain any rating information, the user must first typically locate a show of interest from within numerous other program offerings of mixed viewer age range appropriateness. Once a show of interest has been identified, the user must then request additional information to view the program's rating. This process is slow and tedious, and does not provide a simple way for parents to monitor the shows that they would like for their children to watch.
“TV Parental Guidelines,” was established by the National Association of Broadcasters, the National Cable Television Association and the Motion Picture Association of America. These ratings are displayed on a television screen for the first 15 seconds of rated programming and, in conjunction with the V-Chip, permit parents to block programming with a certain rating from coming into their home. Yet, blocking programming with a certain rating from coming into a home is a substantially cumbersome solution for parents that have their own program viewing tastes as well as children, possibly of various age ranges, across which the appropriateness of particular shows may be different. Yet, unless parents block programming with a certain rating(s) from coming into their home, they must watch the first 15 seconds of each rated programming show to determine its age-appropriateness. Such continued vigilance in front of a television screen is just not realistic.
Accordingly, what is needed is a way for parents to determine age-appropriateness of programming content without being required to: (a) navigate through possibly hundreds of shows using an onscreen program guide and individually request ratings information for those shows that may be of interest; (b) block programming with a certain rating(s) from coming into their home; and (c) watch the first 15 seconds of each rated programming show to determine its age-appropriateness.
The following arrangements and procedures address these and other limitations of conventional techniques to present certain types of television program content to specific audiences for watching and/or recording.
Electronic program guide (EPG) data is parsed to identify and categorize age-range appropriate programming content and organize the identified content into kids recommended categories of programming content. In this implementation, information corresponding to the EPG data is organized into at least one custom category based on age specific criteria to generate a kids-recommended program guide (KRPG). The information organized in the category(s) includes corresponding program data descriptions. The program data descriptions are linked to source content data feeds and/or corresponding information in the EPG. The KRPG is in a data format for distribution to any number of client devices to facilitate selection of age-appropriate program data.
The following discussion is directed to generating recommended categories of individual episodes of child-appropriate (e.g., age-range targeted) program data. Such recommended categories include, for example, one or more age specific categories, educational, movie, holiday, popular series, and/or other categories. The recommended categories and specific episodes of programming content that comprise each recommended category are selected by an editorial staff based on any of a number of different criteria, such as by the amount of viewer traffic to certain types of program data.
A customized publishing tool distributes the custom category and program data selections as a kids-recommended program guide (KRPG) data for subsequent display in an onscreen program guide available in television entertainment systems (e.g., interactive TV networks, cable networks that utilize EPGs, and Web-enabled TV networks). The publishing tool periodically refreshes the KRPG data and continually removes program data in the KRPG data that has already aired. The onscreen program guide allows TV viewers to navigate through the KRPG data and easily locate age-appropriate shows for their children to watch and/or record.
Corresponding to each category is a sorted schedule of kids recommended programs as illustrated by the program items in column 104. In this example, the kids recommended programs for kids ages 5-8 are represented as the “First Show” through the “Sixth Show”. Each program is displayed in association with the channel over which it is broadcast (e.g., “SomeChannel”). In one implementation, only information corresponding to shows/program data that air over channels that can be received at a particular client device (e.g., a set-top box, DVR, etc.) are displayed in the UI 100. Alternatively, information corresponding to shows/program data that air over channels that can not be received at a particular client device (e.g., a set-top box, DVR, etc.) is grayed-out and unresponsive to viewer selection in the UI 100.
The number of shows represented in column 104 is a function of the number of shows that a particular producer (e.g., editorial staff) desires to represent within the particular category. The scroll window control 106 allows a viewer to scroll down through any additional kids recommended programs that may be in the list 104.
In one implementation, the top N children shows (e.g., 5-7 shows) recommended within each age category 102 bucket (e.g., ages 2-4, 5-8, and 9-12) are displayed in column 104 on a weekly basis, refreshed twice a week, and automatically expired from the category once they have aired. The top N recommended shows within rotating categories such as holiday, popular series, family, after-school specials, music, sports, and so on, are presented based on what a producer/editorial staff chooses for that time period (e.g., a week).
Popup menu 108 is displayed responsive to viewer selection of a particular show. The popup menu 108 allows the viewer to: (a) retrieve corresponding program information including, for example, the times the selected show airs; (b) record the selected program onto a video recorder (e.g., a DVR); and/or (c) set a reminder to be reminded of the selected program before the program airs. In one implementation, each particular program is associated with a corresponding “Info & Times” button control that is responsive to viewer selection to provide further descriptive information such as the air times and duration of the selected show, actors, ratings, and so on. For instance, responsive to viewer selection of “Info & Times” button control 110, popup window 112 is displayed to provide further descriptive information such as the air times and duration of the selected “First Show”, actors, ratings, and so on.
At least a subset of the elements of UI 100 are mapped to one or more Universal Resource Identifiers (URIs) that reference actual program data source content (i.e., a data feed maintained by a publisher 102 of
Client devices that receive and present the KRPG data (via an onscreen program guide) to viewers range from full-resource clients with substantial memory and processing resources (e.g., TV-enabled personal or general purpose computers, digital TV recorders equipped with hard-disks) to low-resource clients with limited memory and/or processing resources (e.g., set-top boxes, mobile devices such as laptops, personal digital assistants (PDAs), etc.). While aspects of the systems and methods described below can be used in any of these systems and for any types of clients, for purposes of discussion they are described in the context of a low-resource environment.
The EPG data is transferred as one or more electronic files 204 from the publisher 202 to a data center 206. As one example, the program data 204 is transferred using a file transfer protocol (FTP) over a TCP/IP network (e.g., Internet, UNIX, etc.) to the data center 206. The electronic file 206 is stored in an EPG database 208 at the data center 206.
The original version of the EPG data contains all of the programming information for multiple days. An EPG server 210 resides at the data center 206 to process the EPG data prior to distribution. For instance, the EPG server 210 creates different versions of the program data for different head end services to account for programming preferences and lineups. The EPG server 210 limits the EPG data to those channels that are relevant to the respective head ends. In the illustrated example, the EPG server 210 creates multiple versions of the EPG data, which are designated as EPG1, EPG2, . . . , EPGh, and stores them in respective databases 212(1), 212(2), . . . , 212(h). The data center 206 transfers the head end versions of the EPG data as electronic files 214 to associated head end services 220(1), 220(2), . . . , 220(h) using, for example, FTP or other suitable transfer protocols over a network.
At individual head end services such as at head end service 220(1), one or more head end servers 222 store the EPG data 214 into a head end database 224. The head end server 222 parses or evaluates the EPG data prior to distribution. The parsing involves one or more techniques to identify specific episodes of EPG data for inclusion in the KRPG data 225, which is stored by the head end server 222 in the head end database 224. Such techniques are described in greater detail below in reference to
For at least a portion of the information in the KRPG data 225, the head end server 222 further stores one or more corresponding URIs that respectively reference program time(s), actual source content, and so on. The URI(s) are generated from corresponding URI information provided by the EPG data 114. The URI(s) embedded into the KRPG data 225 are responsive to user selection when presented on a client device with an onscreen program guide. Responsive to such selection, a URI will tune the client device to a show, present the user with corresponding program data, and so on.
A carousel file system 226 periodically broadcasts the EPG file 214 and the KRPG data 225 as one or more electronic files 228 over an out-of-band (OOB) channel to the clients 232(1), 232(2), . . . , 232(c). The distributed file(s) 228 is/are not identical to the file 214 received from the data center 206 because it further includes the KRPG data 225. The distributed file(s) 228 may be in any of a number of different data formats such as any combination of Extensible Markup Language (XML), Hypertext Markup Language (HTML), and so on. Distribution from the head end 220 to the clients 232 may be accommodated in a number of ways, including cable, RF, microwave, network (e.g., Internet), and satellite.
In the illustrated implementation, the clients 232 are embodied as set-top boxes (STBs) connected to associated televisions 234(1), 232(2), . . . 234(c). The clients 232 are often equipped with sufficient processing and storage capabilities to store and run an operating system and a few programs. Examples of programs stored on a client might include a Web browser, an electronic programming guide (EPG), a personal scheduler, a digital video recording (DVR) programs, and so forth. Although the STBs are shown separately from the television sets, they may alternatively be built into the television sets as integral units. Furthermore, in other implementations, the clients may be embodied as other devices capable of handling EPG 214 and KRPG data 225 data (i.e., electronic file(s) 228), such as a broadcast-enabled computer, an information appliance, or the like.
One or more programs are stored in memory 304 and executed on processing unit 302. Such programs include KRPG module 320 and other program modules 322 such as an operating system (not shown) to provide a runtime environment. The KRPG module 320 provides a number of KRPG content authoring tools to facilitate program editor/editorial staff generation of the KRPG 225. More particularly, such tools facilitate parsing and/or evaluation of the EPG data 214 to identify specific episodes programming content for which corresponding EPG data is to be include in the KRPG 225. The EPG information corresponding to the identified episodes of program data are arranged under custom categories that respectively indicate the age-appropriateness of the identified episodes.
The UI 400 includes a Select/Edit Custom Category drop down menu 402, a Filter by FCC Ratings checkbox 404, a View/Change Category Rating dropdown menu 406, a Current Program(s) window 406, an Add Program(s) drop down menu 408, and an EPG data display window 416. The Select/Edit Custom Category menu 402 allows a producer/editorial staff to select, rename, and remove one or more already generated custom categories from the KRPG data file 225. For instance, in this example, the “Ages 9-12” category is highlighted to indicate user selection. Popup menu 412 (displayed, for example, responsive to user selection of a right mouse button) allows the user to rename or remove the selected category from the category list 402. To create a new category, the user selects the “<Create a New Category . . . >” item located, for instance, at the bottom of menu 402, whereupon the user is prompted to input a new custom category name in a text input field of a dialog box (not shown).
The Filter by FCC Ratings checkbox 404 is selectable (On/Off) to specify whether a selected category (menu 402) is to be associated with a particular FCC TV Parental Guidelines rating. Such ratings include, for example:
The Current Program(s) window 408 displays all program data that is currently assigned to the selected category (i.e., see menu 402). In one implementation, if the “Filter by FCC Rating” checkbox 404 is not selected, all selected category programs are displayed in window 408; otherwise, only those category programs that meet the selected rating (menu 406) are displayed in the window 408, or programs that do not meet the selected FCC rating are highlighted to indicate non-conformity with respect to the indicated rating.
In this example, window 408 shows that “The Third Show” program has been highlighted or selected. Popup menu 414, when displayed (e.g., by right clicking a mouse button on a selected program), allows the user to identify the rating of the program, and to provide custom commentary with respect to the show. Popup menu 414 further allows a user to remove the selected filter from the window 408 and from the corresponding KRPG data 225.
The Add Program(s) drop down menu 410 is used to add a program from the EPG data 214 to the selected category (i.e., as indicated by menu 402). Selected EPG data programs are added to the current programs window 408. EPG data 214 can be viewed in just about any conventional manner such as by date, time, or channel and/or combinations of these. The window 416, which is responsive to user selection of elements therein displayed, displays portions of the EPG data for user selection.
The particular portions of EPG data 214 that is displayed in the window 416 depends on criteria set in the View/Change Category Rating menu 406 (if activated) and/or according to the criteria indicated via the Add Program(s) menu 410. For instance, if a TV/Y rating has been selected for a particular category, only that EPG data 214 that conforms to that rating is displayed for selection. As respective pieces of program data specified by the EPG data 214 are selected by the user, a program is added to the program data filter(s) window 408.
Responsive to user selection of the “Apply” or “OK” controls, the KRPG data 225 is generated, updated, and/or otherwise modified based on the information specified via the KRPG manager UI 400. Although
The KRPG data 225 is maintained in a file structure. TABLE 1 shows an exemplary KRPG data file structure.
The information of TABLE 1 is organized with respect to customized tags in a data format such as Extended Markup Language (XML). For instance, the <KidsRecommendedProgramGuide> and </KidsRecommendedProgramGuide> tags encapsulate all KRPG data 225. All custom categories are defined between <CustomCategories> and </CustomCategories> tags. Each category begins and is identified with a <Category name=“. . . ”> tag and ends with a corresponding </Category> tag. Each category includes a <Rating> . . . </Rating> tag pair to identify the maximum particular rating of the category. In this example, the maximum rating for the “Ages 9-12” category is “TV-G”. It is a “maximum” rating because although it includes narrower program content ratings such as TY-Y and TY-7, it does not include content of more broad rating standards such as TY-14.
All program data for a particular category is identified between corresponding <Contents> and </Contents> tags. Each specific item of program data begins and is identified with the <Content name=“. . . ”> tag and ends with a corresponding </Content> tag. Each identified instance of program data includes further corresponding information such as start time (i.e., the <StartTime> . . . </StartTime> tag pair), program length or duration of the program (i.e., the <Duration> . . . </Duration> tag pair), and/or other information such as custom commentary (e.g., the <CustomInfo> . . . </CustomInfo> tag pair).
Each identified instance of program data further includes one or more resource referencing mechanisms to access additional information corresponding to the program content. For instance, the <ProgramTuning> . . . </ProgramTuning> tag pair includes a “transportStreamURI” parameter, which is a URI. In this particular example, the transportStreamURI parameter references the actual source content, which may be hosted by a server (e.g., a Web server, a broadcast server, etc), an in-band or out-of-band carousel (e.g., the carousel 326 of
In one implementation, the specified program is associated with a URI that references data that is deployed in the EPG data file 214. For example, the <EPGprogramDesc> . . . </EPGprogramDesc> tag pair includes a “transportStreamURI” that references additional program description, as indicated by the EPG data 214.
One or more memories are coupled to ASIC 504 to store software and data used to operate the client. In the illustrated implementation, the client has random access memory (RAM) 510, read only memory (ROM) 512, and flash memory 514. RAM 510 stores data used by the client, including the KRPG and EPG data file 228, as well as any compression table used to decompress the file. ROM 512 stores an operating system (not shown).
One or more programs may be stored in the ROM 512 or in the flash memory 514. In the illustrated example, the flash memory 514 stores a decompression program 520 that can be executed to decompress the KRPG and EPG data file 228. An EPG program 522 is also stored in the flash memory 514 to present the KRPG and EPG data for user viewing and interaction. The EPG program 522 may include a search engine 524 to search the EPG and/or KRPG data file in response to queries submitted by the viewer. The search engine might be used, for example, to locate particular television shows, custom categories, shows with a particular rating, title, or identify programs with selected actors. The EPG program 522 may automatically remove program data that has expired or already aired from the KRPG and EPG data 228.
The client 232 may further include other components, which are not shown for simplicity purposes. For instance, the client is typically equipped with hardware and/or software to present a graphical user interface (e.g., UI 100 described above in reference to
At block 602, one or more custom kids recommended categories (e.g., one or more age specific categories, educational, movie, holiday, popular series, and/or other categories) are specified. In one implementation this is accomplished by editorial staff selection and/or generation of a custom kids recommended category from the drop down menu 402 of UI 400.
At block 604, EPG data is parsed or otherwise evaluated to identify program data of interest for one or more of the specified custom categories. To accomplish this, as discussed above with respect to
At block 606, identified program data of interest (block 604) is organized under particular ones of the custom categories, thereby generating a kids-recommended program guide (i.e., KRPG 224 of
At block 608, the server 222 communicates the generated KRPG to a client device such as a set-top box 132 of
Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described.
For instance, although the processes of generating and managing the KRPG data 225 of
Accordingly, the specific features and acts of the detailed description are disclosed as exemplary forms of implementing the claimed invention.