US10264297B1 - Time-based content synchronization - Google Patents

Time-based content synchronization Download PDF

Info

Publication number
US10264297B1
US10264297B1 US15/703,428 US201715703428A US10264297B1 US 10264297 B1 US10264297 B1 US 10264297B1 US 201715703428 A US201715703428 A US 201715703428A US 10264297 B1 US10264297 B1 US 10264297B1
Authority
US
United States
Prior art keywords
content
computing device
user
primary content
primary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US15/703,428
Inventor
David Gang
Bryan Morgan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Perfect Sense Inc
Original Assignee
Perfect Sense Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Perfect Sense Inc filed Critical Perfect Sense Inc
Priority to US15/703,428 priority Critical patent/US10264297B1/en
Assigned to PERFECT SENSE, INC. reassignment PERFECT SENSE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GANG, DAVID, MORGAN, BRYAN
Priority to US16/382,563 priority patent/US10645431B2/en
Publication of US10264297B1 publication Critical patent/US10264297B1/en
Application granted granted Critical
Assigned to WESTERN ALLIANCE BANK reassignment WESTERN ALLIANCE BANK SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PERFECT SENSE, INC.
Priority to US16/865,468 priority patent/US11109078B2/en
Priority to US17/460,800 priority patent/US11711556B2/en
Assigned to AB PRIVATE CREDIT INVESTORS LLC reassignment AB PRIVATE CREDIT INVESTORS LLC SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PERFECT SENSE, INC.
Assigned to PERFECT SENSE, INC. reassignment PERFECT SENSE, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: WESTERN ALLIANCE BANK
Assigned to PERFECT SENSE, INC. reassignment PERFECT SENSE, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: WESTERN ALLIANCE BANK
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium

