Patent Publication Number: US-11051076-B2

Title: Systems and methods for displaying video content relevant to application content

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 16/053,444, filed with the United States Patent and Trademark Office (USPTO) on Aug. 2, 2018, which is a continuation of U.S. patent application Ser. No. 14/724,482, filed with the USPTO, on May 28, 2015, which claims priority to U.S. Provisional Patent Application Ser. No. 62/098,687, filed with the USPTO on Dec. 31, 2014. 
    
    
     TECHNICAL FIELD 
     The present disclosure generally relates to the viewing of media content. More particularly, the following discussion relates to systems, methods, and devices for viewing video content relating to application content. 
     BACKGROUND 
     Recent years have seen a dramatic increase in the number and type of media content sources that a user typically has access to, including, for example, streaming services, IP video-on-demand, network television programming, media content stored on digital video recorders, and a wide range of other sources. At the same time, the ubiquity of tablet computers, smartphones, and other computing devices has provided increased options for viewing such content. 
     While it is increasingly popular to view movies, television programs, and the like while simultaneously employing a web browser or other such application to read news items, perform web searches, and the like, the video content and application content are generally not related to each other, and are typically not presented in a way that enhances the user&#39;s viewing experience. 
     Accordingly, there is a need for improved systems, devices, and techniques for viewing video content. These and other desirable features and characteristics will become apparent from the subsequent detailed description and the claims, taken in conjunction with the accompanying drawings and this background section. 
     BRIEF SUMMARY 
     Several examples of systems, devices, methods, and user interfaces are described for viewing media content. A method in accordance with one embodiment includes displaying video content in a video region of a display; displaying application content in an application region of the display; determining, based on the application content, candidate video content relevant to the application content; determining, in response to user input, selected video content; and displaying the selected video content in the video region of the display. 
     A video content display system in accordance with one embodiment includes a computing device configured to display video content in a video region of a display and display application content in an application region of the display. The system further includes a media device communicatively coupled to the computing device over a network, the media device including a discovery engine configured to determine, based on the application content, candidate video content relevant to the application content and determine, in response to user input, selected video content. The computing device is configured to display the selected video content in the video region of the display. 
     A media device in accordance with one embodiment includes a processor and a memory configured to store computer-readable software instructions. The software instructions, when executed by the processor, cause the processor to: produce a first user interface; receive a request, via the first user interface, to compile a requested plurality of episodes of a selected media content; determine the availability of the requested plurality of episodes from a plurality of media content sources; compile the requested plurality of episodes; and present a second user interface including a series-order arrangement of the requested plurality of episodes. 
     Alternate embodiments, aspects and other features are described in more detail herein. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWING FIGURES 
       Exemplary embodiments will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements. 
         FIG. 1  is a block diagram illustrating a place-shifting system in which the present embodiments may be implemented. 
         FIG. 2  is a flowchart depicting a method in accordance with one embodiment. 
         FIG. 3  depicts a display layout in accordance with one embodiment. 
         FIGS. 4-6  illustrate a sequence of video displays illustrating operation of various embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     Systems and methods are provided for viewing video content (e.g., movies, short videos, and the like) relevant to application content (e.g., the contents of a web browser window being viewed alongside the video content). Briefly, video content is displayed in a video region of a display, while application content is displayed in an application region of the display. Based on the application content, candidate video content relevant to the application content is determined (e.g., via the parsing of text for keywords) and, in response to user input, the selected video content is displayed in the video region of the display. In that regard, the following detailed description of the invention is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any theory presented in the preceding background or the following detailed description. 
     The systems and methods described herein may be implemented in the context of a wide variety of entertainment devices and systems.  FIG. 1  depicts just one, non-limiting, example: a system  100  for placeshifting or otherwise transferring data or content, such as a media program (or media content), from a source electronic device  108  to a destination electronic device  104  over a network  106  for presentation to a user (or viewer) on the destination electronic device  104 . 
     For purposes of explanation, but without limitation, the source device  108  may be alternatively referred to herein as a media device or a placeshifting device, and the destination electronic device  104  may be alternatively referred to herein as a playback device or a client device (or client). The placeshifting system  100  also includes a host server  102  (or host) that communicates or otherwise interacts with the devices  104 ,  108  over the network  106  to facilitate establishment of a peer-to-peer connection  180  over the network  106 , which may be utilized for a placeshifting session. 
     In one embodiment, as described in further detail below, source device  108  includes a discovery engine  191  including any suitable combination of hardware and/or software configured to locate video content within one or more content sources (e.g., content source  126 ) relevant to application content (e.g., web browser content) being viewed by a user. 
     It should be understood that  FIG. 1  is a simplified representation of the placeshifting system  100  for purposes of explanation is not intended to limit the subject matter described herein in any way. 
     In practice, the client device  104  may be any device, component, module, hardware and/or the like that is capable of communicating with the server  102  over network  106 . For example, depending on the embodiment, client device  104  may be realized as a conventional personal computer, portable computer, a tablet computer, workstation and/or other computing system, a mobile (or cellular) telephone, a smartphone, a personal digital assistant, a video game player, and/or any other device capable of receiving media programs via the network  106  and presenting audio and/or visual content. In this regard, the client device  104  includes a display device, such as a monitor, screen, or another conventional electronic display, capable of graphically presenting visual content, data, and/or information that is generated or otherwise provided by an application  105 ,  107  executing on the client  104 . The client device  104  may further include a user input device, such as a keyboard, a mouse, a touchscreen, or the like, capable of receiving input data and/or other information from the user of the client device  104 . The client device  104  also includes a processing system and a data storage element (or memory) that is coupled to or otherwise accessed by the processing system and stores programming instructions that, when read and executed, cause the processing system of the client device  104  to generate one or more applications  105 ,  107 ,  109  executing thereon and perform various tasks, functions, processes and/or operations and support the subject matter described herein. The processing system may be realized as any sort of processor, microprocessor, microcontroller, digital signal processor, or any other suitable processing device, or any suitable combination thereof. 
     The client  104  may reside at a geographic location that is remote or otherwise physically distinct from the geographic location of the media device  108 . In this regard, the media device  108  may have an essentially fixed or permanent geographic location, whereas the geographic location of the client  104  may be transient or otherwise variable with respect to the location of the media device  108 . For example, the media device  108  may be realized as a Set-Top Box (STB) or a similar device that resides at a user&#39;s home for providing media content to the user&#39;s television or other home display device  140 , while the client  104  is realized as a portable electronic device, such as a mobile phone or other mobile computing device, that moves about with the user. 
     In the embodiment shown in  FIG. 1 , client device  104  executes a conventional browser or other client application  105  that is compatible with standard Internet, world wide web (WWW), transmission control protocol, and/or Internet Protocol (TCP/IP), and/or other formats. Such browsers are typically capable of displaying active or other documents formatted in accordance with published protocols and/or computer languages (e.g., hypertext markup language (HTML), extensible markup language (XML), cascading style sheets (CSS), Javascript, and/or the like). Many browsers are also capable of executing “plugin” applications, applets or the like. Such plugins may be formatted in accordance with ActiveX, JAVA, Javascript and/or any number of other formats. A number of commonly used web browsers are available for a number of different computing platforms, and the subject matter described herein is not limited to any particular browser application. In the illustrated embodiment, client  104  further includes a media player application  107 . The media player  107  may be a standalone media player, or the media player  107  may be implemented as a plugin or other applet that runs within the client application  105  as desired. In some embodiments, media player  107  is initially obtained from a networked host, such as server  102 . The media player  107  may be retrieved on an as-needed basis in some embodiments, or may be stored at client  104  for subsequent execution. 
     With continued reference to  FIG. 1 , in exemplary embodiments, media device  108  is any form of device, module, component, hardware and/or the like capable of receiving and processing media content from one or more content sources. For example, in some embodiments, media device  108  is a STB or similar system that is able to receive television programming and/or to record certain programs that can be viewed on a display device  140 , such as a television, monitor, liquid crystal display (LCD), light emitting diode (LED) display, plasma display, or the like. Exemplary embodiments of media device  108  will therefore include or otherwise be coupled to a receiver interface  142  for receiving satellite, cable and/or broadcast programming signals from broadcast sources  112 , as well as a data storage medium  110  (e.g., a hard disk, flash memory, or another suitable non-volatile data storage element) to support a digital video recorder (DVR) feature and/or functionality, a display interface  144  for providing imagery to the display device  140 , and a control module  146  that directs the operations of the media device  108  as appropriate. For convenience, but without limitation, the data storage medium  110  is alternatively referred to herein as a DVR. Media device  108  may also include one or more interfaces  148  to the network  106  and/or an input/output interface  150  to a remote control or other device for providing user inputs to the media device  108 , as appropriate. For example, the network interface(s)  148  of the media device  108  may include an interface or port for a wired communications layer (e.g., an Ethernet port or adapter), an interface for a wireless communications layer (e.g., an IEEE 802.11-compatible transceiver), and/or the like. 
     The components in media device  108  may be provided within a common chassis or housing as depicted in  FIG. 1 , although equivalent embodiments may implement media device  108  with any number of inter-connected but discrete components or systems. For example, in some embodiments, the media device  108  may be realized as a combination of a STB and a placeshifting device, wherein some features of the media device  108  (e.g., the DVR  110 , the receiver  142 , the display interface  144 , and/or I/Os  150 ) are implemented by the STB and other features of the media device  108  (e.g., the network interface  148 ) are implemented by the placeshifting device, wherein the placeshifting device works in conjunction with the STB to shift the viewing experience from a home television (e.g., display device  140 ) to a viewing display on the client device  104  that is accessed via the network  106 . Examples of placeshifting devices that may be used in some embodiments of media device  108  could include any of the various SLINGBOX products available from Sling Media of Foster City, Calif., although other products or servers could be used in other embodiments. Many different types of placeshifting devices are generally capable of receiving media content from an external source, such as any sort of DVR or STB, cable or satellite programming source, DVD player, and/or the like. In other embodiments, placeshifting features are incorporated within the same device that provides content-receiving or other capabilities. Media device  108  may be a hybrid DVR and/or receiver, for example, that also provides transcoding and placeshifting features. It should be appreciated that  FIG. 1  depicts merely one exemplary embodiment of a media device  108 , and in practice, the media device  108  may be logically and physically implemented in any manner to suit the needs of a particular embodiment. 
     In the exemplary embodiment illustrated in  FIG. 1 , media device  108  is capable of receiving digital broadcast satellite (DBS) signals transmitted from a broadcast source  112 , such as a satellite, using an antenna  152  that provides received signals to the receiver  142 . Equivalent embodiments, however, could receive programming at receiver  142  from any sort of cable connection, broadcast source, removable media, network service, external device and/or the like. In some embodiments, the media device  108  may also include an access card interface or card reader  154  adapted to receive an access card  160  (or viewing card) configured to ensure that the viewer is authorized to view media content provided to the primary display device  140 . In this regard, the access card  160  includes unique identification information associated with a particular subscriber to the broadcast content source  112  or otherwise includes subscription information that facilitates receiving and/or decoding media content provided by the broadcast content source  112 . 
     The DVR  110  feature stores recorded programming (e.g., recorded broadcast programming received via receiver  142 ) on a hard disk drive, memory, a networked server, or other storage medium as appropriate in response to user/viewer programming instructions, wherein the recorded programming may be subsequently viewed via the media device  108 , either on display device  140  or client device  104  via network  106 . Content stored in DVR  110  may be any sort of file-based programming or other content that is accessible to media device  108 . In various embodiments, in addition to storing broadcast programming, the DVR  110  may also store programming received from other sources not illustrated in  FIG. 1 , such as, for example, programming downloaded from an on-demand programming source or an online programming source. Additionally, content in DVR  110  may be stored in any sort of compressed or uncompressed format, as desired, and may be encoded or transcoded as desired for effective receipt, storage, retrieval, and playing. 
     The control module  146  is any sort of hardware, circuitry, processing logic and/or other components capable of directing the operations of media device  108 . In various embodiments, control module  146  includes software or firmware logic and/or other programming instructions residing in memory and executing on any sort of processing system, such as any sort of processor, microprocessor, microcontroller, digital signal processor or the like. The instructions, when read and executed, cause the control module  146  to perform various tasks, functions, processes and/or operations and otherwise support the subject matter described herein. In various embodiments, the control module  146  is based upon a “system on a chip” (SoC) implementation that incorporates a hybrid microcontroller with memory, input/output and other features to perform the various signal processing and other actions of media device  108 . Other embodiments may implement control module  146  and/or the other features of media device  108  with any number of discrete and/or integrated processing components (e.g., any sort of microprocessor or microcontroller), memories, input/output features and/or other features as desired. The control module  146  communicates with the network interface  148  to establish a peer-to-peer connection  180  to the client device  104  over the network  106  and support streaming of media programs (e.g., from the DVR  110  or the receiver  142 ) to the client device  104  over the network  106  via the peer-to-peer connection  180 , as described in greater detail below. 
     In the embodiment of  FIG. 1 , the network  106  is any communications network (or a combination of communications networks) capable of transmitting data between devices within the system  100 . In various embodiments, network  106  includes any number of public or private data connections, links or networks supporting any number of communications protocols. Network  106  may include the Internet, for example, or any other network. Such networks may be based upon TCP/IP or other conventional protocols, although other embodiments may use any type of alternate or successor protocols, as desired. In various embodiments, network  106  may also incorporate a wireless and/or wired telephone network, such as a cellular communications network for communicating with mobile phones, personal digital assistants, and/or the like. Various embodiments of network  106  may also incorporate any sort of wireless or wired local area networks (LANs), wide area networks (WAN), or the like. 
     In the illustrated embodiment of  FIG. 1 , the server  102  may be realized as one or more server computers or other device(s) coupled to the network  106  and capable of interacting with the devices  104 ,  108  to facilitate communications between the client device  104  and the media device  108  associated with the user or operator of the client  104 . The server  102  may be implemented with a server computer system or data processing system that is based upon any processor, architecture and/or operating system, and will typically be implemented using a processing system  130 , memory  132 , and input/output features  134 . Various embodiments may be implemented using dedicated or shared hardware servers; other implementations may make use of virtual server features as part of a “cloud computing” service, such as any of the cloud computing services provided by any number of providers. 
     While  FIG. 1  illustrates a single server  102 , many practical embodiments of the system  100  may provide a cluster or other collection of multiple host servers  102  to support any desired number of simultaneous communications with multiple clients  104  and/or multiple media devices  108 . This cluster may also incorporate appropriate routing, load balancing, access and security mechanisms and or any number of other features. In various embodiments, each server  102  is an actual or virtual computer system executing an operating system  136  in conjunction with the processing system  130 , memory  132  and/or I/O features  134  to provide a computing core that is capable of executing a portal application  138 , as well as any number of daemons, processes, applications, or other modules as desired. For example, a portal application  138  could execute as a daemon on the server  102 , with connections to separate clients  104  being managed as separate processes or instances that communicate with portal application  138  using features provided by operating system  136 . In one or more embodiments, the memory  132  stores programming instructions that, when read and executed, cause the processing system  130  to create, generate, or otherwise facilitate the portal application  138  and perform various tasks, functions, processes, and/or operations described herein. In this regard, the memory  132  represents any non-transitory short or long term data storage element or other computer-readable media capable of storing programming instructions for execution by or on the processing system  130 . 
     The user of the client  104  is able to connect to the portal application  138  supported by host  102  via the network  106 , for example, by directing the client application  105  to a URL or other network address associated with host  102  and/or portal application  138 . In exemplary embodiments, after the user is successfully authenticated by the portal application  138 , the host  102  and/or portal application  138  establishes a connection  170  over the network  106  to the media device  108  that is associated with the user. Thereafter, the host  102  and/or the portal application  138  utilizes the connection  170  to obtain, from the media device  108  via the network  106 , information about programming stored at the media device  108  and available for placeshifting to the client device  104 , such as, for example, a listing of the media programs stored on DVR  110 . It should be noted that although  FIG. 1  depicts the network connection  170  as being between the host  102  and the media device  108 , in practice, the placeshifting system  700  may include one or more intermediary components (e.g., one or more message servers) configured to establish, facilitate, or otherwise support the connection  170 . 
     Server  102  is coupled to an electronic program guide  122 , which may be realized as a server, a database, or another device operating on the network  106  that maintains information pertaining to current and/or future broadcasts (or airings) of media programs that are available to be received from broadcast source  112  (e.g., by the media device  108  via receiver  142  and/or antenna  152 ). The server  102  and/or the portal application  138  may obtain information pertaining to current and/or future broadcasts (or airings) of media programs from the electronic program guide  122  and generate or otherwise provide a program guide graphical user interface (GUI) display on the client device  104  (e.g., within client application  105 ) that indicates media programs that are or will be available for streaming from the media device  108 . The user of the client device  104  may manipulate or otherwise utilize the graphical user interface (or the graphical user interface elements contained therein) to select or otherwise identify media programs for streaming to the client device  104  and/or recording to the DVR  110 . The user may pause or otherwise stop presentation of the streamed media program and manipulate or otherwise operate the client application  105  to transmit or otherwise provide  412 , via the network  106 , a request for content to a third-party content source  126  (e.g., a third-party website). The third-party content source  126  responds to the request by transmitting or otherwise providing content to the client device  104  via the network  106 . 
     In the illustrated embodiment of  FIG. 1 , the placeshifting system  100  also includes a media program database  124  that includes verified or validated metadata and/or other descriptive information for a vast array of media programs. For example, the media program database  124  may contain metadata and/or other descriptive information pertaining to substantially all of the media programs that may be available from one or more content sources within placeshifting system  100  (e.g., information pertaining to any media programs that have previously been aired by a broadcast source  112 , along information pertaining to any movie that has been presented in theaters, made available on-demand, or released for individual use (e.g., on digital video disc (DVD) or the like)). In exemplary embodiments, for each media program having a record (or entry) in the media program database  124 , the media program database  124  maintains a media data object that includes one or more fields of metadata associated with that media program along with one or more fields of program identifiers that may be used to identify that media program record. In this regard, the program guide  122  and the media program database  124  may utilize the same program identifiers to uniquely identify each media program. 
     Having thus given an overview of an exemplary system in which the various embodiments described herein may be employed, an exemplary method will now be generally described in conjunction with  FIGS. 1 and 2 . Initially, at step  202 , video content is displayed in a video region (e.g., a display associated with computing device  104  of  FIG. 1 ), while application content is simultaneously displayed in an application region of the display. The application and video regions of the display may be configured in a variety of ways (e.g., side-by-side, top-to-bottom, etc.). More particularly, referring briefly to  FIG. 3 , an exemplary layout  300  includes a notification header region  308 , a video region  302  near the left side of the display, an application region  304  to the right of video region  304 , and an options region  306  adjacent the bottom portion of video region  302 . Those skilled in the art will recognize that the particular geometry, size, and placement of regions  302 ,  304 ,  306 , and  308  are not intended to be limiting. However, the layout  300  illustrated in  FIG. 3  is desirable in that it allows video content to be viewed in a relatively large window  302  alongside a slightly narrower region  304  allowing application content (e.g., a news feed, search results, etc.) to be viewed on the right. 
     Referring again to  FIG. 2 , the method includes (at step  204 ) determining, based on application content, candidate video content. This step may be performed in a variety of ways and by one or more components illustrated in  FIG. 1 . For example, any text appearing within the application content displayed in application region  304  may be parsed for keywords (e.g., “homeland,” “earthquakes,” etc.), and those keywords may be used to query a database of available video content. Parsing of the text may be performed, in one embodiment, by computing device  104  (e.g., through a Javascript application, browser plug-in, or the like). The set of keywords may then be transmitted to media device  108  over network  106  and further processed by discovery engine  191 . In one embodiment, discovery engine  191  utilizes the set of keywords to query media program database  124 , thereby determining candidate video content matching (e.g., via natural language processing) the set of keywords. 
     Next, at step  206 , the candidate video content is presented to the user, allowing the user to select the desired video content. The selected video content is then displayed within the video region  302 , displacing the video that the user had been previously viewing. 
     Having thus given a general overview of a method in accordance with one embodiment,  FIGS. 4-6  present a sequence of images corresponding to a particular, non-limiting example. As shown in  FIG. 4 , video content  430  (e.g., a streaming movie as shown) is displayed within a video region  430  alongside application content (news items  420 A-C) within an application region  404 . Also shown is a notification bar  408  (e.g., for displaying social networking status, alerts, and other such notifications) and a list of content sources  410 A,  410 B within an options region  406 . As will be apparent, news items  420 A-C, which relate to news regarding North Korea, do not relate to video content  430  being displayed within video region  402 . 
     Referring to  FIG. 5 , application region  404  reflects the case where the user has selected news item  420 A of  FIG. 4 , resulting in an expanded news story being displayed within application region  404 . At this point, the text within application region  404  may be parsed (e.g., by a plug-in or other application running on the device on which video content  430  is being displayed) to determine relevant keywords (e.g., “North Korea”, “German Shepherd”, “Kim Jong-Un”, etc.). As mentioned above, these keywords can then be transmitted to a remote device (e.g., device  108 ) capable of querying an external database (e.g., media program database  124 ) to locate candidate video content whose title or other metadata matches to some extent the set of relevant keywords. 
       FIG. 6  illustrates the result, in which the candidate video content  610 A,  610 B is displayed within options regions  406 . That is, thumbnails of relevant videos (i.e., each relating to North Korea) are presented to the user, and a selected video ( 630 ) is being displayed within video region  402 . 
     Many other modifications and enhancements could be provided in a wide array of alternate but equivalent embodiments. The term “exemplary” is used herein to represent one example, instance or illustration that may have any number of alternates. Any implementation described herein as exemplary is not necessarily to be construed as preferred or advantageous over other implementations. While several exemplary embodiments have been presented in the foregoing detailed description, it should be appreciated that a vast number of alternate but equivalent variations exist, and the examples presented herein are not intended to limit the scope, applicability, or configuration of the invention in any way. To the contrary, various changes may be made in the function and arrangement of elements described without departing from the scope of the claims and their legal equivalents.