Patent ID: 12206961

DETAILED DESCRIPTION OF THE DRAWINGS

FIG.1shows an illustrative system for presenting missed portions of a storyline at a relevant time point.FIG.1depicts user equipment102, which is displaying content104(illustrated as an animated movie). User equipment102is depicted as a tablet device inFIG.1. In some embodiments, user equipment102may be a smartphone, set-top box, personal computer, or other device suitable for rendering content (e.g., movies, television shows, linear programming, and over-the-top (OTT) content). The user equipment is also displaying a time bar105that includes a current position indicator106, which is approximately 80 percent down the time bar for the content.

InFIG.1, two viewers are observing content104—viewer A141and viewer B142. The summary application detects that viewer B142missed some portion of the content104between two timepoints, TP1and TP2. In some embodiments, the summary application may determine that viewer B142missed this portion of the content by tracking viewers that are present using a camera during display of the content. A camera may be a part of user equipment102and may track the faces of viewers A and B. In a scenario in which the camera is unable to detect one or more viewers for a time period, the summary application may determine that the user is absent and may record which portions of a content a viewer is missing in an interaction log. In some embodiments, the summary application may track which portions of content a viewer is present for and log that information in an interaction log specific to a viewer. The summary application may then reference the interaction log for that viewer at a later time and determine that specific content, or portions of content, are not in the interaction log, which indicates that the viewer missed the content or portions of content. The summary application may detect when viewer B returns to the viewing area of content103at a timepoint TP2(marked by current position indicator106), e.g., using the same techniques used to build the interaction log. The summary application may also determine that a summary of the missed content between timepoints TP1and TP2should be presented to viewer B without interrupting the playback of media104for viewer A.

InFIG.1, the summary application determines which portions of the missed content to include in the summary for viewer B. For example, the summary application may compare the time period for which viewer B was absent from the viewing area to the timeline of the content104. Using that information, the summary application can determine which time period of the content104viewer B has missed. The summary application may split content104into portions of any appropriate size and the portions may not be the same size. The portions illustrated inFIG.1are exemplary.

FIG.2is an example of a data structure which contains information about portions which comprise content (e.g., content104). The data structure may contain portion IDs, such as IDs41-56as illustrated inFIG.2. Often content comprises one or more storylines which are narratives that, along with other narratives, makes up a plot in content. Portions of the content may correspond to various storylines. InFIG.2, the data structure assigns each portion ID to a particular storyline ID (e.g., storylines A, B, and C). This indicates which portions are related to the same storyline (i.e., they make up the same narrative). Content may contain contiguous storylines or may switch between several storylines. As illustrated inFIG.2, additional information in the data structure may include start and end points of each portion, dependency information between portions, summary identifiers, and other relevant information. In some embodiments, the information describing the portions and storylines which make up a content may be stored in the metadata of the content. By analyzing the metadata, the summary application may be able to determine which portions and storylines viewer B missed based on the timepoints TP1and TP2.

InFIG.1, viewer B has missed parts of storyline A, storyline B, and storyline C, and has returned during a presentation of storyline C (denoted as SL-A, SL-B, and SL-C inFIG.1). The summary application determines a storyline specific summary for viewer B142when viewer B142returns at timepoint TP2. The summary application may create a summary which only includes content that is necessary for viewer B142to understand the content104at timepoint TP2. In other words, the summary application is generating content related to storyline C at timepoint TP2. Therefore, the summary application can generate a summary relevant to the current content by summarizing the storyline C content that was missed by viewer B between timepoints TP1and TP2. In some embodiments, the summary application may further include other portions of the content104on which storyline C is dependent in the summary at timepoint TP2. The summary application may access the data structure inFIG.2to determine which portions of storyline A and B to include in the summary based on dependency. In some embodiments, the summary application may summarize other missed portions of the content104at a later point. For example, the summary application may present a summary of the missed portions of storyline A before playing the final section of storyline A. In another example, the summary application may present a summary of the missed portions of storyline B at the end of the program, as there are no other sections of storyline B after viewer B returns.

In some embodiments, the summary application may present a summary of missed storyline C content (and content on which storyline C is dependent) in summary presentation112. The summary application may display summary presentation112on an additional user device144, such as a mobile phone or tablet. In another embodiment, user equipment102may modify the display of content104so as to allow for the dual presentation of content104and summary presentation112(e.g., split screen presentation).

The instructions for performing any of the embodiments discussed herein may be encoded on computer readable media. Computer readable media includes any media capable of storing data. The computer readable media may be transitory, including, but not limited to, propagating electrical or electromagnetic signals, or may be non-transitory including, but not limited to, volatile and non-volatile computer memory or storage devices such as a hard disk, floppy disk, USB drive, DVD, CD, media cards, register memory, processor caches, Random Access Memory (“RAM”), etc.

Applications may be, for example, stand-alone applications implemented on user equipment devices, content sources, or servers. For example, the summary application may be implemented as software or a set of executable instructions, which may be stored in storage (e.g., storage308or storage414) and executed by control circuitry (e.g., control circuitry304or control circuitry411). In some embodiments, applications may be client-server applications where only a client application resides on the user equipment device (e.g., user equipment102) and a server application resides on a remote server (e.g., server404). For example, applications may be implemented partially as a client application on control circuitry304of each one of user equipment devices300and user equipment system301and partially on a remote server such as a server application (e.g., server404) running on control circuitry (e.g.,411) of the remote server. When executed by control circuitry of the remote server (such as server404), the summary application may instruct the control circuitry to generate the content delivery application displays and transmit the generated displays to the user equipment devices. The summary application may instruct the control circuitry of the content source to transmit data for storage on the user equipment. The client application may instruct control circuitry of the receiving user equipment to generate the content delivery application displays.