Definitions

  • Multimedia systems often provide users with access to secondary content while viewing or accessing primary content. For example, some systems provide users with access to metadata of actors when watching a movie that includes the actors. However, such systems often provide access to secondary content in a static and often unengaging manner. For example, while secondary content can generally be associated with metadata of the primary content, multimedia systems often do not present secondary content at specific time points within the playback of the primary content. Moreover, the presentation of secondary content can often interfere with the user's viewing experience of the primary content because a user may become preoccupied with the secondary content during time points of the primary content that demand a user's attention.
  • a content management system is capable of addressing these and other limitations of such multimedia systems by dynamically associating content streams to improve a user's viewing experience while accessing primary content.
  • the CMS uses content association data assigning secondary content items to the primary content. Secondary content items can be assigned to designated frames of the primary content so that the secondary content items are presented to user at specified time points during the playback of the primary content. Secondary content items can represent content that is related to the subject matter of the primary content, or content that a user may be interested in accessing while viewing the primary content.
  • a secondary content item can represent a news article about a factual event that is referenced in a primary content that is fictional movie.
  • the CMS generates and applies content association data that assigns the news article to a designated frame within the movie that references the factual event. Once the playback of a movie reaches the designated frame, a user is provided with access to the news article on one or more electronic devices.
  • the content association data can be used provide the user with access to relevant content in a more intuitive and interactive manner.
  • the CMS is capable of dynamically adjusting the content association data for a single primary content to customize a viewing experience for different users or for different sessions by the same user.
  • the CMS can obtain context data collected through a user device to predict a context of a user when he/she accesses the primary content.
  • the CMS can then dynamically generate the content association data for the primary content based on predicted context of the user.
  • a user may be presented with different collections of secondary content items and/or at different time points within the primary content when, for instance, viewing the same primary content during daytime and nighttime.
  • the CMS may use user-specific data, such as user preferences or user activity data to customize the content association data for a specific set of user attributes.
  • user-specific data such as user preferences or user activity data
  • different users accessing the same primary content may be presented with different collections of secondary content items and/or at different time points within the primary content.
  • the CMS is capable of using context data and/or user-specific data to adjust both the selection of secondary content items that are presented to a user and the time points within the playback of the primary contents during which selected secondary content items are presented to the user.
  • the CMS can present the secondary content on a device being used to access the primary content, or alternatively, on another device that is associated with the user and is likely to be accessible to the user when viewing the primary content.
  • the CMS may display unobtrusive notifications identifying the secondary content on a screen while the primary content is presented on the screen.
  • the CMS can identify a second device that is likely to be accessed by the user when viewing the primary content on a first device. In such implementations, the secondary content items are presented through the second device instead of the first device.
  • the architecture of the system provides various improvements in displaying associated content when a user is viewing primary content.
  • the CMS is capable of dynamically presenting associated content specified time points when a user is most likely to be interested in viewing the associated content.
  • the CMS can customize the content association data towards the preferences and/or context of the user such that associated content is provided in a manner that is both unobtrusive to the user's viewing experience and likely to supplement and/or improve the user's overall viewing experience.
  • a method includes the operations of: obtaining, by a server system, data indicating that a primary content is accessed on a computing device; generating, by the server system, content association data for the primary content, the content association data specifying (i) one or more designated frames of the primary content, and (ii) one or more secondary content items assigned to each of the one or more designated frames; determining, by the server system, that the computing device accessed a particular frame from among the one or more designated frames; and in response to determining that the computing device is accessing the particular frame, providing, by the server system and for output to one or more computing devices, an instruction to display a communication that includes the one or more secondary content items assigned to the particular frame within the content association data.
  • the method further includes the operation of determining, by the server system, a predicted context associated with a user of the computing device.
  • generating the content association data for the primary content includes: selecting a secondary content item that is determined to be associated with the predicted context associated with the user; and assigning the secondary content item to a designated frame from among the one or more designated frames of the primary content.
  • the communication is provided for output to a second computing device that is within a threshold proximity to the computing device.
  • the computing device is a stationary display device, and the second computing device is a mobile device.
  • the computing device runs a first operation system
  • the second computing device runs a second operating system that is different from the first operating system
  • the method further includes the operations of: determining, by the server system, one or more additional computing devices that are (i) likely to be used by a user of the computing device during a time period in which the primary content is accessed on a computing device, and (ii) connected to a local area network of the computing device; selecting, by the server system, a particular computing device from among the one or more additional computing devices. In such implementations, the instruction is provided to the selected computing device.
  • the method further includes the operation of determining, by the server system and for each of the one or more additional computing devices, a respective likelihood that a computing device is used by a user of the computing device during a time period in which the primary content is accessed on a computing device.
  • the particular computing device is selected from among the one or more computing devices based on the determined likelihoods.
  • implementations of this and other aspects include corresponding methods, apparatus, and computer programs, configured to perform the actions of the systems, encoded on computer storage devices.
  • FIGS. 1A-B illustrate an example of a CMS that is capable of using content association data to dynamically associate content at specified time points.
  • FIG. 2 illustrates an example of a technique for associating frames of primary content to secondary content items.
  • FIG. 3A-B illustrates examples technique for customizing content association data of primary content.
  • FIGS. 4A-D illustrate examples of user interfaces that are provided to different users.
  • FIG. 5 illustrates an example of a process for dynamically synchronizing secondary content during specified time points of accessed primary content.
  • FIG. 6 is a block diagram of computing devices on which the processes described herein, or portions thereof, may be implemented.
  • this document describes a CMS that is capable of dynamically associating content streams to improve a user's viewing experience while accessing primary content.
  • the CMS uses content association data assigning secondary content items to the primary content.
  • Secondary content items can be assigned to designated frames of the primary content so that the secondary content items are presented to user at specified time points during the playback of the primary content.
  • Secondary content items can represent content that is related to the subject matter of the primary content, or content that a user may be interested in accessing while viewing the primary content.
  • a secondary content item can represent a news article about a factual event that is referenced in a primary content that is fictional movie.
  • the CMS generates and applies content association data that assigns the news article to a designated frame within the movie that references the factual event. Once the playback of a movie reaches the designated frame, a user is provided with access to the news article on one or more electronic devices.
  • the content association data can be used provide the user with access to relevant content in a more intuitive and interactive manner.
  • a “content” refers to any form of digital multimedia.
  • Content can include multimedia files that are accessed from computer-readable media, data that is streamed over a network medium, or data that is transmitting over a broadcasting medium.
  • Examples of content described throughout this document can include textual content, audible content, e.g., music, and visual content, e.g., images or video.
  • a user can access content using any suitable electronic device through any suitable means such as from a tangible medium, through a network medium, or a broadcasting medium.
  • content is presented to a user through an application running on an electronic device.
  • secondary content items refer to content that is provided to the user during specified time points of the playback of the primary content.
  • a secondary content item can be assigned to a particular frame of the primary content such that the secondary content item is provided to the user when playback of the primary content reaches the particular frame.
  • Examples of secondary content items include news articles, video clips, audio segments, textual messages, hyperlinks, among others.
  • real-time refers information or data that is collected and/or processed instantaneously with minimal delay after the occurrence of a specified event, condition, or trigger.
  • real-time data refers to data, e.g., content association data, playback data, context data, etc., that is processed with minimal delay after a computing device collects or senses the data, e.g., using accelerometers, gyroscopes, magnetometers, etc.
  • the minimal delay in collecting and processing the collected data is based on a sampling rate or monitoring frequency of the computing device, and a time delay associated with processing the collected data and transmitting the processed data over a network.
  • a computing device on which primary content is being accessed may collect data representing playback progression of the primary content every second and transmit the collected data to a server system as network data packets.
  • the server system processes each received network data packet to monitor the progression of playback of the primary content to determine when computing devices access a designated frame of the primary content.
  • the server system transmits an instruction to the computing device to display a communication that includes secondary content items assigned to the designated frame.
  • each of the processing operations can be performed in real-time to minimize the delay between a time point when the designated frame is accessed and a time point when the communication including the secondary content items are provided for output to the user.
  • FIGS. 1A-B illustrate an example of a CMS 100 that is capable of using content association data to dynamically associate content at specified time points.
  • the CMS 100 includes a computing device 110 , a server system 120 , and a computing device 130 .
  • the server system 120 generates and stores content association data 122 in an associated repository as discussed in detail below.
  • FIG. 1A illustrates an example of a technique used by the system 100 to display a secondary content item 124 A during a time period when the user 101 accesses primary content 112 on the computing device 110 .
  • FIG. 1B illustrates an architecture of the components of the system 100 .
  • the system 100 uses the depicted technique to provide the user 101 with access to secondary content on the computing device 130 while accessing primary content 112 on the computing device 110 .
  • the computing device 110 represents a device with a large screen such as a television and the computing device 130 represents a mobile device such as a smartphone or a tablet computing device.
  • the system provides secondary content within a communication 132 at a specified time point 102 within the playback of the primary content 112 .
  • the example depicted in FIG. 1A associates primary content 112 and secondary content items 124 A and 12 B based on the content of the primary content 112 , although other types of content associations can also be used.
  • primary content 112 is a video titled “VIDEO FOR ACTION ON CLIMATE CHANGE,” which is related to topics “AFRICA” and “CLIMATE CHANGE.”
  • the secondary content items 124 A and 124 B are content that also relate to these topics.
  • the secondary content item 124 A is an article titled “CHANGING MINDSETS IN ZAMBIA: WHY RADIO” relating to the topic “AFRICA” whereas the secondary content item 124 B is a video titled “UPDATES ON CLIMATE CHANGE” relating to the topic “CLIMATE CHANGE.”
  • the content association data 122 associates a secondary content item 124 A to a frame 112 a of the primary content 112 .
  • the frame 112 A corresponds to a time point 102 within the playback of the primary content 112 on the computing device 110 .
  • the CMS 100 begins dynamically associating the primary content 112 to the secondary content item 124 A as discussed below.
  • this example depicts the primary content 112 and the secondary content item 124 A being provided to the user 101 on different devices, in some implementations, the CMS might alternatively provide the secondary content item 124 A on the same device, e.g., the computing device 110 .
  • the server system 120 initially generates content association data 122 .
  • the content association data 122 is generated prior to initiating playback of the primary content 112 on the computing device 110 .
  • the server system 120 monitors the playback of the primary content 112 on the computing device 110 .
  • the server system 120 instead of generating the content association data 122 prior to playback of the primary content 112 , as discussed above, the server system 120 instead is capable of dynamically generating the content association data after playback of the primary content 112 has initiated on the computing device 110 .
  • the server system 120 can use, for example, activity data collected by the computing device 110 and/or other devices such as the computing device 130 , to adjust the generation of the content association data 122 .
  • the server system 120 can dynamically select the secondary content items and/or the frames of the primary content to assign to the selected secondary content items based on the received activity data. Dynamic generation of the content association data is discussed in more detail with respect to FIGS. 3A-B .
  • the server system 120 obtains playback data 104 from the computing device over the network 105 .
  • the playback data 104 indicates that playback of the primary content 112 has reached the time point 102 , e.g., at “00:37 S,” which corresponds to the designated frame 112 A within the content association data 122 .
  • the designed frame 112 A is assigned to the secondary content item 124 A.
  • the server system 120 selects the secondary content item 124 A to provide to the computing device 130 .
  • the server system 120 automatically selects the secondary content item 124 A since the designated frame is assigned to the designated frame 112 A.
  • multiple secondary content items are assigned to the designated frame 112 A.
  • the server system 120 may either provide each of the multiple secondary content items to the client device 130 , or provided a selected subset of the multiple content items. The selection can be based on, for example, based on data received from the computing devices 110 and 130 , e.g., context data or user-specific data.
  • multiple secondary content items assigned to the designated frame 112 A can represent alternative forms of the same content, e.g., a text transcription of a conversation, audio data encoding utterances of the conversation, and video data depicting characters having the conversation.
  • the server system 120 can select one of the multiple secondary content items based on determining which form would be the most appropriate to provide for output. This determination can be based on the predicted context of the user, information associated with the primary content 110 , or interaction data of the user collected by computing devices 110 and 130 .
  • activity data of the user 101 collected on the computing device 130 while he/she accesses the primary content 110 on the computing device 110 can be used to by the server system 110 to determine the secondary content to select and provide for output on the computing device 130 .
  • the activity data indicates that the user 101 is actively using the computing device, then a less disruptive form of secondary content may be selected and provided, e.g., a text notification, instead of a potentially more disruptive form of secondary content, e.g., video display.
  • the server system 130 generates an instruction 106 to provide for output to the computing device 130 .
  • the instruction 106 identifies a type of communication to provide for output on the client device 130 , and the secondary content selected by the server system 120 to include in the communication.
  • the different communication types can include a text message, an operating system notification, an in-app pop-up notification, an email, among others. Additionally, the content can be included in the communication using various techniques.
  • the client device 130 receives the instruction 106 , and in response, provides a communication 108 for output to the user 101 .
  • the communication 108 is a notification that includes a snippet of content that includes to a hyperlink to a web location of the secondary content 124 A that, upon selection by a user input, directs the user 101 to a uniform resource locator (URL) associated with a web location of the secondary content 124 A.
  • the communication 108 can includes other types of references to the secondary content 124 A such as text-based or image-based snippets, user recommendations or suggestions, among others.
  • content server 120 stores device association data, e.g., in the repository 122 , that can be used to enable the computing device 110 and/or the computing device 130 to identify one another in relation to playback of the primary content 112 or the display of the communication 108 .
  • the device association data is generated based a user manually pairing devices that are connected over the LAN within a property. Device information collected from the pairing is then stored within the device association data.
  • a user instead of manually pairing two devices, a user instead provides login information, e.g., a username and password, to authenticate to each device to be paired.
  • the device association data is assigned to a user account and is updated to include device information of each device that the submits login information for authentication.
  • two devices connected over the same LAN can be explicitly paired with the user of a temporary activation code made available to a device to be paired and through a device that's already associated with the content server.
  • a device to be paired can receive an activation code that the user provides on an existing paired device to associate the device to be paired with the user's account.
  • multiple display devices are available to access the primary content 112 .
  • a user may have multiple display devices within a vicinity of one another, e.g., within the same room, that are each capable of displaying the primary content 112 .
  • the content server 120 can be capable of using techniques to select a particular device from among the multiple display devices to provide the primary content 112 for accessing by the user 101 .
  • the content server 120 may transmit a communication to one or more of the devices being used by the user to confirm which did play device will be used to access the primary content 112 .
  • the monitoring location and position data can be used to automatically select a display device that is determined to be closest to the user.
  • the system 100 can include beacons placed in different regions of a property, e.g., a corporate office.
  • a connection event between a beacon and user's mobile device can be used to identify a user's location within the property. The identified location can then be cross-referenced with map data indicating known locations of display devices, and selecting the display device that is the closest to the user's identified location.
  • the communication 108 that includes secondary content items can be provided in one or more of an augmented reality (AR), virtual reality, and/or a mixed reality computing environment.
  • a secondary content item can be presented as a graphical element that is displayed through, for instance, a smart phone camera's field of view at a specified time within the playback of the primary content 112 as discussed above.
  • the primary content 112 represents VR content provided through a head-mounted device (HMD)
  • HMD head-mounted device
  • the secondary content items that can be generated within AR and VR environments can represent two-dimensional content that is adjusted for AR and VR environments, e.g., snippets placed inside a three-dimensional object container, or alternatively, three-dimensional object representing virtual object, characters or other types of graphics.
  • the depicted architecture generally enables the system 100 to dynamically associate primary content to secondary content items.
  • content associations can be determined in real-time, e.g., prior to or during playback of the primary content.
  • the associations are specified within the content association data 122 and applied during playback of the primary content to provide associated secondary content items to, for example, computing devices 130 A-C.
  • the system 100 includes server systems 120 A-B and multiple client devices 130 A-C that exchange communications over the network 105 .
  • a content provider that provisions content to users can manage the server system 120 A, and a third-party entity that is authorized by the content provider to distribute content produced by the content provider manages the server system 120 B.
  • the server system 120 A includes a content repository 152 for storing content to be provisioned to users over the network 105 .
  • the content repository 152 can store primary content and secondary content items, and metadata associated with the stored content.
  • Content can be stored within the content repository 152 in an unassociated manner, e.g., without content associations between primary content and secondary content items, or alternatively, in an indexed format where classification labels are assigned to primary content and secondary content items.
  • primary content and secondary content items that relate to certain topics or subjects can be identified using the classification labels. For example, content can be classified with a “HORROR” genre to enable association of primary content and secondary content items that both relate to the same genre.
  • the server system 120 B stores user profile data 154 and content association data 156 .
  • the content association data 156 can correspond to the content association data 122 depicted and discussed above with respect to FIG. 1A .
  • the user profile data 154 includes, for example, user account data, user activity data, e.g., social media activity, prior search queries, location data, etc., and/or user preferences.
  • the content association data 156 can be pre-generated before primary content is accessed by a user, or alternatively, dynamically generated at a time point when the primary content is accessed or during playback of the primary content.
  • the server system 120 uses the user profile data 154 to dynamically generate, and/or customize the generation of, the content association data 156 .
  • the content association data 156 can be generated based on a predicted user context and/or a set of user-specific attributes indicated within the user profile data 154 .
  • the server systems 120 A and 120 B can be combined into a single server system that performs the combined operations of the server systems 120 A and 120 B.
  • a single server system can be used to store and periodically update the content repository 152 , the user profile data 154 , and the content association data 156 .
  • the computing devices 130 A-C can each be any type of electronic computing device that is associated with a display and is capable of presenting content that is accessed by a user.
  • the computing devices 130 A-C can be one or more of a smartphone, a laptop computing device, a desktop computing device, or any other type of display-based device.
  • the computing devices 130 A-C include devices that are associated with a single user and are, for example, connected to the same local area network (LAN).
  • the computing devices 130 A-C can represent devices that are located nearby one another and accessible to the user when accessing the primary content. For example, a user can access primary content on the computing device 130 A while accessing secondary content items 130 B on either the computing devices 130 B and/or 130 C.
  • the computing device 130 A is a computing device with a large display, such as a television, and the computing devices 130 B and 130 C are mobile devices, such as a smartphone or a tablet computing device.
  • the computing devices 130 A-C include devices that are associated with multiple users that access the same primary content stored within the content repository 152 .
  • each of the computing devices 130 A-C may receive different content association data that is customized for the corresponding user.
  • the content association provided to the computing devices 130 A-C can vary with respect to the secondary content items associated with the primary content and/or the designated frames of the primary content that are assigned to the secondary content items.
  • FIG. 2 illustrates an example of a technique for associating frames of primary content to secondary content items.
  • the server system 202 generates content association data 202 and distributes it to the computing devices 110 and 130 during playback of primary content 204 on the computing device 110 .
  • the content association data 202 assigns secondary content items 206 A, 206 B, and 206 C respectively to designated frames 204 A, 204 B, and 204 C of the primary content 204 .
  • Each of the designated frames 204 A-C correspond to a specified time point within playback of the primary content 204 .
  • primary content 204 is a video with a 15-minute duration.
  • designated frames 204 A-C correspond respectively to time points represented by two-minute progression into the video, six-minute progression into the video, and ten-minute progression into the video.
  • the secondary content items 206 A-C are each presented on the computing device 130 as playback of the primary content 204 progresses.
  • communications including the secondary content items 206 A-C are provided respectively to the client device 130 at the two-minute, six-minute, and ten-minute progression points into the primary content 204 .
  • Each communication can be provided on the computing device 130 for a particular time period specified by the content association data or until a user provides an input to dismiss the presented communication.
  • the communications including the secondary content items 206 A-C are provided respectively for ten seconds, five seconds, and thirty seconds.
  • the duration of a presented communication can be determined based on the content type of the secondary content item included in the communication. For example, a communication that includes a hyperlink can be presented for a shorter time period compared to a communication that includes a large text segment.
  • FIG. 3A-B illustrates examples of techniques for customizing content association data of primary content.
  • FIG. 3A an example of a technique for customizing content association data of primary content for different users is depicted.
  • the server system 120 generates different content associations for two users 301 A and 301 B that access the same primary content, e.g., primary content 302 stored within a content repository.
  • the server system 120 generates the content associations based on information contained in user data 304 A and 304 B received from computing devices 130 A and 130 B, respectively.
  • the server system 120 generates content association data that specifies different designated frames for the primary content 302 and assigns different secondary content items to each of the designated frames.
  • the server system 120 uses the content association data to customize each user's viewing experience of the primary content 302 .
  • the server system 120 For example, with respect to the user 301 A, the server system 120 generates content association data 320 A based on the user data 304 A.
  • the content association data 320 A specifies designated frames 306 A and 308 A for the primary content 302 .
  • the content association data 320 A also assigns secondary content items 312 A and 314 A to the designated frames 306 A and 308 A, respectively.
  • the server system 120 With respect to the user 301 B, the server system 120 generates content association data 320 B based on the user data 304 B.
  • the content association data 320 B specifies designated frames 306 B, 308 B, and 312 B for the primary content 302 .
  • the content association data 320 B also assigns secondary content items 314 B, 316 B, and 318 B to the designated frames 306 B, 308 B, and 312 B, respectively.
  • the user data 304 A and 304 B vary with respect to, for example, user attributes of each corresponding user.
  • the user data 304 A indicates that the user 301 A is a 42-year old male whose historical user activity indicates a preference for passive types of interaction, e.g., viewing and accessing content.
  • the user data 304 B indicates that the user 301 B is a 25-year old female whose historical user activity indicates a preference of active types of interaction, e.g., sharing content over a social media network.
  • the server system 120 generates different content associations for each user based on the different user attributes identified within the user data 304 A and 304 B.
  • the content association data 320 A identifies three secondary content items (instead of two as specified in content association data 320 B), and designates different frames of the primary content 302 corresponding to different events.
  • the content association data 320 A includes passive viewing content, such as a related article and an image, that is more likely to be accessed by the user 301 A based on his user attributes.
  • the content association data 320 B includes active viewing content, such as interactive video and a user survey, that are is more likely to be accessed by the user 301 B.
  • the server system 120 customizes the selection of secondary content items based on user attributes identified within the user data 304 A and 304 B.
  • the server system 120 can customize the selection of designated frames and/or secondary content items based on other types of user attributes.
  • a user's historical activity while watching different types of content to determine if a user frequently pauses and resumes playback while accessing primary content.
  • users that have a history of high frequency of pausing/resuming playback can be provided with content association data with a larger number of designated frames compared to users have a history of low frequency of pausing/resuming playback.
  • the genres of content frequently accessed by a user can be used to predict a user's preference for types of content and/or his/her attention level at different time points within primary content. For instance, if a user often watches horror movies, then secondary content items may be more frequently presented when the user watches primary content that is classified as a horror movie. A user that does not frequently watch horror movies, however, is not presented the same number of secondary content items when he/she watched the same primary content.
  • the server system 120 generates different content associations for two different predicted contexts 356 A and 356 B for a user 301 when he/she accesses the same primary content, e.g., primary content 352 .
  • the server system 120 generates different content associations for each predicted context based on information contained in context data 354 received from computing devices 360 A-C of the user 301 .
  • the computing devices 360 A-C can represent computing devices that are nearby the user 301 when he/she accesses the primary content 352 .
  • the computing devices 360 A-C can include one or more of a smartphone, a tablet computing device, and a laptop that are accessed by the user 301 during the playback of the primary content 352 .
  • the context data 354 can identify, for example, a location of the user, a current date and time, applications that are actively being accessed by the user 301 , social media activity, or other types of user activity data.
  • the server system 120 processes the information contained within the context data 354 to identify and/or predict present circumstances of the user 301 while accessing the primary content 352 that may impact the likelihood that the user 301 will access secondary content items.
  • the server system 120 In the examples depicted in FIG. 3B , the server system 120 generates different content associations for the primary content 352 based on the time of day that the user 301 accesses the primary content 352 . For instance, as shown, the different content associations specify different designated frames for the primary content 352 and assign different secondary content items to each of the designated frames. In this regard, the server system 120 , in these examples, uses the different content associations to customize the user's viewing experience of the primary content 402 based on when he/she accesses the primary content 352 .
  • the server system 120 With respect to the predicted context 356 A, the server system 120 generates content association data 360 A based on the context data 354 .
  • the content association data 360 A specifies designated frames 362 A and 364 A for the primary content 352 .
  • the content association data 356 A also assigns secondary content items 372 A and 374 A to the designated frames 362 A and 364 A, respectively.
  • content association data 360 B specifies designated frames 362 B, 364 B, and 366 B for the primary content 402 .
  • the content association data 360 B also assigns secondary content items 372 B, 374 B, and 376 B to the designated frames 362 B, 364 B, and 366 B, respectively.
  • the server system 120 determines that the predicted context 356 A indicates that the user 301 accesses the primary content 352 in the nighttime at 9:30 PM.
  • the server system 120 selects secondary content of a visual type, such as a video and an image, because the user 301 is likely have more time to view secondary content and because historical user activity logs indicate that he/she prefers to watch videos at night before sleeping.
  • the server system 120 determines that the predicted context 356 A indicates that the user 301 accesses the primary content 352 in the morning time at 7:30 AM.
  • the server system 120 selects textual content, such as articles, because the user 301 is predicted to have limited time to access the secondary content and because historical user activity logs indicate that he/she regularly reads online news articles in the morning.
  • the server system 120 may determine that the user 301 may have a shorter attention span in the morning time for secondary content relative to the evening or nighttime because he/she may be preparing to commute to work or school.
  • FIGS. 4A-D illustrate examples of user interfaces 400 A-D that are provided to different users.
  • FIGS. 4A-B illustrate examples of user interfaces that can be used by content providers and/or content distributes to manually generate content association data that is used by the system 100 to provide secondary content items to users while accessing primary content.
  • FIGS. 4C and 4D illustrate examples of user interfaces that are provided to users on a computing device where primary content is accessed and a computing device where secondary content items are accessed, respectively.
  • a user interface 400 A for manually associating secondary content items to primary content at specified time points is illustrated.
  • Content providers and/or content distributors can use the interface 400 A through the application server 140 .
  • a user uses the interface 400 A to upload five pieces of secondary content, which are generally associated with primary content.
  • the user can specify an order in which secondary content items should be associated with the primary content.
  • secondary content items can include video content, audio content, image content, or textual content such as articles.
  • a user interface 400 B for manually specifying time points to display secondary content items during playback of the primary content is illustrated.
  • Content providers and/or content distributors can use the interface 400 B through the applications server 140 .
  • a user can add a secondary content item to a specified time point within the playback of the primary content.
  • a secondary content item is associated with the primary content as time point “02:33.”
  • the content association specified on the user interface 400 B can be used by the system 100 to provide a communication that includes the secondary content item once playback of the primary content passes a designated frame associated with the time point “02:33” as discussed above.
  • a user interface 400 C for viewing primary content on a display device is illustrated.
  • a user can select from among multiple a list of videos to access on the display device.
  • a user can be provided with access to secondary content on the display where the primary content is presently being accessed.
  • the user is provided with a communication 420 that identifies secondary content associated with a presently playing video titled “REPORT ON ACTION ON CLIMATE CHANGE.”
  • the communication 420 is provided on the same device as the device accessing the primary content, e.g., the computing device 110 .
  • a user accesses secondary content items on a separate device from the device where the primary content is being accessed.
  • interface 400 D is presented on the computing device 130 , which is a device within a proximity of the user when he/she is accessing primary content on a display device.
  • the computing device 130 can be a smartphone that is within reach of the user while, for example, the user watches the primary content on a television.
  • the primary content in this example is the video being accessed on the interface 400 C, which is a video titled “VOICE FOR ACTION ON CLIMATE CHANGE.”
  • the interface 400 D provides metadata for the primary content, e.g., video title and metadata, as well as information on secondary content items that are associated with the primary content.
  • the primary content is associated with two pieces of secondary content at two specified time points within the playback of the primary content.
  • an article titled “CHANGING MINDSETS IN ZAMBIA: WHY RADIO” is assigned to a frame of the primary content corresponding to the time point “00:37”
  • a secondary video titled “UPDATES ON CLIMATE CHANGE” is assigned to a frame of the primary content corresponding to the time point “02:32.”
  • a user can access the secondary content items at assigned time point, or alternatively before the playback of the primary content reaches the assigned time point.
  • FIG. 5 illustrates an example of a process 500 for dynamically synchronizing secondary content during specified time points of accessed primary content.
  • the process 500 can include the operations of obtaining data indicating that a primary content is accessed on a computing device ( 510 ), generating content association data for the primary content ( 520 ), determining that the computing device accessed a particular frame of the primary content ( 530 ), and providing an instruction to display a communication that includes one or more secondary content items to the computing device ( 540 ).
  • the process 500 is described in reference to the system 100 , although any other system can perform the operations of the process 500 .
  • the operation 400 is performed in association with primary content and secondary content items that are provided on the same device, e.g., the computing device 110 .
  • the operation 400 is performed in association with primary content and secondary content items that are provided on different devices, e.g., the computing devices 110 and 130 .
  • the process 500 can include the operation of obtaining data indicating that a primary content is accessed on a computing device ( 510 ).
  • the server system 120 obtains the playback data 104 indicating that the primary content 112 is accessed on the computing device 110 .
  • the process 500 can include the operation of generating content association data for the primary content ( 520 ).
  • the server system 120 generates the content association data 122 .
  • content association data 122 specifies one or more designated frames of the primary content 112 such as the designated frames 112 A.
  • the content association data 122 also specifies one or more secondary content items that are assigned to each of the one or more designated frames such as the secondary content item 124 A assigned to the designated frame 112 A.
  • the content association data 122 can be generated at different time points in relation to playback of the primary content 112 .
  • the content association data 122 is generated manually by, for example, a content provider or a content distributor.
  • designated frames within the primary content 112 that are assigned to secondary content items are predetermined and known when the primary content 112 is accessed on the computing device 130 .
  • the content association data 122 is dynamically determined when the primary content 112 is accessed by the user 101 or during playback of the primary content 112 on the computing device 130 .
  • frames of the primary content 112 can be designated and assigned to secondary content in real-time based on, for example, user activity data received through devices of the user 101 , or context data indicating a predicted context of the user 101 as he/she accesses the primary content.
  • associations to secondary content can be varied with respect to the designated frames of the primary content 112 and the secondary content items assigned to each designated time point.
  • the content association data 122 can specify different content associations for users having different user attributes that access the primary content 112 as depicted in FIG. 3A , or alternatively, for the same user that is predicted to be in different contexts when accessing the primary content 112 as depicted in FIG. 3B .
  • the process 500 can include the operation of determining that the computing device accessed a particular frame of the primary content ( 530 ). For example, the server system 120 determines that the computing device 130 accessed a particular frame from among the one or more designated frames such as the designated frame 112 A. As depicted in FIG. 1B , the server system 120 can monitor the playback of the primary content 112 on the computing device 130 until the playback has reached a time point corresponding to a designated frame specified within the content association data 122 . The server system 120 can monitor playback periodically, e.g., every five seconds, or in real-time.
  • the process 500 can include the operation of providing an instruction to display a communication that includes one or more secondary content items to the computing device ( 540 ). For example, in response to determining that the computing device 110 has accessed the designated frame 112 A, the server system 120 provides the instruction 106 to display the communication 108 . As depicted in FIG. 1A , the communication 108 includes the secondary content item 124 A assigned to the designated frame 112 A within the content association data 122 .
  • FIG. 6 illustrates a schematic diagram of a computer system 600 that can be applied to any of the computer-implemented methods and other techniques described herein.
  • the system 600 can be used to carry out the operations described in association with any of the computer-implemented methods described previously, according to some implementations.
  • computing systems and devices and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification (e.g., system 600 ) and their structural equivalents, or in combinations of one or more of them.
  • the system 600 is intended to include various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers, including vehicles installed on base units or pod units of modular vehicles.
  • the system 600 can also include mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other similar computing devices.
  • the system can include portable storage media, such as, Universal Serial Bus (USB) flash drives.
  • USB flash drives may store operating systems and other applications.
  • the USB flash drives can include input/output components, such as a wireless transmitter or USB connector that can be inserted into a USB port of another computing device.
  • the system 600 includes a processor 610 , a memory 620 , a storage device 630 , and an input/output device 640 .
  • Each of the components 1010 , 1020 , 1030 , and 640 are interconnected using a system bus 650 .
  • the processor 610 is capable of processing instructions for execution within the system 600 .
  • the processor can be designed using any of a number of architectures.
  • the processor 610 can be a CISC (Complex Instruction Set Computers) processor, a RISC (Reduced Instruction Set Computer) processor, or a MISC (Minimal Instruction Set Computer) processor.
  • the processor 610 is a single-threaded processor. In another implementation, the processor 610 is a multi-threaded processor.
  • the processor 610 is capable of processing instructions stored in the memory 620 or on the storage device 630 to display graphical information for a user interface on the input/output device 640 .
  • the memory 620 stores information within the system 600 .
  • the memory 620 is a computer-readable medium.
  • the memory 620 is a volatile memory unit.
  • the memory 620 is a non-volatile memory unit.
  • the storage device 630 is capable of providing mass storage for the system 600 .
  • the storage device 630 is a computer-readable medium.
  • the storage device 630 can be a floppy disk device, a hard disk device, an optical disk device, or a tape device.
  • the input/output device 640 provides input/output operations for the system 600 .
  • the input/output device 640 includes a keyboard and/or pointing device.
  • the input/output device 640 includes a display unit for displaying graphical user interfaces.
  • the features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
  • the apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output.
  • the described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device.
  • a computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result.
  • a computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
  • Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer.
  • a processor will receive instructions and data from a read-only memory or a random access memory or both.
  • the elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data.
  • a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks.
  • Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • semiconductor memory devices such as EPROM, EEPROM, and flash memory devices
  • magnetic disks such as internal hard disks and removable disks
  • magneto-optical disks and CD-ROM and DVD-ROM disks.
  • the processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
  • ASICs application-specific integrated circuits
  • the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
  • a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
  • the features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them.
  • the components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
  • the computer system can include clients and servers.
  • a client and server are generally remote from each other and typically interact through a network, such as the described one.
  • the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.

Abstract

In some implementations, a system is capable of dynamically associating content streams to improve a user's viewing experience while accessing primary content. To accomplish this, the CMS uses content association data assigning secondary content items to the primary content. Secondary content items can be assigned to designated frames of the primary content so that the secondary content items are presented to user at specified time points during the playback of the primary content. Secondary content items can represent content that is related to the subject matter of the primary content, or content that a user may be interested in accessing while viewing the primary content.

Description

BACKGROUND
Advances in mobile device and communications technologies have increased the number of avenues of user Internet access and media consumption. Users now interact with web content using applications running on a variety of different communication devices, e.g., smart phones, personal computers, personal digital assistants (PDAs), etc., and are doing so with increasing regularity.
SUMMARY
Multimedia systems often provide users with access to secondary content while viewing or accessing primary content. For example, some systems provide users with access to metadata of actors when watching a movie that includes the actors. However, such systems often provide access to secondary content in a static and often unengaging manner. For example, while secondary content can generally be associated with metadata of the primary content, multimedia systems often do not present secondary content at specific time points within the playback of the primary content. Moreover, the presentation of secondary content can often interfere with the user's viewing experience of the primary content because a user may become preoccupied with the secondary content during time points of the primary content that demand a user's attention.
In some implementations, a content management system (CMS) is capable of addressing these and other limitations of such multimedia systems by dynamically associating content streams to improve a user's viewing experience while accessing primary content. To accomplish this, the CMS uses content association data assigning secondary content items to the primary content. Secondary content items can be assigned to designated frames of the primary content so that the secondary content items are presented to user at specified time points during the playback of the primary content. Secondary content items can represent content that is related to the subject matter of the primary content, or content that a user may be interested in accessing while viewing the primary content.
For example, a secondary content item can represent a news article about a factual event that is referenced in a primary content that is fictional movie. In this example, the CMS generates and applies content association data that assigns the news article to a designated frame within the movie that references the factual event. Once the playback of a movie reaches the designated frame, a user is provided with access to the news article on one or more electronic devices. In this regard, the content association data can be used provide the user with access to relevant content in a more intuitive and interactive manner.
The CMS is capable of dynamically adjusting the content association data for a single primary content to customize a viewing experience for different users or for different sessions by the same user. For example, the CMS can obtain context data collected through a user device to predict a context of a user when he/she accesses the primary content. The CMS can then dynamically generate the content association data for the primary content based on predicted context of the user. In this example, a user may be presented with different collections of secondary content items and/or at different time points within the primary content when, for instance, viewing the same primary content during daytime and nighttime.
In another example, the CMS may use user-specific data, such as user preferences or user activity data to customize the content association data for a specific set of user attributes. In this example, different users accessing the same primary content may be presented with different collections of secondary content items and/or at different time points within the primary content. In this regard, the CMS is capable of using context data and/or user-specific data to adjust both the selection of secondary content items that are presented to a user and the time points within the playback of the primary contents during which selected secondary content items are presented to the user.
The CMS can present the secondary content on a device being used to access the primary content, or alternatively, on another device that is associated with the user and is likely to be accessible to the user when viewing the primary content. In implementations where the same device is used to present content, the CMS may display unobtrusive notifications identifying the secondary content on a screen while the primary content is presented on the screen. In other implementations, the CMS can identify a second device that is likely to be accessed by the user when viewing the primary content on a first device. In such implementations, the secondary content items are presented through the second device instead of the first device.
The architecture of the system provides various improvements in displaying associated content when a user is viewing primary content. As an example, because the content association data can assign secondary content to designated frames of the primary content, the CMS is capable of dynamically presenting associated content specified time points when a user is most likely to be interested in viewing the associated content. As another example, the CMS can customize the content association data towards the preferences and/or context of the user such that associated content is provided in a manner that is both unobtrusive to the user's viewing experience and likely to supplement and/or improve the user's overall viewing experience.
In one general aspect, a method includes the operations of: obtaining, by a server system, data indicating that a primary content is accessed on a computing device; generating, by the server system, content association data for the primary content, the content association data specifying (i) one or more designated frames of the primary content, and (ii) one or more secondary content items assigned to each of the one or more designated frames; determining, by the server system, that the computing device accessed a particular frame from among the one or more designated frames; and in response to determining that the computing device is accessing the particular frame, providing, by the server system and for output to one or more computing devices, an instruction to display a communication that includes the one or more secondary content items assigned to the particular frame within the content association data.
One or more implementations can include the following optional features. For example, in some implementations, the method further includes the operation of determining, by the server system, a predicted context associated with a user of the computing device. In such implementations, generating the content association data for the primary content includes: selecting a secondary content item that is determined to be associated with the predicted context associated with the user; and assigning the secondary content item to a designated frame from among the one or more designated frames of the primary content.
In some implementations, the method further includes the operation of obtaining data indicating a set of user attributes for a user of the computing device accessing the primary content being played on the computing device. In such implementations, generating the content association data for the primary content includes: selecting a secondary content item that is determined to be associated with the set of user attributes; and assigning the secondary content item to a designated frame from among the one or more designated frames of the primary content.
In some implementations, the communication is provided for output to a second computing device that is within a threshold proximity to the computing device.
In some implementations, the computing device is a stationary display device, and the second computing device is a mobile device.
In some implementations, the computing device runs a first operation system, and the second computing device runs a second operating system that is different from the first operating system.
In some implementations, the method further includes the operations of: determining, by the server system, one or more additional computing devices that are (i) likely to be used by a user of the computing device during a time period in which the primary content is accessed on a computing device, and (ii) connected to a local area network of the computing device; selecting, by the server system, a particular computing device from among the one or more additional computing devices. In such implementations, the instruction is provided to the selected computing device.
In some implementations, the method further includes the operation of determining, by the server system and for each of the one or more additional computing devices, a respective likelihood that a computing device is used by a user of the computing device during a time period in which the primary content is accessed on a computing device. In such implementations, the particular computing device is selected from among the one or more computing devices based on the determined likelihoods.
Other implementations of this and other aspects include corresponding methods, apparatus, and computer programs, configured to perform the actions of the systems, encoded on computer storage devices.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIGS. 1A-B illustrate an example of a CMS that is capable of using content association data to dynamically associate content at specified time points.
FIG. 2 illustrates an example of a technique for associating frames of primary content to secondary content items.
FIG. 3A-B illustrates examples technique for customizing content association data of primary content.
FIGS. 4A-D illustrate examples of user interfaces that are provided to different users.
FIG. 5 illustrates an example of a process for dynamically synchronizing secondary content during specified time points of accessed primary content.
FIG. 6 is a block diagram of computing devices on which the processes described herein, or portions thereof, may be implemented.
Like reference numbers and designations in the various drawings indicate like elements. The components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit the implementations described and/or claimed in this document.
DETAILED DESCRIPTION
In general, this document describes a CMS that is capable of dynamically associating content streams to improve a user's viewing experience while accessing primary content. To accomplish this, the CMS uses content association data assigning secondary content items to the primary content. Secondary content items can be assigned to designated frames of the primary content so that the secondary content items are presented to user at specified time points during the playback of the primary content. Secondary content items can represent content that is related to the subject matter of the primary content, or content that a user may be interested in accessing while viewing the primary content.
For example, a secondary content item can represent a news article about a factual event that is referenced in a primary content that is fictional movie. In this example, the CMS generates and applies content association data that assigns the news article to a designated frame within the movie that references the factual event. Once the playback of a movie reaches the designated frame, a user is provided with access to the news article on one or more electronic devices. In this regard, the content association data can be used provide the user with access to relevant content in a more intuitive and interactive manner.
As described throughout, a “content” refers to any form of digital multimedia. Content can include multimedia files that are accessed from computer-readable media, data that is streamed over a network medium, or data that is transmitting over a broadcasting medium. Examples of content described throughout this document can include textual content, audible content, e.g., music, and visual content, e.g., images or video. A user can access content using any suitable electronic device through any suitable means such as from a tangible medium, through a network medium, or a broadcasting medium. In some implementations, content is presented to a user through an application running on an electronic device.
As described throughout, “primary content” refers to content that is accessed by a user and during which another piece of content is provided to the user. For example, primary content can refer to a movie that is playing when content assigned to a particular scene within the movie is provided to the user. As another example, primary content can refer to a song that is playing when content assigned to a chorus of the song is provided to the user.
As described throughout, “secondary content items” refer to content that is provided to the user during specified time points of the playback of the primary content. As discussed below, a secondary content item can be assigned to a particular frame of the primary content such that the secondary content item is provided to the user when playback of the primary content reaches the particular frame. Examples of secondary content items include news articles, video clips, audio segments, textual messages, hyperlinks, among others.
As described throughout, “real-time” refers information or data that is collected and/or processed instantaneously with minimal delay after the occurrence of a specified event, condition, or trigger. For instance, “real-time data” refers to data, e.g., content association data, playback data, context data, etc., that is processed with minimal delay after a computing device collects or senses the data, e.g., using accelerometers, gyroscopes, magnetometers, etc. The minimal delay in collecting and processing the collected data is based on a sampling rate or monitoring frequency of the computing device, and a time delay associated with processing the collected data and transmitting the processed data over a network. As an example, a computing device on which primary content is being accessed may collect data representing playback progression of the primary content every second and transmit the collected data to a server system as network data packets. The server system processes each received network data packet to monitor the progression of playback of the primary content to determine when computing devices access a designated frame of the primary content. In response to determining that the designated frame has been accessed, the server system transmits an instruction to the computing device to display a communication that includes secondary content items assigned to the designated frame. In this example, each of the processing operations can be performed in real-time to minimize the delay between a time point when the designated frame is accessed and a time point when the communication including the secondary content items are provided for output to the user.
FIGS. 1A-B illustrate an example of a CMS 100 that is capable of using content association data to dynamically associate content at specified time points. The CMS 100 includes a computing device 110, a server system 120, and a computing device 130. The server system 120 generates and stores content association data 122 in an associated repository as discussed in detail below. FIG. 1A illustrates an example of a technique used by the system 100 to display a secondary content item 124A during a time period when the user 101 accesses primary content 112 on the computing device 110. FIG. 1B illustrates an architecture of the components of the system 100.
Referring initially to FIG. 1A, the system 100 uses the depicted technique to provide the user 101 with access to secondary content on the computing device 130 while accessing primary content 112 on the computing device 110. In this example, the computing device 110 represents a device with a large screen such as a television and the computing device 130 represents a mobile device such as a smartphone or a tablet computing device. The system provides secondary content within a communication 132 at a specified time point 102 within the playback of the primary content 112.
The example depicted in FIG. 1A associates primary content 112 and secondary content items 124A and 12B based on the content of the primary content 112, although other types of content associations can also be used. In the depicted example, primary content 112 is a video titled “VIDEO FOR ACTION ON CLIMATE CHANGE,” which is related to topics “AFRICA” and “CLIMATE CHANGE.” The secondary content items 124A and 124B are content that also relate to these topics. For example, the secondary content item 124A is an article titled “CHANGING MINDSETS IN ZAMBIA: WHY RADIO” relating to the topic “AFRICA” whereas the secondary content item 124B is a video titled “UPDATES ON CLIMATE CHANGE” relating to the topic “CLIMATE CHANGE.”
Referring in more detail to the technique depicted in FIG. 1A, the content association data 122 associates a secondary content item 124A to a frame 112 a of the primary content 112. The frame 112A corresponds to a time point 102 within the playback of the primary content 112 on the computing device 110. In this regard, when playback of the primary content 112 reaches the time point 102, as depicted in FIG. 1A, the CMS 100 begins dynamically associating the primary content 112 to the secondary content item 124A as discussed below. Although this example depicts the primary content 112 and the secondary content item 124A being provided to the user 101 on different devices, in some implementations, the CMS might alternatively provide the secondary content item 124A on the same device, e.g., the computing device 110.
The server system 120 initially generates content association data 122. In this example, the content association data 122 is generated prior to initiating playback of the primary content 112 on the computing device 110. Once initiated, the server system 120 monitors the playback of the primary content 112 on the computing device 110.
In some implementations, instead of generating the content association data 122 prior to playback of the primary content 112, as discussed above, the server system 120 instead is capable of dynamically generating the content association data after playback of the primary content 112 has initiated on the computing device 110. In such implementations, the server system 120 can use, for example, activity data collected by the computing device 110 and/or other devices such as the computing device 130, to adjust the generation of the content association data 122. The server system 120 can dynamically select the secondary content items and/or the frames of the primary content to assign to the selected secondary content items based on the received activity data. Dynamic generation of the content association data is discussed in more detail with respect to FIGS. 3A-B.
The server system 120 obtains playback data 104 from the computing device over the network 105. As depicted in FIG. 1A, the playback data 104 indicates that playback of the primary content 112 has reached the time point 102, e.g., at “00:37 S,” which corresponds to the designated frame 112A within the content association data 122. As shown, the designed frame 112A is assigned to the secondary content item 124A.
In response to receiving the playback data 104, the server system 120 selects the secondary content item 124A to provide to the computing device 130. In this example, the server system 120 automatically selects the secondary content item 124A since the designated frame is assigned to the designated frame 112A.
In some implementations, multiple secondary content items are assigned to the designated frame 112A. In such implementations, the server system 120 may either provide each of the multiple secondary content items to the client device 130, or provided a selected subset of the multiple content items. The selection can be based on, for example, based on data received from the computing devices 110 and 130, e.g., context data or user-specific data.
In some implementations, multiple secondary content items assigned to the designated frame 112A can represent alternative forms of the same content, e.g., a text transcription of a conversation, audio data encoding utterances of the conversation, and video data depicting characters having the conversation. In such implementations, the server system 120 can select one of the multiple secondary content items based on determining which form would be the most appropriate to provide for output. This determination can be based on the predicted context of the user, information associated with the primary content 110, or interaction data of the user collected by computing devices 110 and 130. As an example, activity data of the user 101 collected on the computing device 130 while he/she accesses the primary content 110 on the computing device 110 can be used to by the server system 110 to determine the secondary content to select and provide for output on the computing device 130. In this example, if the activity data indicates that the user 101 is actively using the computing device, then a less disruptive form of secondary content may be selected and provided, e.g., a text notification, instead of a potentially more disruptive form of secondary content, e.g., video display.
The server system 130 generates an instruction 106 to provide for output to the computing device 130. The instruction 106 identifies a type of communication to provide for output on the client device 130, and the secondary content selected by the server system 120 to include in the communication. The different communication types can include a text message, an operating system notification, an in-app pop-up notification, an email, among others. Additionally, the content can be included in the communication using various techniques.
The client device 130 receives the instruction 106, and in response, provides a communication 108 for output to the user 101. In the example depicted in FIG. 6, the communication 108 is a notification that includes a snippet of content that includes to a hyperlink to a web location of the secondary content 124A that, upon selection by a user input, directs the user 101 to a uniform resource locator (URL) associated with a web location of the secondary content 124A. In other implementations, the communication 108 can includes other types of references to the secondary content 124A such as text-based or image-based snippets, user recommendations or suggestions, among others.
In some implementations, content server 120 stores device association data, e.g., in the repository 122, that can be used to enable the computing device 110 and/or the computing device 130 to identify one another in relation to playback of the primary content 112 or the display of the communication 108. In some instances, the device association data is generated based a user manually pairing devices that are connected over the LAN within a property. Device information collected from the pairing is then stored within the device association data. In other instances, instead of manually pairing two devices, a user instead provides login information, e.g., a username and password, to authenticate to each device to be paired. In such instances, the device association data is assigned to a user account and is updated to include device information of each device that the submits login information for authentication. In some other instances, two devices connected over the same LAN can be explicitly paired with the user of a temporary activation code made available to a device to be paired and through a device that's already associated with the content server. For example, a device to be paired can receive an activation code that the user provides on an existing paired device to associate the device to be paired with the user's account.
In some implementations, multiple display devices are available to access the primary content 112. For instance, a user may have multiple display devices within a vicinity of one another, e.g., within the same room, that are each capable of displaying the primary content 112. In such implementations, the content server 120 can be capable of using techniques to select a particular device from among the multiple display devices to provide the primary content 112 for accessing by the user 101. For example, the prior to initiating playback of the primary content 112, the content server 120 may transmit a communication to one or more of the devices being used by the user to confirm which did play device will be used to access the primary content 112.
Alternatively, in some implementations, where the system is capable of monitoring location and position data of a computing device of the user, such as a smart phone, the monitoring location and position data can be used to automatically select a display device that is determined to be closest to the user. For example, the system 100 can include beacons placed in different regions of a property, e.g., a corporate office. In this example, a connection event between a beacon and user's mobile device can be used to identify a user's location within the property. The identified location can then be cross-referenced with map data indicating known locations of display devices, and selecting the display device that is the closest to the user's identified location.
In some implementations, the communication 108 that includes secondary content items can be provided in one or more of an augmented reality (AR), virtual reality, and/or a mixed reality computing environment. For example, a secondary content item can be presented as a graphical element that is displayed through, for instance, a smart phone camera's field of view at a specified time within the playback of the primary content 112 as discussed above. In another example, if the primary content 112 represents VR content provided through a head-mounted device (HMD), then the secondary content can represent a three-dimensional virtual object that is generated within the spatial environment of the VR content. The secondary content items that can be generated within AR and VR environments can represent two-dimensional content that is adjusted for AR and VR environments, e.g., snippets placed inside a three-dimensional object container, or alternatively, three-dimensional object representing virtual object, characters or other types of graphics.
Referring now to FIG. 1B, an example of an architecture for components of the system is depicted. The depicted architecture generally enables the system 100 to dynamically associate primary content to secondary content items. As discussed above, in some implementations, content associations can be determined in real-time, e.g., prior to or during playback of the primary content. The associations are specified within the content association data 122 and applied during playback of the primary content to provide associated secondary content items to, for example, computing devices 130A-C.
In the example depicted in FIG. 1B, the system 100 includes server systems 120A-B and multiple client devices 130A-C that exchange communications over the network 105. In this example, a content provider that provisions content to users can manage the server system 120A, and a third-party entity that is authorized by the content provider to distribute content produced by the content provider manages the server system 120B.
The server system 120A includes a content repository 152 for storing content to be provisioned to users over the network 105. In particular, the content repository 152 can store primary content and secondary content items, and metadata associated with the stored content. Content can be stored within the content repository 152 in an unassociated manner, e.g., without content associations between primary content and secondary content items, or alternatively, in an indexed format where classification labels are assigned to primary content and secondary content items. When stored in an indexed format, primary content and secondary content items that relate to certain topics or subjects can be identified using the classification labels. For example, content can be classified with a “HORROR” genre to enable association of primary content and secondary content items that both relate to the same genre.
The server system 120B stores user profile data 154 and content association data 156. In some instances, the content association data 156 can correspond to the content association data 122 depicted and discussed above with respect to FIG. 1A. The user profile data 154 includes, for example, user account data, user activity data, e.g., social media activity, prior search queries, location data, etc., and/or user preferences. As discussed above, the content association data 156 can be pre-generated before primary content is accessed by a user, or alternatively, dynamically generated at a time point when the primary content is accessed or during playback of the primary content.
In some implementations, the server system 120 uses the user profile data 154 to dynamically generate, and/or customize the generation of, the content association data 156. For example, as discussed in detail with respect to FIGS. 3A-B, the content association data 156 can be generated based on a predicted user context and/or a set of user-specific attributes indicated within the user profile data 154.
In some implementations, such as the example depicted in FIG. 1A, the server systems 120A and 120B can be combined into a single server system that performs the combined operations of the server systems 120A and 120B. In such implementations, a single server system can be used to store and periodically update the content repository 152, the user profile data 154, and the content association data 156.
The computing devices 130A-C can each be any type of electronic computing device that is associated with a display and is capable of presenting content that is accessed by a user. For example, the computing devices 130A-C can be one or more of a smartphone, a laptop computing device, a desktop computing device, or any other type of display-based device.
In some instances, the computing devices 130A-C include devices that are associated with a single user and are, for example, connected to the same local area network (LAN). The computing devices 130A-C, in such instances, can represent devices that are located nearby one another and accessible to the user when accessing the primary content. For example, a user can access primary content on the computing device 130A while accessing secondary content items 130B on either the computing devices 130B and/or 130C. In this example, the computing device 130A is a computing device with a large display, such as a television, and the computing devices 130B and 130C are mobile devices, such as a smartphone or a tablet computing device.
In other instances, the computing devices 130A-C include devices that are associated with multiple users that access the same primary content stored within the content repository 152. In such instances, each of the computing devices 130A-C may receive different content association data that is customized for the corresponding user. For example, the content association provided to the computing devices 130A-C can vary with respect to the secondary content items associated with the primary content and/or the designated frames of the primary content that are assigned to the secondary content items.
FIG. 2 illustrates an example of a technique for associating frames of primary content to secondary content items. As depicted, the server system 202 generates content association data 202 and distributes it to the computing devices 110 and 130 during playback of primary content 204 on the computing device 110. In this example, the content association data 202 assigns secondary content items 206A, 206B, and 206C respectively to designated frames 204A, 204B, and 204C of the primary content 204.
Each of the designated frames 204A-C correspond to a specified time point within playback of the primary content 204. As depicted, primary content 204 is a video with a 15-minute duration. In this example, designated frames 204A-C correspond respectively to time points represented by two-minute progression into the video, six-minute progression into the video, and ten-minute progression into the video.
The secondary content items 206A-C are each presented on the computing device 130 as playback of the primary content 204 progresses. For example, communications including the secondary content items 206A-C are provided respectively to the client device 130 at the two-minute, six-minute, and ten-minute progression points into the primary content 204. Each communication can be provided on the computing device 130 for a particular time period specified by the content association data or until a user provides an input to dismiss the presented communication. For example, the communications including the secondary content items 206A-C are provided respectively for ten seconds, five seconds, and thirty seconds. In some implementations, the duration of a presented communication can be determined based on the content type of the secondary content item included in the communication. For example, a communication that includes a hyperlink can be presented for a shorter time period compared to a communication that includes a large text segment.
FIG. 3A-B illustrates examples of techniques for customizing content association data of primary content. Referring initially to FIG. 3A, an example of a technique for customizing content association data of primary content for different users is depicted. In the example depicted, the server system 120 generates different content associations for two users 301A and 301B that access the same primary content, e.g., primary content 302 stored within a content repository. In this example, the server system 120 generates the content associations based on information contained in user data 304A and 304B received from computing devices 130A and 130B, respectively.
As depicted in FIG. 3A, the server system 120 generates content association data that specifies different designated frames for the primary content 302 and assigns different secondary content items to each of the designated frames. In this regard, the server system 120, in this example, uses the content association data to customize each user's viewing experience of the primary content 302.
For example, with respect to the user 301A, the server system 120 generates content association data 320A based on the user data 304A. The content association data 320A specifies designated frames 306A and 308A for the primary content 302. The content association data 320A also assigns secondary content items 312A and 314A to the designated frames 306A and 308A, respectively. With respect to the user 301B, the server system 120 generates content association data 320B based on the user data 304B. The content association data 320B specifies designated frames 306B, 308B, and 312B for the primary content 302. The content association data 320B also assigns secondary content items 314B, 316B, and 318B to the designated frames 306B, 308B, and 312B, respectively.
As depicted in FIG. 3A, the user data 304A and 304B vary with respect to, for example, user attributes of each corresponding user. For example, the user data 304A indicates that the user 301A is a 42-year old male whose historical user activity indicates a preference for passive types of interaction, e.g., viewing and accessing content. In the other example, the user data 304B indicates that the user 301B is a 25-year old female whose historical user activity indicates a preference of active types of interaction, e.g., sharing content over a social media network.
In the example depicted in FIG. 3A, the server system 120 generates different content associations for each user based on the different user attributes identified within the user data 304A and 304B. For instance, the content association data 320A identifies three secondary content items (instead of two as specified in content association data 320B), and designates different frames of the primary content 302 corresponding to different events. In the first instance, the content association data 320A includes passive viewing content, such as a related article and an image, that is more likely to be accessed by the user 301A based on his user attributes. In contrast, in the second instance, the content association data 320B includes active viewing content, such as interactive video and a user survey, that are is more likely to be accessed by the user 301B. In this regard, the server system 120 customizes the selection of secondary content items based on user attributes identified within the user data 304A and 304B.
In some implementations, the server system 120 can customize the selection of designated frames and/or secondary content items based on other types of user attributes. As an example, a user's historical activity while watching different types of content to determine if a user frequently pauses and resumes playback while accessing primary content. In this example, users that have a history of high frequency of pausing/resuming playback can be provided with content association data with a larger number of designated frames compared to users have a history of low frequency of pausing/resuming playback.
As another example, the genres of content frequently accessed by a user can be used to predict a user's preference for types of content and/or his/her attention level at different time points within primary content. For instance, if a user often watches horror movies, then secondary content items may be more frequently presented when the user watches primary content that is classified as a horror movie. A user that does not frequently watch horror movies, however, is not presented the same number of secondary content items when he/she watched the same primary content.
Referring now to FIG. 3B, an example of a technique for customizing content association data of primary content for different predicted contexts of a single user is depicted. In the example, the server system 120 generates different content associations for two different predicted contexts 356A and 356B for a user 301 when he/she accesses the same primary content, e.g., primary content 352. In this example, the server system 120 generates different content associations for each predicted context based on information contained in context data 354 received from computing devices 360A-C of the user 301.
The computing devices 360A-C can represent computing devices that are nearby the user 301 when he/she accesses the primary content 352. For example, the computing devices 360A-C can include one or more of a smartphone, a tablet computing device, and a laptop that are accessed by the user 301 during the playback of the primary content 352. The context data 354 can identify, for example, a location of the user, a current date and time, applications that are actively being accessed by the user 301, social media activity, or other types of user activity data. The server system 120 processes the information contained within the context data 354 to identify and/or predict present circumstances of the user 301 while accessing the primary content 352 that may impact the likelihood that the user 301 will access secondary content items.
In the examples depicted in FIG. 3B, the server system 120 generates different content associations for the primary content 352 based on the time of day that the user 301 accesses the primary content 352. For instance, as shown, the different content associations specify different designated frames for the primary content 352 and assign different secondary content items to each of the designated frames. In this regard, the server system 120, in these examples, uses the different content associations to customize the user's viewing experience of the primary content 402 based on when he/she accesses the primary content 352.
With respect to the predicted context 356A, the server system 120 generates content association data 360A based on the context data 354. The content association data 360A specifies designated frames 362A and 364A for the primary content 352. The content association data 356A also assigns secondary content items 372A and 374A to the designated frames 362A and 364A, respectively. With respect to the predicted context 356B, content association data 360B specifies designated frames 362B, 364B, and 366B for the primary content 402. The content association data 360B also assigns secondary content items 372B, 374B, and 376B to the designated frames 362B, 364B, and 366B, respectively.
In the first example, the server system 120 determines that the predicted context 356A indicates that the user 301 accesses the primary content 352 in the nighttime at 9:30 PM. In this example, the server system 120 selects secondary content of a visual type, such as a video and an image, because the user 301 is likely have more time to view secondary content and because historical user activity logs indicate that he/she prefers to watch videos at night before sleeping.
Alternatively, in the second example, the server system 120 determines that the predicted context 356A indicates that the user 301 accesses the primary content 352 in the morning time at 7:30 AM. Compared to the first example, the server system 120, in this example, selects textual content, such as articles, because the user 301 is predicted to have limited time to access the secondary content and because historical user activity logs indicate that he/she regularly reads online news articles in the morning. For example, the server system 120 may determine that the user 301 may have a shorter attention span in the morning time for secondary content relative to the evening or nighttime because he/she may be preparing to commute to work or school.
FIGS. 4A-D illustrate examples of user interfaces 400A-D that are provided to different users. FIGS. 4A-B illustrate examples of user interfaces that can be used by content providers and/or content distributes to manually generate content association data that is used by the system 100 to provide secondary content items to users while accessing primary content. FIGS. 4C and 4D illustrate examples of user interfaces that are provided to users on a computing device where primary content is accessed and a computing device where secondary content items are accessed, respectively.
Referring initially to FIG. 4A, a user interface 400A for manually associating secondary content items to primary content at specified time points is illustrated. Content providers and/or content distributors can use the interface 400A through the application server 140. In the example depicted, a user uses the interface 400A to upload five pieces of secondary content, which are generally associated with primary content. The user can specify an order in which secondary content items should be associated with the primary content. As shown, secondary content items can include video content, audio content, image content, or textual content such as articles.
Referring now to FIG. 4B, a user interface 400B for manually specifying time points to display secondary content items during playback of the primary content is illustrated. Content providers and/or content distributors can use the interface 400B through the applications server 140. In the example depicted, a user can add a secondary content item to a specified time point within the playback of the primary content. As shown, a secondary content item is associated with the primary content as time point “02:33.” Once configured, the content association specified on the user interface 400B can be used by the system 100 to provide a communication that includes the secondary content item once playback of the primary content passes a designated frame associated with the time point “02:33” as discussed above.
Referring now to FIG. 4C, a user interface 400C for viewing primary content on a display device is illustrated. In this example, a user can select from among multiple a list of videos to access on the display device. Once playback of a selected video initiates, a user can be provided with access to secondary content on the display where the primary content is presently being accessed. In the example depicted in FIG. 4C, for instance, the user is provided with a communication 420 that identifies secondary content associated with a presently playing video titled “REPORT ON ACTION ON CLIMATE CHANGE.” In this example, the communication 420 is provided on the same device as the device accessing the primary content, e.g., the computing device 110.
Alternatively, in other implementations, such as the example depicted in FIG. 4D, a user accesses secondary content items on a separate device from the device where the primary content is being accessed. For example, interface 400D is presented on the computing device 130, which is a device within a proximity of the user when he/she is accessing primary content on a display device. In this example, the computing device 130 can be a smartphone that is within reach of the user while, for example, the user watches the primary content on a television. The primary content in this example is the video being accessed on the interface 400C, which is a video titled “VOICE FOR ACTION ON CLIMATE CHANGE.”
As shown, the interface 400D provides metadata for the primary content, e.g., video title and metadata, as well as information on secondary content items that are associated with the primary content. In this example, the primary content is associated with two pieces of secondary content at two specified time points within the playback of the primary content. For example, an article titled “CHANGING MINDSETS IN ZAMBIA: WHY RADIO” is assigned to a frame of the primary content corresponding to the time point “00:37” whereas a secondary video titled “UPDATES ON CLIMATE CHANGE” is assigned to a frame of the primary content corresponding to the time point “02:32.” A user can access the secondary content items at assigned time point, or alternatively before the playback of the primary content reaches the assigned time point.
FIG. 5 illustrates an example of a process 500 for dynamically synchronizing secondary content during specified time points of accessed primary content. Briefly, the process 500 can include the operations of obtaining data indicating that a primary content is accessed on a computing device (510), generating content association data for the primary content (520), determining that the computing device accessed a particular frame of the primary content (530), and providing an instruction to display a communication that includes one or more secondary content items to the computing device (540).
In general, the process 500 is described in reference to the system 100, although any other system can perform the operations of the process 500. In one example, the operation 400 is performed in association with primary content and secondary content items that are provided on the same device, e.g., the computing device 110. In another example, the operation 400 is performed in association with primary content and secondary content items that are provided on different devices, e.g., the computing devices 110 and 130.
In detail, the process 500 can include the operation of obtaining data indicating that a primary content is accessed on a computing device (510). For example, the server system 120 obtains the playback data 104 indicating that the primary content 112 is accessed on the computing device 110.
The process 500 can include the operation of generating content association data for the primary content (520). For example, the server system 120 generates the content association data 122. As depicted in FIG. 1A, content association data 122 specifies one or more designated frames of the primary content 112 such as the designated frames 112A. The content association data 122 also specifies one or more secondary content items that are assigned to each of the one or more designated frames such as the secondary content item 124A assigned to the designated frame 112A.
As discussed above, the content association data 122 can be generated at different time points in relation to playback of the primary content 112. In some instances, the content association data 122 is generated manually by, for example, a content provider or a content distributor. In such instances, designated frames within the primary content 112 that are assigned to secondary content items are predetermined and known when the primary content 112 is accessed on the computing device 130. Alternatively, in other instances, the content association data 122 is dynamically determined when the primary content 112 is accessed by the user 101 or during playback of the primary content 112 on the computing device 130. In such instances, frames of the primary content 112 can be designated and assigned to secondary content in real-time based on, for example, user activity data received through devices of the user 101, or context data indicating a predicted context of the user 101 as he/she accesses the primary content. As discussed above in FIGS. 3A and 3B, in such instances where content association data 122 is dynamically generated, associations to secondary content can be varied with respect to the designated frames of the primary content 112 and the secondary content items assigned to each designated time point. As examples, the content association data 122 can specify different content associations for users having different user attributes that access the primary content 112 as depicted in FIG. 3A, or alternatively, for the same user that is predicted to be in different contexts when accessing the primary content 112 as depicted in FIG. 3B.
The process 500 can include the operation of determining that the computing device accessed a particular frame of the primary content (530). For example, the server system 120 determines that the computing device 130 accessed a particular frame from among the one or more designated frames such as the designated frame 112A. As depicted in FIG. 1B, the server system 120 can monitor the playback of the primary content 112 on the computing device 130 until the playback has reached a time point corresponding to a designated frame specified within the content association data 122. The server system 120 can monitor playback periodically, e.g., every five seconds, or in real-time.
The process 500 can include the operation of providing an instruction to display a communication that includes one or more secondary content items to the computing device (540). For example, in response to determining that the computing device 110 has accessed the designated frame 112A, the server system 120 provides the instruction 106 to display the communication 108. As depicted in FIG. 1A, the communication 108 includes the secondary content item 124A assigned to the designated frame 112A within the content association data 122.
FIG. 6 illustrates a schematic diagram of a computer system 600 that can be applied to any of the computer-implemented methods and other techniques described herein. The system 600 can be used to carry out the operations described in association with any of the computer-implemented methods described previously, according to some implementations. In some implementations, computing systems and devices and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly-embodied computer software or firmware, in computer hardware, including the structures disclosed in this specification (e.g., system 600) and their structural equivalents, or in combinations of one or more of them. The system 600 is intended to include various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers, including vehicles installed on base units or pod units of modular vehicles. The system 600 can also include mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other similar computing devices. Additionally, the system can include portable storage media, such as, Universal Serial Bus (USB) flash drives. For example, the USB flash drives may store operating systems and other applications. The USB flash drives can include input/output components, such as a wireless transmitter or USB connector that can be inserted into a USB port of another computing device.
The system 600 includes a processor 610, a memory 620, a storage device 630, and an input/output device 640. Each of the components 1010, 1020, 1030, and 640 are interconnected using a system bus 650. The processor 610 is capable of processing instructions for execution within the system 600. The processor can be designed using any of a number of architectures. For example, the processor 610 can be a CISC (Complex Instruction Set Computers) processor, a RISC (Reduced Instruction Set Computer) processor, or a MISC (Minimal Instruction Set Computer) processor.
In one implementation, the processor 610 is a single-threaded processor. In another implementation, the processor 610 is a multi-threaded processor. The processor 610 is capable of processing instructions stored in the memory 620 or on the storage device 630 to display graphical information for a user interface on the input/output device 640.
The memory 620 stores information within the system 600. In one implementation, the memory 620 is a computer-readable medium. In one implementation, the memory 620 is a volatile memory unit. In another implementation, the memory 620 is a non-volatile memory unit.
The storage device 630 is capable of providing mass storage for the system 600. In one implementation, the storage device 630 is a computer-readable medium. In various different implementations, the storage device 630 can be a floppy disk device, a hard disk device, an optical disk device, or a tape device.
The input/output device 640 provides input/output operations for the system 600. In one implementation, the input/output device 640 includes a keyboard and/or pointing device. In another implementation, the input/output device 640 includes a display unit for displaying graphical user interfaces.
The features described can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device, for execution by a programmable processor; and method steps can be performed by a programmable processor executing a program of instructions to perform functions of the described implementations by operating on input data and generating output. The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer.
The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet.
The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network, such as the described one. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the disclosure. Accordingly, other implementations are within the scope of the following claims.