Users may access content and the applications from one or more of their media devices, e.g., user equipment.FIG.3shows generalized embodiments of an illustrative device, e.g., user equipment102. For example, user equipment102may be a smartphone device, a tablet, or a remote control, such as illustrative user equipment300. In another example, user equipment102may be part of a user equipment system301. User equipment system301may include a set-top box316. Set-top box316may be communicatively connected to speaker314and display312. In some embodiments, display312may be a television display or a computer display. In some embodiments, set-top box316may be communicatively connected to user interface input310. In some embodiments, user interface input310may be a remote-control device. Set-top box316may include one or more circuit boards. In some embodiments, the circuit boards may include control circuitry and storage (e.g., RAM, ROM, Hard Disk, Removable Disk, etc.). In some embodiments, circuit boards may include an input/output path. More specific implementations of user equipment devices are discussed below in connection withFIG.4. Each one of user equipment devices300and user equipment system301may receive content and data via input/output (hereinafter “I/O”) path302. I/O path302may provide content (e.g., broadcast programming, on-demand programming, Internet content, content available over a local area network (LAN) or wide area network (WAN), and/or other content) and data to control circuitry304and storage308. Control circuitry304may be used to send and receive commands, requests, and other suitable data using I/O path302. I/O path302may connect control circuitry304to one or more communications paths (described below). I/O functions may be provided by one or more of these communications paths but are shown as a single path inFIG.3to avoid overcomplicating the drawing.

Control circuitry304should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores) or supercomputer. In some embodiments, control circuitry may be distributed across multiple separate units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor). In some embodiments, control circuitry304executes instructions for an application stored in memory (e.g., storage308). Specifically, control circuitry304may be instructed by the application to perform the functions discussed above and below. For example, the application may provide instructions to control circuitry304to generate the displays. In some implementations, any action performed by control circuitry304may be based on instructions received from the application.

In client server-based embodiments, control circuitry304may include communications circuitry suitable for communicating with a content recommendation application server (e.g., server404) or other networks or servers. The instructions for carrying out the above-mentioned functionality may be stored on the content recommendation application server. Communications circuitry may include a cable modem, an integrated services digital network (ISDN) modem, a digital subscriber line (DSL) modem, a telephone modem, Ethernet card, or a wireless modem for communications with other equipment, or any other suitable communications circuitry. Such communications may involve the Internet or any other suitable communications networks or paths. In addition, communications circuitry may include circuitry that enables peer-to-peer communication of user equipment devices, or communication of user equipment devices in locations remote from each other (described in more detail below).

Memory may be an electronic storage device provided as storage308that is part of control circuitry304. As referred to herein, the phrase “electronic storage device” or “storage device” should be understood to mean any device for storing electronic data, computer software, or firmware, such as random-access memory, read-only memory, hard drives, non-transitory computer readable medium, or any other suitable fixed or removable storage devices, and/or any combination of the same. Storage308may be used to store various types of content, media guidance data, content summaries, and instructions for executing content access applications. Nonvolatile memory may also be used (e.g., to launch a boot-up routine and other instructions).

Control circuitry304may include video-generating circuitry and tuning circuitry, such as one or more analog tuners, one or more MPEG-2 decoders or other digital decoding circuitry, high-definition tuners, or any other suitable tuning or video circuits or combinations of such circuits. Encoding circuitry (e.g., for converting over-the-air, analog, or digital signals to MPEG signals for storage) may also be provided. Control circuitry304may also include scaler circuitry for upconverting and downconverting content into the preferred output format of the user equipment300. Circuitry304may also include digital-to-analog converter circuitry and analog-to-digital converter circuitry for converting between digital and analog signals. The tuning and encoding circuitry may be used by the user equipment device to receive and to display, to play, or to record content. The tuning and encoding circuitry may also be used to receive guidance data. The circuitry described herein, including for example, the tuning, video-generating, encoding, decoding, encrypting, decrypting, scaler, and analog/digital circuitry, may be implemented using software running on one or more general purpose or specialized processors. Multiple tuners may be provided to handle simultaneous tuning functions (e.g., watch-and-record functions, picture-in-picture (PIP) functions, multiple-tuner recording, etc.). If storage308is provided as a separate device from user equipment300, the tuning and encoding circuitry (including multiple tuners) may be associated with storage308.

A user may send instructions to control circuitry304using user input interface310. User input interface310may be any suitable user interface, such as a remote control, mouse, trackball, keypad, keyboard, touchscreen, touchpad, stylus input, joystick, voice recognition interface, or other user input interfaces. Display312may be provided as a stand-alone device or integrated with other elements of each one of user equipment device300and user equipment system301. For example, display312may be a touchscreen or touch-sensitive display. In such circumstances, user input interface310may be integrated with or combined with display312. A video card or graphics card may generate the output to the display312. The video card may offer various functions such as accelerated rendering of 3D scenes and 2D graphics, MPEG-2/MPEG-4 decoding, TV output, or the ability to connect multiple monitors. The video card may be integrated with the control circuitry304. Speakers314may be provided as integrated with other elements of each one of user equipment device300and user equipment system301or may be stand-alone units. The audio component of videos and other content displayed on display312may be played through speakers314. In some embodiments, the audio may be distributed to a receiver (not shown), which processes and outputs the audio via speakers314.

The summary application may be implemented using any suitable architecture. For example, the summary application may be a stand-alone application wholly implemented on each one of user equipment device300and user equipment system301. In such an approach, instructions for the application are stored locally (e.g., in storage308), and data for use by the application is downloaded on a periodic basis (e.g., from an out-of-band feed, from an Internet resource, or using another suitable approach). Control circuitry304may retrieve instructions of the application from storage308and process the instructions to generate any of the displays discussed herein. Based on the processed instructions, control circuitry304may determine what action to perform when input is received from input interface310. For example, movement of a cursor on a display up/down may be indicated by the processed instructions when input interface310indicates that an up/down button was selected.