Claims (19)

The invention claimed is:
1. A method, comprising:
obtaining, by a server system, data indicating that (i) a primary content is accessed on a computing device and (ii) activity data for a user that is associated with the computing device;
generating, by the server system, content association data for the primary content, the content association data specifying (i) a designated frame of the primary content, and (ii) a secondary content assigned to the designated frame;
identifying, by the server system, a plurality of additional computing devices that are associated with an account of the user during a time period in which the primary content is accessed on the computing device;
selecting, by the server system and based on the activity data for the user, an additional computing device from among the plurality of additional computing devices, the selected additional device representing a device that is most likely to be accessed by the user during the time period in which the primary content is accessed on the computing device;
determining, by the server system, that the computing device accessed the designated frame; and
in response to determining that the computing device accessed the designated frame, providing, by the server system and for output to the selected additional computing device, an instruction to display a communication that includes a reference to secondary content, wherein upon selection of the reference to the secondary content by the user, the instruction causes the selected additional computing device to display the secondary content assigned to the designated frame within the content association data.
2. The method of claim 1, further comprising:
determining, by the server system, a predicted context associated with a user of the computing device; and
wherein generating the content association data for the primary content comprises:
selecting a secondary content item that is determined to be associated with the predicted context associated with the user; and
assigning the secondary content item to the designated frame of the primary content.
3. The method of claim 1, further comprising:
obtaining data indicating a set of user attributes for a user of the computing device accessing the primary content being played on the computing device; and
wherein generating the content association data for the primary content comprises:
selecting a secondary content item that is determined to be associated with the set of user attributes; and
assigning the secondary content item to the designated frame of the primary content.
4. The method of claim 1, wherein the communication is provided for output to a second computing device that is within a threshold proximity to the computing device.
5. The method of claim 4, wherein:
the computing device is a stationary display device, and
the second computing device is a mobile device.
6. The method of claim 4, wherein the computing device runs a first operating system, and the second computing device runs a second operating system that is different from the first operating system.
7. The method of claim 1, wherein selecting the additional device from among the plurality of additional computing devices comprises:
determining, by the server system and for each computing device from among the plurality of additional computing devices, a respective likelihood that a particular computing device is used by a user of the computing device during a time period in which the primary content is accessed on a computing device; and
wherein the additional computing device is selected from among the plurality of computing devices based on the determined likelihoods.
8. The method of claim 1, wherein selecting the additional computing device from among the plurality of additional computing devices comprises:
determining a location of the user within a property during a time period in which the primary content is accessed on the computing device;
determining, for each additional computing device included in the plurality of additional computing devices, a location of the additional computing device within the property during the time period in which the primary content is accessed on the computing device; and
identifying, based on the location of the user within the property and the locations of the additional computing devices within the property, an additional computing device that is closest to the location of the user within the property during the time period in which the primary content is accessed on the computing device.
9. A system comprising:
one or more computers; and
one or more storage devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising:
obtaining, by a server system, data indicating that (i) a primary content is accessed on a computing device and (ii) activity data for a user that is associated with the computing device;
generating, by the server system, content association data for the primary content, the content association data specifying (i) a designated frame of the primary content, and (ii) a secondary content assigned to the designated frame;
identifying, by the server system, a plurality of additional computing devices that are associated with an account of the user during a time period in which the primary content is accessed on the computing device;
selecting, by the server system and based on the activity data for the user, an additional computing device from among the plurality of additional computing devices, the selected additional device representing a device that is most likely be accessed by the user during the time period in which the primary content is accessed on the computing device;
determining, by the server system, that the computing device accessed the designated frame; and
in response to determining that the computing device has accessed the designated frame, providing, by the server system and for output to the selected additional computing device, an instruction to display a communication that includes a reference to secondary content, wherein upon selection of the reference to the secondary content by the user, the instruction causes the selected additional computing device to display the secondary content assigned to the designated frame within the content association data.
10. The system of claim 9, wherein the operations further comprise:
determining, by the server system, a predicted context associated with a user of the computing device; and
wherein generating the content association data for the primary content comprises:
selecting a secondary content item that is determined to be associated with the predicted context associated with the user; and
assigning the secondary content item to the designated frame of the primary content.
11. The system of claim 9, wherein the operations further comprise:
obtaining data indicating a set of user attributes for a user of the computing device accessing the primary content being played on the computing device; and
wherein generating the content association data for the primary content comprises:
selecting a secondary content item that is determined to be associated with the set of user attributes; and
assigning the secondary content item to the designated frame of the primary content.
12. The system of claim 9, wherein the communication is provided for output to a second computing device that is within a threshold proximity to the computing device.
13. The system of claim 12, wherein:
the computing device is a stationary display device, and
the second computing device is a mobile device.
14. The system of claim 12, wherein the computing device runs a first operating system, and the second computing device runs a second operating system that is different from the first operating system.
15. A non-transitory computer-readable storage device encoded with computer program instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising:
obtaining, by a server system, data indicating that (i) a primary content is accessed on a computing device and (ii) activity data for a user that is associated with the computing device;
generating, by the server system, content association data for the primary content, the content association data specifying (i) a designated frame of the primary content, and (ii) a secondary content assigned to the designated frame;
identifying, by the server system, a plurality of additional computing devices that are associated with an account of the user during a time period in which the primary content is accessed on the computing device;
selecting, by the server system and based on the activity data for the user, an additional computing device from among the plurality of additional computing devices, the selected additional device representing a device that is most likely be accessed by the user during the time period in which the primary content is accessed on the computing device;
determining, by the server system, that the computing device accessed the designated frame; and
in response to determining that the computing device has accessed the designated frame, providing, by the server system and for output to the selected additional computing device, an instruction to display a communication that includes a reference to secondary content, wherein upon selection of the reference to the secondary content by the user, the instruction causes the selected additional computing device to display the secondary content assigned to the designated frame within the content association data.
16. The device of claim 15, wherein the operations further comprise:
determining, by the server system, a predicted context associated with a user of the computing device; and
wherein generating the content association data for the primary content comprises:
selecting a secondary content item that is determined to be associated with the predicted context associated with the user; and
assigning the secondary content item to the designated frame of the primary content.
17. The device of claim 15, wherein the operations further comprise:
obtaining data indicating a set of user attributes for a user of the computing device accessing the primary content being played on the computing device; and
wherein generating the content association data for the primary content comprises:
selecting a secondary content item that is determined to be associated with the set of user attributes; and
assigning the secondary content item to the designated frame of the primary content.
18. The device of claim 15, wherein the communication is provided for output to a second computing device that is within a threshold proximity to the computing device.
19. The device of claim 18, wherein:
the computing device is a stationary display device, and
the second computing device is a mobile device.
US15/703,428 2017-09-13 2017-09-13 Time-based content synchronization Active US10264297B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/703,428 US10264297B1 (en) 2017-09-13 2017-09-13 Time-based content synchronization
US16/382,563 US10645431B2 (en) 2017-09-13 2019-04-12 Time-based content synchronization
US16/865,468 US11109078B2 (en) 2017-09-13 2020-05-04 Time-based content synchronization
US17/460,800 US11711556B2 (en) 2017-09-13 2021-08-30 Time-based content synchronization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/703,428 US10264297B1 (en) 2017-09-13 2017-09-13 Time-based content synchronization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/382,563 Continuation US10645431B2 (en) 2017-09-13 2019-04-12 Time-based content synchronization