In some embodiments, the applications are client-server-based applications. Data for use by a thick or thin client implemented on each one of user equipment device300and user equipment system301is retrieved on-demand by issuing requests to a server remote to each one of user equipment device300and user equipment system301. In one example of a client-server-based summary application, control circuitry304runs a web browser that interprets web pages provided by a remote server (e.g., server404). For example, the remote server may store the instructions for the application in a storage device (e.g.,414). The remote server may process the stored instructions using circuitry (e.g., control circuitry411) and generate the displays discussed above and below. The client device may receive the displays generated by the remote server and may display the content of the displays locally on equipment device300. This way, the processing of the instructions is performed remotely by the server while the resulting displays are provided locally on equipment device300. Equipment device300may receive inputs from the user via input interface310and transmit those inputs to the remote server for processing and generating the corresponding displays. For example, equipment device300may transmit a communication to the remote server indicating that an up/down button was selected via input interface310. The remote server may process instructions in accordance with that input and generate a display of the application corresponding to the input (e.g., a display that moves a cursor up/down). The generated display is then transmitted to equipment device300for presentation to the user.

In some embodiments, the applications are downloaded and interpreted or otherwise run by an interpreter or virtual machine (run by control circuitry304). In some embodiments, the applications may be encoded in the ETV Binary Interchange Format (EBIF), received by control circuitry304as part of a suitable feed, and interpreted by a user agent running on control circuitry304. For example, the applications may be an EBIF application. In some embodiments, the content delivery application may be defined by a series of JAVA-based files that are received and run by a local virtual machine or other suitable middleware executed by control circuitry304. In some of such embodiments (e.g., those employing MPEG-2 or other digital media encoding schemes), the applications may be, for example, encoded and transmitted in an MPEG-2 object carousel with the MPEG audio and video packets of a program.

FIG.4is a diagram of an illustrative media system, in accordance with some embodiments of the disclosure. User equipment devices408and410(such as user equipment device102and/or122) may be coupled to communication network406. Communication network406may be one or more networks including the Internet, a mobile phone network, mobile voice or data network (e.g., a 4G or LTE network), cable network, public switched telephone network, or other types of communications network or combinations of communications networks. Paths (e.g., depicted as arrows connecting the respective devices to communication network406) may separately or together include one or more communications paths, such as a satellite path, a fiber-optic path, a cable path, a path that supports Internet communications (e.g., IPTV), free-space connections (e.g., for broadcast or other wireless signals), or any other suitable wired or wireless communications path or combination of such paths. Communications with the client devices may be provided by one or more of these communications paths but are shown as a single path inFIG.4to avoid overcomplicating the drawing.

Although communications paths are not drawn between user equipment devices, these devices may communicate directly with each other via communication paths as well as other short-range, point-to-point communication paths, such as USB cables, IEEE 1394 cables, wireless paths (e.g., Bluetooth, infrared, IEEE 802-11x, etc.), or other short-range communication via wired or wireless paths. BLUETOOTH is a certification mark owned by Bluetooth SIG, INC. The user equipment devices may also communicate with each other directly through an indirect path via communication network406.

System400includes media content source402and server404. Communications with the media content source402and server404may be exchanged over one or more communications paths but are shown as a single path inFIG.4to avoid overcomplicating the drawing. In addition, there may be more than one of each of media content source402and server404, but only one of each is shown inFIG.4to avoid overcomplicating the drawing. If desired, media content source402and server404may be integrated as one source device.

In some embodiments, the server404may include control circuitry411and storage414(e.g., RAM, ROM, Hard Disk, Removable Disk, etc.). The server404may also include an input/output path412. I/O path412may provide device information, or other data, over a local area network (LAN) or wide area network (WAN), and/or other content and data to control circuitry411, which includes processing circuitry, and storage414. Control circuitry411may be used to send and receive commands, requests, and other suitable data using I/O path412. I/O path412may connect control circuitry304(and specifically processing circuitry) to one or more communications paths.

Control circuitry411may be based on any suitable processing circuitry such as one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores) or supercomputer. In some embodiments, control circuitry411may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor). In some embodiments, control circuitry411executes instructions for an emulation system application stored in memory (e.g., storage414).

Memory may be an electronic storage device provided as storage414that is part of Control circuitry411. As referred to herein, the phrase “electronic storage device” or “storage device” should be understood to mean any device for storing electronic data, computer software, or firmware, such as random-access memory, read-only memory, hard drives, solid state devices, quantum storage devices, or any other suitable fixed or removable storage devices, and/or any combination of the same. Nonvolatile memory may also be used (e.g., to launch a boot-up routine and other instructions).

Server404may retrieve guidance data from media content source402, process the data as will be described in detail below, and forward the data to the client devices408and410. Media content source402may include one or more types of content distribution equipment including a television distribution facility, cable system headend, satellite distribution facility, programming sources (e.g., television broadcasters, such as NBC, ABC, HBO, etc.), intermediate distribution facilities and/or servers, Internet providers, on-demand media servers, and other content providers. NBC is a trademark owned by the National Broadcasting Company, Inc., ABC is a trademark owned by the American Broadcasting Company, Inc., and HBO is a trademark owned by the Home Box Office, Inc. Media content source402may be the originator of content (e.g., a television broadcaster, a Webcast provider, etc.) or may not be the originator of content (e.g., an on-demand content provider, an Internet provider of content of broadcast programs for downloading, etc.). Media content source402may include cable sources, satellite providers, on-demand providers, Internet providers, over-the-top content providers, or other providers of content. Media content source402may also include a remote media server used to store different types of content (including video content selected by a user), in a location remote from any of the client devices. Systems and methods for remote storage of content and providing remotely stored content to user equipment are discussed in greater detail in connection with Ellis et al., U.S. Pat. No. 7,761,892, issued Jul. 20, 2010, which is hereby incorporated by reference herein in its entirety.

Media content source402may also provide summary data that can be used to create carousels and queries as described herein. Media content source402may also provide content summaries data that can be used to create summaries of missed content as described herein. Media guidance data and content summaries may be provided to the client devices using any suitable approach. Program schedule data and other guidance data may be provided to the client devices on a television channel sideband, using an in-band digital signal, using an out-of-band digital signal, or by any other suitable data transmission technique.

Client devices may operate in a cloud computing environment to access cloud services. In a cloud computing environment, various types of computing services for content sharing, storage or distribution (e.g., video sharing sites or social networking sites) are provided by a collection of network-accessible computing and storage resources, referred to as “the cloud.” For example, the cloud can include a collection of server computing devices (such as, e.g., server404), which may be located centrally or at distributed locations, that provide cloud-based services to various types of users and devices connected via a network such as the Internet via communication network406. In such embodiments, user equipment devices may operate in a peer-to-peer manner without communicating with a central server.

The systems and devices described inFIGS.3and4enable not only display of the screens ofFIG.1, but also enable the execution of processes described inFIGS.5-12. It should be noted that each step of processes described inFIGS.5-12is performed by the previously described control circuitry (e.g., in a manner instructed to control circuitry304or411by a summary application). It should be noted that the embodiments ofFIGS.5-12xcan be combined with any other embodiment in this description and are not limited to the devices or control components used to illustrate the processes.

FIG.5is a flowchart of a detailed illustrative process for generating for display a summary for content, in accordance with some embodiments of the disclosure. A main loop of process500begins at step502. At step504, the summary application detects missed content, wherein the missed content comprises one or more portions and each portion comprises a different storyline. For example, the summary application may detect that a viewer (e.g., viewer B142) is absent during a time period while user equipment102is presenting content (e.g., content104). In some embodiments, the summary application may detect a viewer's absence through the use of a camera (e.g., as part of user equipment300) which tracks viewers' faces. As described above, the summary application may build and access an interaction log for each viewer. In some embodiments, the summary application may access this interaction log from a remote server and one or more devices (e.g., user equipment devices408and410) may contribute to logging the viewer's interaction with content. Other techniques for determine whether a user has interacted with specific content and/or the level to which a user has interacted with specific content is are described in greater detail in Agarwal et al. U.S. Patent Publ. No. 2016/0088352, published on Mar. 24, 2016, which is hereby incorporated by reference herein in its entirety. In some embodiments, the summary application may detect the viewer's presence through use of an additional user device (e.g., additional user device144or user equipment408). The control circuitry (e.g., control circuitry304) may detect the presence of the additional user device (e.g., through Bluetooth or Wi-Fi connectivity, GPS data, or another method). If the control circuitry detects that the additional user device has moved a certain distance away from a playback device (e.g., user equipment device102), the summary application may determine that the viewer is not currently consuming the media. In some embodiments, the summary application may receive direct user input indicating that one viewer is temporarily leaving the viewer area and may receive additional input when the viewer returns. The summary application may record all portions which the user equipment played while the viewer was present in an interaction log for that viewer (e.g., viewer B142). The summary application may consult the interaction log to determine which portions of the content the viewer has missed. The summary application may further consult a data structure (e.g., the data structure depicted inFIG.2) to determine which storylines correspond to the portions that the viewer has missed. For example, the summary application may query the data structure using start and end times of the viewer's missed content, e.g., TP1and TP2. Using the start and end times of the viewer's missed content, the query would identify rows from the data structure that coincide with the start and end times of the viewer's missed content. The data rows returned by this query would include identifiers for storylines in the missed content (e.g., A, B, and C).

At step506, the summary application determines whether a storyline of content is being generated for presentation. For example, the summary application may determine if the media content source402is providing content to user equipment (e.g., user equipment410) and if control circuitry (e.g., control circuitry304or411) is generating, for display, content on user equipment102. In some embodiments, the summary application may determine whether the content being generated for display on user equipment102contains part of a storyline. For example, some content may be output (e.g., commercials or advertisements) that is not part of a storyline in content. The summary application may determine whether the content is associated with a storyline by accessing metadata associated with the content being presented (e.g., metadata in a data table such asFIG.2) and determine that the current presentation of content has no associated storyline or has data in the data table indicating there is no storyline. Or the summary application may find a storyline identifier (e.g., A, B, or C as inFIG.2) associated with the current content. If the summary application determines that a storyline of content is not being generated for presentation, process500continues at step530. If, instead, the summary application determines that a storyline of content is being generated for presentation, process500continues at step508.

At step530, the summary application waits for a storyline transition. This may entail control circuitry (e.g., control circuitry304or411) accessing a data structure such as the data structure illustrated inFIG.2. For example, the control circuitry may check metadata for the current content being presented as described above and then wait for a predetermined amount of time (e.g., 5 seconds) before checking whether the metadata has changed. Thus, the summary application may determine, based on the metadata in a data structure (e.g., as shown inFIG.2), at what time point a storyline transition will occur. At the timepoint of the storyline transition, process500continues at steps502and504. In some embodiments, the summary application may obtain metadata for the current portion to determine the current storyline and also retrieve metadata for the next portion of content following the current portion with a different storyline ID. Using the metadata for the next portion of content, the summary application can set a timer or other event flag to occur when the content reaches the start of the next portion. The summary application may also use this information to retrieve a storyline specific summary for the next storyline in advance of reaching a timepoint where the summary is needed.

At step508, the summary application identifies the storyline in the content that is being generated for presentation. The control circuitry (e.g., control circuitry304or411) may access metadata corresponding with the current content to retrieve a storyline identifier. In some embodiments, the control circuitry may access metadata sent embedded in data files that comprise the content or in data files provided to the control circuitry in parallel with the content. In some embodiments, the control circuitry may access a data structure (e.g., the data structure depicted inFIG.2) to determine which storyline corresponds to the portion of the content that the user equipment102is currently generating, e.g., using time markers for the content.