Publications (1)

Publication Number Publication Date
US10264297B1 true US10264297B1 (en) 2019-04-16

Family

ID=66098642

Family Applications (4)

Application Number Title Priority Date Filing Date
US15/703,428 Active US10264297B1 (en) 2017-09-13 2017-09-13 Time-based content synchronization
US16/382,563 Active US10645431B2 (en) 2017-09-13 2019-04-12 Time-based content synchronization
US16/865,468 Active US11109078B2 (en) 2017-09-13 2020-05-04 Time-based content synchronization
US17/460,800 Active US11711556B2 (en) 2017-09-13 2021-08-30 Time-based content synchronization

Family Applications After (3)

Application Number Title Priority Date Filing Date
US16/382,563 Active US10645431B2 (en) 2017-09-13 2019-04-12 Time-based content synchronization
US16/865,468 Active US11109078B2 (en) 2017-09-13 2020-05-04 Time-based content synchronization
US17/460,800 Active US11711556B2 (en) 2017-09-13 2021-08-30 Time-based content synchronization

Country Status (1)

Country Link
US (4) US10264297B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180122130A1 (en) * 2016-10-28 2018-05-03 Samsung Electronics Co., Ltd. Image display apparatus, mobile device, and methods of operating the same
US20190056813A1 (en) * 2017-08-21 2019-02-21 Westunitis Co., Ltd. Display linking system
US20190082213A1 (en) * 2017-09-09 2019-03-14 Telegenic, Inc. Overlaying aggregated media content with additional services based on a context
US20190306543A1 (en) * 2017-09-13 2019-10-03 Perfect Sense, Inc. Time-based content synchronization
CN112416278A (en) * 2020-11-10 2021-02-26 北京五八信息技术有限公司 Screen sharing method and device, electronic equipment and storage medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10911806B1 (en) * 2018-10-02 2021-02-02 Amazon Technologies, Inc. Techniques for providing digital content recommendations
US11109087B2 (en) * 2019-05-09 2021-08-31 Rovi Guides, Inc. Method and apparatus for redirecting portions of content to alternate communication channels