At step510, the summary application determines if a user (e.g., viewer B142) has missed a portion of the storyline. The control circuitry (e.g., control circuitry304or411) may access a data structure (e.g., the data structure depicted inFIG.2) to determine which portions, of the content that the user equipment102has already presented, correspond to the same storyline that the user equipment102is currently generating. The summary application may then compare the portions of the same storyline with an interaction log for the user to see if any of the portions of the same storyline are absent from the log, indicating that the user missed those portions. In some embodiments, an interaction log contains a list of content and portions thereof (e.g., by timestamp) along with unique identifier for the user. Each row in such a log indicates portions of content the user previously consumed based on a system of presence detection during content presentation. If the summary application determines that the viewer has not missed any of the portions corresponding to the current storyline, then process500continues at step530. If, instead, the summary application determines that the viewer has missed one or more portions corresponding to the current storyline, then process500continues at step512.

At step512, the summary application retrieves a storyline-specific summary of a portion of the missed content comprising the identified storyline. The control circuitry (e.g., control circuitry304or411) may identify the portion IDs for the portions of the storyline that the viewer has missed by accessing a data structure (e.g., the data structure depicted inFIG.2). The control circuitry may then retrieve summaries for the portions of the storyline in the missed content. For example, the summaries may be stored in the metadata for each portion of the content or the metadata may contain identifiers for summaries stored in a database (e.g., media content source402), for the portions of the content. The control circuitry may retrieve the summaries from the media content source402and may transmit the summaries to the summary application. In some embodiments, once the control circuitry has retrieved all the summaries for the portions of the storyline that the viewer has missed, the summary application may concatenate the summaries to generate a summary for the entirety of the storyline-specific missed content.

At step514, the summary application generates for presentation the retrieved storyline-specific summary. The summary may comprise summaries for one or more portions of missed content. In some embodiments, the control circuitry (e.g., control circuitry304or411) may transmit the summary to a secondary user device (e.g., additional user device144, user equipment408, or user equipment410) via I/O path (e.g., I/O path302). In some embodiments, the summary application may display the summary on the same device on which it is displaying the content104(e.g., user equipment102).

FIG.6is a flowchart of a detailed illustrative process for retrieving a storyline-specific summary of a portion of the missed content comprising the identified storyline, in accordance with some embodiments of the disclosure. Process512A is one embodiment of a method for performing step512ofFIG.5and begins after step510. At step602, the summary application retrieves metadata (e.g., using control circuitry304or411) for the identified storyline. In some embodiments, the control circuitry may access metadata sent embedded in data files that comprise the content or in data files provided to the control circuitry in parallel with the content. The metadata may include a storyline identifier for each portion, indicating to which storyline each portion corresponds. At step604, the summary application extracts a storyline identifier from the retrieved metadata. In some embodiments, the summary application may analyze the metadata to locate field that comprises the storyline identifier.

At step606, the summary application identifies storyline-specific portions in the missed content, each of the storyline-specific portions associated with the storyline identifier. The control circuitry may access a data structure (e.g., the data structure depicted inFIG.2) and an interaction log for viewer B indicating which portions of the content viewer B consumed, both of which may be stored in a storage (e.g., storage308or414). The summary application may determine that portions which do not appear in the interaction log are missed portions of the content. The summary application may further identify which portions, of the portions which do not appear in the interaction log, have a storyline identifier (e.g., from the data structure ofFIG.2). The summary application may, using this information, identify missed portions with a storyline identifier that matches the extracted storyline identifier for the current content.

At step608, the summary application retrieves summaries for the storyline-specific portions in the missed content. The control circuitry (e.g., control circuitry304or411) may retrieve summaries, e.g., snippets, that summarize each identified portion from storage (e.g.,308or414). The metadata may alternatively contain a hyperlink pointing to a summary stored in a database (e.g., media content source402). In this case, the control circuitry may retrieve the summary from media content source402via I/O path (e.g.,302or412). Additionally, or alternatively, the summary application may have added functionality for generating a summary from a portion of content. Such functionality may comprise accessing (e.g., via control circuitry) information describing the storyline-specific portions (e.g., from storage308or414or media content source402). The summary application may analyze this information to determine which parts, of a particular portion, contain important material for narrative comprehension. Such important material may include a plot point, introduction of a new character, an action sequence, important dialogue, or a number of other events. Based on this determination, the summary application may identify which time frames and/or clips within the portion are necessary for comprehension of the overall narrative. The summary application may then splice the important frames and/or clips of the content together to create a montage. The summary application may transmit this montage summary to the user equipment device144for display on screen312. Additionally, or alternatively, the summary application may analyze the closed captioning text and metadata description for the portion of missed content. The summary application may condense the information into a text summary, including only the information which was identified as important. The summary application may (e.g., using IO path302or412) transmit the text summary to a user device. The summary application may optionally compile the video montage and text summary together to create a holistic summary for the viewer. Optionally, the summary application may generate a voice-over of the text summary (e.g., for output through speaker314) through text-to-voice technology. Control circuitry may display the montage summary on display312of the user device300and may output the voice-over summary through speaker314. The summary application may retrieve any version of this generated summary for presentation to the viewer.

At step610, the summary application concatenates the retrieved summaries for the storyline-specific portions in the missed content to generate the storyline-specific summary of a portion of the missed content comprising the identified storyline. The summary application may concatenate the storyline-specific summaries by creating a new file with the compiled summaries. For example, the summary application may retrieve metadata for each portion being summarized (e.g., as displayed in the data structure ofFIG.2). Using this information, the summary application may determine a chronological order in which to display the portion summaries. Additionally, or alternatively, the summary application may order the portion summaries according to other criteria. For example, the summary application may (e.g., using control circuitry304or411) access metadata which describes how the portions are interconnected. The metadata may indicate that certain portions contain the same character, narrative, event, or some other component. The summary application may then order the portion summaries according to portions which possess such similarities. Control circuitry may store the newly concatenated summary in storage. The summary application may transmit the portion summaries, in the correct order, to a queue on server404or directly to user equipment or display devices. Process512A then continues with step514, in which the summary application generates, for presentation, the concatenated storyline-specific summary.

FIG.7is a flowchart of a detailed illustrative process for retrieving and concatenating storyline-specific summaries for portions of the missed content comprising the identified storyline, in accordance with some embodiments of the disclosure. Process700begins after step510and includes an alternative embodiment for completing step512(e.g., process512B). At step702, the summary application identifies the portions in the missed content. The summary application may use a number of the previously-described techniques for determining which portions a viewer (e.g., viewer B142) has missed.

At step704, the summary application identifies, for each of the portions, one or more segments. For example, the summary application may determine that three portions comprise one segment with a corresponding summary. Thus, if the user misses any of the three portions, the system may use the same corresponding segment summary for those three portions. In some embodiments, a portion may comprise several smaller segments of content. For example, a portion may be 3 minutes long and comprise 3 segments. Using this information, the summary application may retrieve information about the segments for each portion from the metadata associated with each portion (e.g., via a data structure similar to that as inFIG.2) that identifies the segments associated with the portion. The information may include starting and ending times for each segment, the portion to which that segment belongs, a segment identifier, a summary identifier, and other details. Additionally, or alternatively, the summary application may define the segments composing each portion based on available summary data for each portion. The summary application may then retrieve segment summaries from storage (e.g., storage308or414) and/or media content source402for each segment. The summary application may determine, based on the available summaries, which segments are associated with summaries. The segments of a portion which are associated with segment summaries may comprise part or all of the portion of the content. The summary application may thus define each segment according to the available summary for that part of the portion. The control circuitry may record information describing each segment composing a portion, and its associated summary, in the data structure such as the data structure depicted inFIG.2.

At step706, the summary application retrieves the storyline-specific summary of the portion of the missed content comprising the identified storyline. In this step, the control circuitry retrieves one or more segment summaries, wherein each of the segment summaries is for a segment in the portions of missed content. In some embodiments, the segment summaries may be located in storage or in a database of summaries (e.g., media content source402). The summary application may use the storyline ID, portion ID, summary ID and/or segment identifier listed in the data structure depicted inFIG.2to search for and retrieve the correct summaries. In some embodiments, the summary application may generate summaries for the segments. For example, the summary application may retrieve video clips of the content, text data from the metadata, and/or text data from the closed captioning. The summary application may compile this information into a summary describing a given segment, as previously described. The summary application may then transmit the summary via (e.g., using I/O path302or412) to various components of user device300(e.g., display312and speaker314).

At step708, the summary application concatenates the segment summaries. In some embodiments, the summary application concatenates the storyline-specific summaries by creating a new file with the compiled summaries. For example, the control circuitry may retrieve the portion or segment ID for each portion being summarized from a data structure (e.g., the data structure depicted inFIG.2). The summary application may then determine a chronological order in which to display the segment summaries. Additionally, or alternatively, the summary application may order the segment summaries according to some other criteria, such as similarities within the content. The summary application may complete this ordering process using information in the metadata for the segments, as previously described. In some embodiments, the summary application may concatenate a combination of retrieved summaries and newly-generated summaries to create the final summary of the portion.

Additionally, or alternatively, the summary application may queue the summaries in the correct order for back-to-back presentation to the viewer. The summary application may transmit the portion summaries, in the correct order, to a queue on server404. The summary application may then transmit the segment summaries from the queue to display312on user device300. Process700then continues with step514, in which the summary application generates, for presentation, the concatenated storyline-specific summary.

FIG.8is a flowchart of a detailed illustrative process for creating a summary for an ancillary storyline of content, in accordance with some embodiments of the disclosure. Process800begins after step514. At step802, the summary application identifies an ancillary storyline that is indicated as being precedent to the storyline of content being generated for presentation. In some embodiments, the summary application determines that a storyline is ancillary to the storyline of content being generated for presentation by analyzing the metadata for both storylines. The summary application (e.g., using control circuitry304or411) may analyze metadata containing identifiers which indicate ancillary content to a particular storyline. In some embodiments, the summary application may determine that a storyline is ancillary to the storyline of content being generated for presentation by analyzing the frames, metadata, close captioning, or another source of data associated with both storylines. For example, the summary application may identify two storylines containing frames which display the same characters or locations. Additionally, or alternatively, the summary application may determine that the retrieved metadata of two storylines contains descriptions with many similarities. Additionally, or alternatively, the summary application may analyze the closed captioning text for two storylines. If the summary application determines that the closed captioning text for the two storylines contains matching information (e.g., character names, events, descriptions, etc.), the summary application may identify that one storyline is ancillary to the other. The summary application may determine that the ancillary storyline is precedent to the storyline of content being generated for presentation by comparing the portion IDs and/or start and end times of the portions of each storyline. The summary application may retrieve this data from a data structure (e.g., a data structure like that depicted inFIG.2). The summary application may analyze the data to identify an ancillary storyline as precedent to the storyline of content being generated for presentation. At step804, the summary application identifies portions of the ancillary storyline that were missed. The summary application may use a number of previously-described methods for determining which portions a viewer (e.g., viewer B142) has missed.

At step806, the summary application retrieves a second storyline-specific summary of the missed portions of the ancillary storyline. In this step, the summary application retrieves (e.g., using control circuitry304or411) one or more ancillary storyline summaries, wherein each of the ancillary storyline summaries is for a segment in the portions of missed content. In some embodiments, the ancillary storyline summaries may be located in storage or in a database of summaries (e.g., media content source402). The summary application may use the storyline ID, portion ID, summary ID and/or ancillary storyline identifier listed in the data structure (e.g., the data structure depicted inFIG.2) to search for and retrieve the correct summaries. In some embodiments, the summary application may generate summaries for the ancillary storylines. For example, the summary application may retrieve video clips of the content, text data from the metadata, and/or text data from the closed captioning. The summary application may compile this information into a summary describing a given ancillary storyline, as previously described. The summary application may then transmit the summary (e.g., using I/O path302or412) to various components of user device300(e.g., display312and speaker314).