Citations (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020072982A1 (en) * 2000-12-12 2002-06-13 Shazam Entertainment Ltd. Method and system for interacting with a user in an experiential environment
US20020083060A1 (en) * 2000-07-31 2002-06-27 Wang Avery Li-Chun System and methods for recognizing sound and music signals in high noise and distortion
US20030117427A1 (en) * 2001-07-13 2003-06-26 Universal Electronics Inc. System and method for interacting with a program guide displayed on a portable electronic device
US20040199387A1 (en) * 2000-07-31 2004-10-07 Wang Avery Li-Chun Method and system for purchasing pre-recorded music
US20050028195A1 (en) * 1999-03-31 2005-02-03 Microsoft Corporation System and method for synchronizing streaming content with enhancing content using pre-announced triggers
US20050091274A1 (en) * 2003-10-28 2005-04-28 International Business Machines Corporation System and method for transcribing audio files of various languages
US6889325B1 (en) * 1999-04-28 2005-05-03 Unicate Bv Transaction method and system for data networks, like internet
US20050108751A1 (en) * 2003-11-17 2005-05-19 Sony Corporation TV remote control with display
US20050192863A1 (en) * 2004-02-26 2005-09-01 Krishna Mohan Web site vistor incentive program in conjunction with promotion of anonymously identifying a user and/or a group
US20050235321A1 (en) * 2004-04-15 2005-10-20 Comcast Cable Holdings, Llc Method and system for providing an electronic programming guide
US20060224452A1 (en) * 2005-03-29 2006-10-05 Ng Gene F System and method for incentive-based advertising and marketing
US7120925B2 (en) * 2001-12-17 2006-10-10 Sedna Patent Services, Llc System and method for displaying editorial content through television navigation controls and electronic program guides
US20060256133A1 (en) * 2005-11-05 2006-11-16 Outland Research Gaze-responsive video advertisment display
US20070124756A1 (en) * 2005-11-29 2007-05-31 Google Inc. Detecting Repeating Content in Broadcast Media
US20070139386A1 (en) * 2005-12-16 2007-06-21 Xerox Corporation Touch screen user interface for digital reprographic device with pop-up menu display
US20070165964A1 (en) * 2005-10-31 2007-07-19 Carol Wolf De-emphasis of user-selected portions in a video display
US20070179850A1 (en) * 2005-05-24 2007-08-02 American Express Travel Related Services Company, Inc. Method, system, and computer program product for rewarding customer loyalty
US20070192784A1 (en) * 2004-03-01 2007-08-16 Signature Systems Llc Broadcast television reward program and method of use for issuing, aggregating and redeeming sponsor's reward points
US20070214049A1 (en) * 2004-03-01 2007-09-13 Richard Postrel Broadcast television reward program and method of use for issuing, aggregating and redeeming sponsor's reward points
US7373650B1 (en) * 2000-02-01 2008-05-13 Scientific-Atlanta, Inc. Apparatuses and methods to enable the simultaneous viewing of multiple television channels and electronic program guide content
US20080165141A1 (en) * 2007-01-05 2008-07-10 Apple Inc. Gestures for controlling, manipulating, and editing of media files using touch sensitive devices
US20090198701A1 (en) * 2008-02-05 2009-08-06 Welela Haileselassie Dynamic webcast content viewer method and system
US20090313670A1 (en) * 2006-05-24 2009-12-17 Hiroyuki Takao Television receiver program, and recording medium
US20100034466A1 (en) * 2008-08-11 2010-02-11 Google Inc. Object Identification in Images
US20100114713A1 (en) * 2008-11-04 2010-05-06 American Express Travel Related Services Company, Inc. Customized financial transaction pricing
US7769756B2 (en) * 2004-06-07 2010-08-03 Sling Media, Inc. Selection and presentation of context-relevant supplemental content and advertising
US20110037851A1 (en) * 2009-08-14 2011-02-17 Lg Electronics Inc. Remote control device and remote control method using the same
US20110085526A1 (en) * 2009-10-14 2011-04-14 Verizon Patent And Licensing, Inc. Systems and methods for wireless local area network based control of a set-top box device
US20110202960A1 (en) * 2005-01-27 2011-08-18 Arthur Vaysman User-interactive displays including theme-based dynamic video mosaic elements
US20110273455A1 (en) * 2010-05-04 2011-11-10 Shazam Entertainment Ltd. Systems and Methods of Rendering a Textual Animation
US20110283189A1 (en) * 2010-05-12 2011-11-17 Rovi Technologies Corporation Systems and methods for adjusting media guide interaction modes
US20120011545A1 (en) * 2009-04-02 2012-01-12 Nederlandse Organisatie Voor Toegepast- Natuurwetenschappelijk Onderzoek Tno Playing Out Interludes Based on Predicted Duration of Channel-Switching Delay or of Invoked Pause
US20120076310A1 (en) * 2005-02-08 2012-03-29 Shazam Entertainment Limited Automatic Identification of Repeated Material In Audio Signals
US20120151525A1 (en) * 2010-12-10 2012-06-14 Rogers Communications Inc. Method and device for controlling a video receiver
US20120191231A1 (en) * 2010-05-04 2012-07-26 Shazam Entertainment Ltd. Methods and Systems for Identifying Content in Data Stream by a Client Device
US8290423B2 (en) * 2004-02-19 2012-10-16 Shazam Investments Limited Method and apparatus for identification of broadcast source
US20120278825A1 (en) * 2011-04-30 2012-11-01 Samsung Electronics Co., Ltd. Crowd sourcing
US20120284753A1 (en) * 2011-05-03 2012-11-08 Verizon Patent And Licensing, Inc. Program Guide Interface Systems and Methods
US8312376B2 (en) * 2008-04-03 2012-11-13 Microsoft Corporation Bookmark interpretation service
US20120295560A1 (en) * 2011-05-18 2012-11-22 Sparcq, Inc. Sonic signaling communication for user devices
US20120297400A1 (en) * 2011-02-03 2012-11-22 Sony Corporation Method and system for invoking an application in response to a trigger event
US20120306929A1 (en) * 2011-06-03 2012-12-06 Lg Electronics Inc. Mobile terminal and control method thereof
US20120311444A1 (en) * 2011-06-05 2012-12-06 Apple Inc. Portable multifunction device, method, and graphical user interface for controlling media playback using gestures
US20120317240A1 (en) * 2011-06-10 2012-12-13 Shazam Entertainment Ltd. Methods and Systems for Identifying Content in a Data Stream
US20120316969A1 (en) * 2011-06-13 2012-12-13 Metcalf Iii Otis Rudy System and method for advertisement ranking and display
US20130014155A1 (en) * 2011-06-14 2013-01-10 Douglas Clarke System and method for presenting content with time based metadata
US20130031579A1 (en) * 2011-07-28 2013-01-31 United Video Properties, Inc. Systems and methods for selectively modifying the display of advertisements and providing supplementary media content
US20130029762A1 (en) * 2011-07-28 2013-01-31 United Video Properties, Inc. Systems and methods for selectively modifying the display of advertisements based on an interactive gaming environment
US20130042262A1 (en) * 2010-04-14 2013-02-14 Sven Riethmueller Platform-independent interactivity with media broadcasts
US20130044051A1 (en) * 2011-08-19 2013-02-21 Youngho JEONG Image display device and method for operating the same
US20130067512A1 (en) * 2008-01-10 2013-03-14 Touchtunes Music Corporation Systems and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server
US20130073366A1 (en) * 2011-09-15 2013-03-21 Stephan HEATH System and method for tracking, utilizing predicting, and implementing online consumer browsing behavior, buying patterns, social networking communications, advertisements and communications, for online coupons, products, goods & services, auctions, and service providers using geospatial mapping technology, and social networking
US20130073377A1 (en) * 2011-09-15 2013-03-21 Stephan HEATH Mobile device system and method providing 3d geo-target location-based mobile commerce searching/purchases, discounts/coupons products, goods, and services, and social networking
US20130080262A1 (en) * 2010-02-26 2013-03-28 Research In Motion Limited Scheduling and delivering ad meetings
US20130080242A1 (en) * 2009-08-20 2013-03-28 Laurent Daniel Alhadeff Networked Profiling And Multimedia Content Targeting System
US20130085828A1 (en) * 2011-10-04 2013-04-04 Andrew Michael Schuster System and methods for content distribution with integrated game mechanics
US20130111519A1 (en) * 2011-10-27 2013-05-02 James C. Rice Exchange Value Engine
US20130124073A1 (en) * 2011-11-11 2013-05-16 Verizon Patent And Licensing Inc. Live traffic congestion detection
US8566475B2 (en) * 2003-12-19 2013-10-22 Koninklijke Philips N.V. Broadcast driven virtual community of P2P network
US20140137139A1 (en) * 2012-11-14 2014-05-15 Bank Of America Automatic Deal Or Promotion Offering Based on Audio Cues
US20140278845A1 (en) * 2013-03-15 2014-09-18 Shazam Investments Limited Methods and Systems for Identifying Target Media Content and Determining Supplemental Information about the Target Media Content
US20150095946A1 (en) * 2013-09-27 2015-04-02 Samsung Electronics Co., Ltd. Display device and server device for providing service to event winner, and methods thereof
US20170150227A1 (en) * 2015-11-19 2017-05-25 Lg Electronics Inc. Mobile terminal and method for controlling the same
US20170201801A1 (en) * 2014-05-21 2017-07-13 Zte Corporation Multimode Set Top Box and Mode Management Method therefor, and Computer Storage Medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050209917A1 (en) * 2004-03-17 2005-09-22 Brian Anderson Employee incentive program
US20060195359A1 (en) * 2005-02-28 2006-08-31 Robinson Nancy J Combined rewards system and process
EP2876890A1 (en) * 2013-11-21 2015-05-27 Thomson Licensing Method and apparatus for frame accurate synchronization of video streams
US10264297B1 (en) * 2017-09-13 2019-04-16 Perfect Sense, Inc. Time-based content synchronization

Patent Citations (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050028195A1 (en) * 1999-03-31 2005-02-03 Microsoft Corporation System and method for synchronizing streaming content with enhancing content using pre-announced triggers
US6889325B1 (en) * 1999-04-28 2005-05-03 Unicate Bv Transaction method and system for data networks, like internet
US7373650B1 (en) * 2000-02-01 2008-05-13 Scientific-Atlanta, Inc. Apparatuses and methods to enable the simultaneous viewing of multiple television channels and electronic program guide content
US20020083060A1 (en) * 2000-07-31 2002-06-27 Wang Avery Li-Chun System and methods for recognizing sound and music signals in high noise and distortion
US20040199387A1 (en) * 2000-07-31 2004-10-07 Wang Avery Li-Chun Method and system for purchasing pre-recorded music
US20020072982A1 (en) * 2000-12-12 2002-06-13 Shazam Entertainment Ltd. Method and system for interacting with a user in an experiential environment
US20030117427A1 (en) * 2001-07-13 2003-06-26 Universal Electronics Inc. System and method for interacting with a program guide displayed on a portable electronic device
US7120925B2 (en) * 2001-12-17 2006-10-10 Sedna Patent Services, Llc System and method for displaying editorial content through television navigation controls and electronic program guides
US20050091274A1 (en) * 2003-10-28 2005-04-28 International Business Machines Corporation System and method for transcribing audio files of various languages
US20050108751A1 (en) * 2003-11-17 2005-05-19 Sony Corporation TV remote control with display
US8566475B2 (en) * 2003-12-19 2013-10-22 Koninklijke Philips N.V. Broadcast driven virtual community of P2P network
US8290423B2 (en) * 2004-02-19 2012-10-16 Shazam Investments Limited Method and apparatus for identification of broadcast source
US20050192863A1 (en) * 2004-02-26 2005-09-01 Krishna Mohan Web site vistor incentive program in conjunction with promotion of anonymously identifying a user and/or a group
US20070192784A1 (en) * 2004-03-01 2007-08-16 Signature Systems Llc Broadcast television reward program and method of use for issuing, aggregating and redeeming sponsor's reward points
US20070214049A1 (en) * 2004-03-01 2007-09-13 Richard Postrel Broadcast television reward program and method of use for issuing, aggregating and redeeming sponsor's reward points
US20050235321A1 (en) * 2004-04-15 2005-10-20 Comcast Cable Holdings, Llc Method and system for providing an electronic programming guide
US7769756B2 (en) * 2004-06-07 2010-08-03 Sling Media, Inc. Selection and presentation of context-relevant supplemental content and advertising
US20110202960A1 (en) * 2005-01-27 2011-08-18 Arthur Vaysman User-interactive displays including theme-based dynamic video mosaic elements
US20120076310A1 (en) * 2005-02-08 2012-03-29 Shazam Entertainment Limited Automatic Identification of Repeated Material In Audio Signals
US20060224452A1 (en) * 2005-03-29 2006-10-05 Ng Gene F System and method for incentive-based advertising and marketing
US20070179850A1 (en) * 2005-05-24 2007-08-02 American Express Travel Related Services Company, Inc. Method, system, and computer program product for rewarding customer loyalty
US20070165964A1 (en) * 2005-10-31 2007-07-19 Carol Wolf De-emphasis of user-selected portions in a video display
US20060256133A1 (en) * 2005-11-05 2006-11-16 Outland Research Gaze-responsive video advertisment display
US20070124756A1 (en) * 2005-11-29 2007-05-31 Google Inc. Detecting Repeating Content in Broadcast Media
US20070139386A1 (en) * 2005-12-16 2007-06-21 Xerox Corporation Touch screen user interface for digital reprographic device with pop-up menu display
US20090313670A1 (en) * 2006-05-24 2009-12-17 Hiroyuki Takao Television receiver program, and recording medium
US20080165141A1 (en) * 2007-01-05 2008-07-10 Apple Inc. Gestures for controlling, manipulating, and editing of media files using touch sensitive devices
US20130067512A1 (en) * 2008-01-10 2013-03-14 Touchtunes Music Corporation Systems and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server
US20090198701A1 (en) * 2008-02-05 2009-08-06 Welela Haileselassie Dynamic webcast content viewer method and system
US8312376B2 (en) * 2008-04-03 2012-11-13 Microsoft Corporation Bookmark interpretation service
US20100034466A1 (en) * 2008-08-11 2010-02-11 Google Inc. Object Identification in Images
US20100114713A1 (en) * 2008-11-04 2010-05-06 American Express Travel Related Services Company, Inc. Customized financial transaction pricing
US20120011545A1 (en) * 2009-04-02 2012-01-12 Nederlandse Organisatie Voor Toegepast- Natuurwetenschappelijk Onderzoek Tno Playing Out Interludes Based on Predicted Duration of Channel-Switching Delay or of Invoked Pause
US20110037851A1 (en) * 2009-08-14 2011-02-17 Lg Electronics Inc. Remote control device and remote control method using the same
US20130080242A1 (en) * 2009-08-20 2013-03-28 Laurent Daniel Alhadeff Networked Profiling And Multimedia Content Targeting System
US20110085526A1 (en) * 2009-10-14 2011-04-14 Verizon Patent And Licensing, Inc. Systems and methods for wireless local area network based control of a set-top box device
US20130080262A1 (en) * 2010-02-26 2013-03-28 Research In Motion Limited Scheduling and delivering ad meetings
US20130042262A1 (en) * 2010-04-14 2013-02-14 Sven Riethmueller Platform-independent interactivity with media broadcasts
US20120191231A1 (en) * 2010-05-04 2012-07-26 Shazam Entertainment Ltd. Methods and Systems for Identifying Content in Data Stream by a Client Device
US20110273455A1 (en) * 2010-05-04 2011-11-10 Shazam Entertainment Ltd. Systems and Methods of Rendering a Textual Animation
US20110283189A1 (en) * 2010-05-12 2011-11-17 Rovi Technologies Corporation Systems and methods for adjusting media guide interaction modes
US20120151525A1 (en) * 2010-12-10 2012-06-14 Rogers Communications Inc. Method and device for controlling a video receiver
US20120297400A1 (en) * 2011-02-03 2012-11-22 Sony Corporation Method and system for invoking an application in response to a trigger event
US20120278825A1 (en) * 2011-04-30 2012-11-01 Samsung Electronics Co., Ltd. Crowd sourcing
US20120284753A1 (en) * 2011-05-03 2012-11-08 Verizon Patent And Licensing, Inc. Program Guide Interface Systems and Methods
US20120295560A1 (en) * 2011-05-18 2012-11-22 Sparcq, Inc. Sonic signaling communication for user devices
US20120306929A1 (en) * 2011-06-03 2012-12-06 Lg Electronics Inc. Mobile terminal and control method thereof
US20120311444A1 (en) * 2011-06-05 2012-12-06 Apple Inc. Portable multifunction device, method, and graphical user interface for controlling media playback using gestures
US20120317240A1 (en) * 2011-06-10 2012-12-13 Shazam Entertainment Ltd. Methods and Systems for Identifying Content in a Data Stream
US20120316969A1 (en) * 2011-06-13 2012-12-13 Metcalf Iii Otis Rudy System and method for advertisement ranking and display
US20130014155A1 (en) * 2011-06-14 2013-01-10 Douglas Clarke System and method for presenting content with time based metadata
US20130031579A1 (en) * 2011-07-28 2013-01-31 United Video Properties, Inc. Systems and methods for selectively modifying the display of advertisements and providing supplementary media content
US20130029762A1 (en) * 2011-07-28 2013-01-31 United Video Properties, Inc. Systems and methods for selectively modifying the display of advertisements based on an interactive gaming environment
US20130044051A1 (en) * 2011-08-19 2013-02-21 Youngho JEONG Image display device and method for operating the same
US20130073366A1 (en) * 2011-09-15 2013-03-21 Stephan HEATH System and method for tracking, utilizing predicting, and implementing online consumer browsing behavior, buying patterns, social networking communications, advertisements and communications, for online coupons, products, goods & services, auctions, and service providers using geospatial mapping technology, and social networking
US20130073377A1 (en) * 2011-09-15 2013-03-21 Stephan HEATH Mobile device system and method providing 3d geo-target location-based mobile commerce searching/purchases, discounts/coupons products, goods, and services, and social networking
US20130085828A1 (en) * 2011-10-04 2013-04-04 Andrew Michael Schuster System and methods for content distribution with integrated game mechanics
US20130111519A1 (en) * 2011-10-27 2013-05-02 James C. Rice Exchange Value Engine
US20130124073A1 (en) * 2011-11-11 2013-05-16 Verizon Patent And Licensing Inc. Live traffic congestion detection
US20140137139A1 (en) * 2012-11-14 2014-05-15 Bank Of America Automatic Deal Or Promotion Offering Based on Audio Cues
US20140278845A1 (en) * 2013-03-15 2014-09-18 Shazam Investments Limited Methods and Systems for Identifying Target Media Content and Determining Supplemental Information about the Target Media Content
US20150095946A1 (en) * 2013-09-27 2015-04-02 Samsung Electronics Co., Ltd. Display device and server device for providing service to event winner, and methods thereof
US20170201801A1 (en) * 2014-05-21 2017-07-13 Zte Corporation Multimode Set Top Box and Mode Management Method therefor, and Computer Storage Medium
US20170150227A1 (en) * 2015-11-19 2017-05-25 Lg Electronics Inc. Mobile terminal and method for controlling the same

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180122130A1 (en) * 2016-10-28 2018-05-03 Samsung Electronics Co., Ltd. Image display apparatus, mobile device, and methods of operating the same
US10810789B2 (en) * 2016-10-28 2020-10-20 Samsung Electronics Co., Ltd. Image display apparatus, mobile device, and methods of operating the same
US20190056813A1 (en) * 2017-08-21 2019-02-21 Westunitis Co., Ltd. Display linking system
US20190082213A1 (en) * 2017-09-09 2019-03-14 Telegenic, Inc. Overlaying aggregated media content with additional services based on a context
US10764639B2 (en) * 2017-09-09 2020-09-01 Telegenic, Inc. Overlaying aggregated media content with additional services based on a context
US20190306543A1 (en) * 2017-09-13 2019-10-03 Perfect Sense, Inc. Time-based content synchronization
US10645431B2 (en) * 2017-09-13 2020-05-05 Perfect Sense, Inc. Time-based content synchronization
US11109078B2 (en) * 2017-09-13 2021-08-31 Perfect Sense, Inc. Time-based content synchronization
US11711556B2 (en) * 2017-09-13 2023-07-25 Perfect Sense, Inc. Time-based content synchronization
CN112416278A (en) * 2020-11-10 2021-02-26 北京五八信息技术有限公司 Screen sharing method and device, electronic equipment and storage medium
CN112416278B (en) * 2020-11-10 2021-12-03 北京五八信息技术有限公司 Screen sharing method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
US20200267421A1 (en) 2020-08-20
US10645431B2 (en) 2020-05-05
US20190306543A1 (en) 2019-10-03
US11711556B2 (en) 2023-07-25
US20220191559A1 (en) 2022-06-16
US11109078B2 (en) 2021-08-31

Similar Documents

Publication Publication Date Title
US11711556B2 (en) Time-based content synchronization
US11934372B2 (en) Systems and methods for updating a knowledge graph through user input
US20220337915A1 (en) Methods, systems, and media for presenting suggestions of media content
US10075769B2 (en) Methods and systems for media consumption
US20230267143A1 (en) Searching and displaying multimedia search results
KR101629588B1 (en) Real-time mapping and navigation of multiple media types through a metadata-based infrastructure
US9323755B2 (en) Secondary content
US10545954B2 (en) Determining search queries for obtaining information during a user experience of an event
US10057636B1 (en) Automatic video service actions based on matching a video content item to a content identifier
US11412314B2 (en) System for summary segment association and dynamic selection for viewing with a content item of interest
CN107515870B (en) Searching method and device and searching device
US20140150017A1 (en) Implicit Advertising
US9338508B2 (en) Preserving a consumption context for a user session
US20120136934A1 (en) Device, server, and method for sharing deep links over social network
US20170048574A1 (en) Simultaneous presentation of content on a second device
US10430759B2 (en) Systems and methods for discovering a performance artist
US20150106849A1 (en) System and Method for Automatic Video Program Channel Generation

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 4