Steps810,812, and814describe one embodiment of a method for performing step806. In step810, the summary application determines a detail level for the second storyline-specific summary (e.g., terse, normal, verbose). The summary application retrieves metadata describing the ancillary storyline from a database (e.g., media content source402). The summary application may analyze this retrieved metadata to determine how the ancillary storyline is related to the content being generated for presentation. The summary application may factor descriptions, visual data, closed captioning, reviews, ratings, and other available information into its analysis of the metadata. For example, if the ancillary story contains broad context for the current content being generated, the summary application may decide that terse summary of the ancillary storyline is appropriate. If, instead, the ancillary storyline contains specific details that are relevant to the current content being generated, then the summary application may decide that a verbose summary of the ancillary storyline is appropriate.

At step812, the summary application identifies one or more summaries for the ancillary storyline. The summary application may access a data structure (e.g., the data structure depicted inFIG.2) to extract the portion ID and summary ID of the ancillary storyline. The summary application may then access a database (e.g., media content source402) containing summaries of storylines. The summary application may identify summaries corresponding to the ancillary storyline by using the portion IDs, storyline ID, and summary IDs for the ancillary storyline. Additionally, or alternatively, the summary application may have added functionalities to generate new summaries of different levels of detail through any of the methods previously discussed.

At step814, the summary application selects a summary for the ancillary storyline based on the determined level of detail. In some embodiments, the summary application may compare the level of detail determined in step810with a level of detail of each ancillary summary (e.g., specific, general, overview, etc.). If there is a match, the summary application may select that summary for the ancillary storyline. In some embodiments, the summary application may analyze the content of the summary to determine the level of detail. For example, the summary application may receive a number of summaries for the ancillary storyline. The summary application may analyze each summary to determine if the summary for the ancillary storyline includes the elements that are relevant to the content currently being generated for presentation. In some embodiments, the summary application may select the summary for the ancillary storyline which has the lowest level of detail while still containing the elements that are relevant to the content currently being generated for presentation.

At step808, the summary application generates, for presentation, the retrieved second storyline-specific summary. The summary application may present the summary for the ancillary storyline before or after the summary for the first storyline-specific summary. Additionally, or alternatively, the summary application may present the two summaries simultaneously through different mediums (e.g., presenting video highlights of the first storyline-specific summary and a textual explanation of the second storyline-specific information). In some embodiments, the summary application may transmit (e.g., using an IO path302or412) the second storyline-specific summary to a secondary user device (e.g., additional user device144, user equipment408, or user equipment410). In some embodiments, the summary application may generate, for display, the summary on the same device on which it is displaying the content104(e.g., user equipment102).

FIG.9is a flowchart of a detailed illustrative process for retrieving and presenting summaries of watched content, in accordance with some embodiments of the disclosure. Process900begins after step514. At step902, the summary application identifies watched content related to the identified storyline (e.g., the storyline of content being generated for presentation). The summary application may retrieve metadata describing the watched content and the identified storyline from a database (e.g., media content source402). The summary application may analyze this retrieved metadata to determine how the watched content is related to the identified storyline. The summary application may factor descriptions, visual data, closed captioning, reviews, ratings, and other available information into its analysis of the metadata. Based on this analysis, the summary application can determine which watched content is related to the identified storyline.

At step904, the summary application determines that the watched content should be refreshed based on when the viewer consumed the watched content. In some embodiments, the summary application may determine that the watched content should be refreshed based on the time stamps. The summary application may retrieve the start and end times of the watched content from a data structure (e.g., the data structure depicted inFIG.2) along with a timestamp indicating when the user interacted with the content. If the summary application calculates that a sufficient amount of time has passed since the viewer consumed the watched content, then the summary application determines that it should refresh the watched content. For example, the summary application may have a threshold time period configured to, for example, 180 days and content that was consumed outside that threshold is configured to be refreshed in the summary process. Additionally, or alternatively, the summary application may determine that the watched content should be refreshed based on how many unrelated portions of content the viewer has consumed since consuming the watched content. The summary application may determine that too much unrelated content (e.g., portions from unrelated storylines) distracts the viewer (e.g., viewer B142) from the identified storyline. The summary application may access a data structure (e.g., the data structure depicted inFIG.2) to extract information such as the portion ID and storyline ID for every portion that the user consumed between the watched content and the identified storyline. If the summary application determines that the number of unrelated portions is too high, then the summary application determines that it should refresh the watched content.

At step906, the summary application retrieves a second storyline-specific summary of the watched content. In some embodiments, the summaries of the watched content may be located in storage (e.g.,308or414) or on a database of summaries (e.g., media content source402). The summary application may use the storyline ID, portion ID, summary ID and/or another identifier listed in the data structure (e.g., the data structure depicted inFIG.2) to search for and retrieve the correct summaries. In some embodiments, the summary application may generate summaries for the watched content. For example, the summary application may retrieve video clips of the content, text data from the metadata, and/or text data from the closed captioning. The summary application may compile this information into a summary describing the watched content through any of the previously described methods. The summary application may then save the summary of the watched content in storage (e.g.,308or414) and/or queue the summary of the watched content on server404.

At step908, the summary application generates, for presentation, the retrieved second storyline-specific summary (e.g., the summary for the watched content). The summary application may present the summary for the watched content before or after the summary for the first storyline-specific summary. Additionally, or alternatively, the summary application may present the two summaries through different mediums (e.g., presenting video highlights of the first storyline-specific summary along and a textual explanation of the second storyline-specific information). In some embodiments, the summary application may transmit the second storyline-specific summary to various components (e.g., display312and speaker314) of a secondary user device (e.g., device300, additional user device144, user equipment408, or user equipment410) via an I/O path. In some embodiments, the summary application may display the summary on the same device on which it is displaying the content104(e.g., user equipment102).

FIG.10is a flowchart of a detailed illustrative process for modifying a summary to include content that the viewer misses while consuming the summary, in accordance with some embodiments of the disclosure. Process1000is a process which may occur after step512and before step514. At step1002, the summary application determines a summary endpoint in the storyline of content being generated for presentation. The summary endpoint is a point at which the presentation of the retrieved storyline-specific summary will be complete. The summary application may access the metadata of the retrieved storyline-specific summary to extract a length of the storyline-specific summary. The summary application may then add this length of time to the current point in the storyline to determine the summary endpoint. At step1004, the summary application modifies the story-specific summary to include a summary for the content being generated for presentation between the current point in the storyline and the summary endpoint. In some embodiments, the summary application may extract information about the content between the current point and the summary endpoint from a data structure (e.g., the data structure depicted inFIG.2), including portion IDs, storyline IDs, start and end times, Summary IDs, and dependency information. The summary application may then use this identifying information for the content between the current point and the summary endpoint to locate additional summary content. The summary application may search storage (e.g., storage308or414) and/or a database of summaries (e.g., media content source402) for a summary corresponding to this content. Once the summary application has received the appropriate summary for the content between the current point and the summary endpoint, the summary application may modify the first storyline-specific summary to include the additional summary. In some embodiments, the summary application may modify the first summary by adding the additional summary to the end of the summary presentation. In some embodiments, the summary application may modify the first summary by presenting the additional summary through a different method (e.g., on a different device or in a different medium, such as text, video, audio). Process1000then continues with step514, in which the summary application generates, for presentation, the modified storyline-specific summary.

FIG.11is a flowchart of a detailed illustrative process for optimizing the presentation of the storyline-specific summary to the viewer, in accordance with some embodiments of the disclosure. Process514A is one embodiment of a method for performing step514ofFIG.5and begins after step512. At step1102, the summary application identifies a secondary display that is available to display the storyline-specific summary and is not currently presenting the storyline of content. In some embodiments, summary application may access, through communication network406, any available secondary devices in the network (e.g., user equipment408and410). The summary application may also detect additional secondary devices (e.g., through Bluetooth or Wi-Fi connectivity or through GPS data) which are available and in the vicinity of the summary application (e.g., additional user device144and user equipment device300). The summary application may assess the functionality of the displays of the secondary devices (e.g., display312and speakers314) to ensure that the displays are adequate for the output of the summary.

At step1104, the summary application directs the second display to present the storyline-specific summary. In some embodiments, the summary application may send a signal to the server404. The signal may cause the server404to queue the storyline-specific summary for presentation on the secondary display. The summary application may then cause the server404to transmit the storyline-specific summary via I/O path412to the secondary display for presentation. The summary application may utilize various features of the secondary display (e.g., display312and speaker314) depending on the type of summary presentation (e.g., photos, video clips, text, voice over, etc.).

At step1106, the summary application identifies a primary display presenting the storyline of content. In some embodiments, the summary application may determine the device on which is it presenting the storyline of content by accessing the signals being transmitted through an I/O path (e.g.,302or412) to and from various devices. The summary application may identify one or more primary displays which are presenting the storyline of content.

At step1108, the summary application directs the primary display to pause presentation of the storyline of content during presentation of the retrieved storyline-specific summary. In some embodiments, the summary application may instruct the server to buffer the storyline of content to a content cache for the duration of the storyline-specific summary. Following the completion of the storyline-specific summary, the summary application may instruct sever404to resume presentation of the storyline content on the primary display.

FIG.12is a flowchart of a detailed illustrative process for generating a storyline-specific summary for a second storyline, in accordance with some embodiments of the disclosure. Process1200is an additional process which may occur after step514. At step1202, the summary application detects a storyline transition from the storyline of content being generated for presentation to a second storyline. The summary application may access a data structure (e.g., the data structure depicted inFIG.2) which contains storyline identifiers for each portion of the content. The summary application may analyze the data structure to find the first portion, of the upcoming portions, which has a different storyline from the current storyline.

At step1204, the summary application identifies the second storyline. In some embodiments, the summary application may identify the second storyline by the storyline identifiers retrieved from the data structure at step1202.

At step1206, the summary application retrieves a second storyline-specific summary of a second portion of the missed content comprising the identified second storyline. In some embodiments, the second storyline-specific summaries may be located in storage (e.g.,308or414) or on a database of summaries (e.g., media content source402). The summary application may use the storyline ID, portion ID, summary ID and/or other information listed in the data structure (e.g., the data structure depicted inFIG.2) to search for and retrieve the correct summaries. In some embodiments, the summary application may generate second storyline-specific summaries. For example, the summary application may retrieve video clips of the content, text data from the metadata, and/or text data from the closed captioning. The summary application may compile this information into a summary describing a given storyline (e.g., using any of the methods previously described). The summary application may then transmit the summary via an I/O path (e.g.,302or412) to a user device for presentation.

At step1208, the summary application generates, for presentation, the retrieved second storyline-specific summary. The summary application may present the summary for the watched content before or after the summary for the first storyline-specific summary. Additionally, or alternatively, the summary application may present the two summaries simultaneously through different mediums (e.g., presenting video highlights of the first storyline-specific summary along with simultaneous textual explanation of the second storyline-specific information). In some embodiments, the summary application may transmit the second storyline-specific summary to various components (e.g., display312and speaker314) of a secondary user device (e.g., device300, additional user device144, user equipment408, or user equipment410) via an I/O path (e.g.,302or412). In some embodiments, the summary application may display the summary on the same device on which it is displaying the content104(e.g., user equipment102).

The above-described embodiments of the present disclosure are presented for purposes of illustration and not of limitation, and the present disclosure is limited only by the claims which follow. Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any other embodiment herein, and flowcharts or examples relating to one embodiment may be combined with any other embodiment in a suitable manner, done in different orders, or done in parallel. In addition, the systems and methods described herein may be performed in real-time. It should also be noted, the systems and/or methods described above may be applied to, or used in accordance with, other systems and/or methods.