In one embodiment, a method includes obtaining a link to a video program; obtaining metadata that relates to the program and that defines, for a specified time point in the program, annotations to be invoked at the specified time point; wherein the annotations comprise: a graphic image; one or more filters, each of the filters comprising a key and one or more matching values; and optionally a reference to a video segment, an electronic document, program code statements, or a programmatic call; during playing the video, detecting that the video program is playing at the specified time point; in response to the detecting: for each particular annotation for the specified time point, retrieving a current value for the key, and causing to display the graphic image associated with that particular annotation only when the current value of the key matches one of the matching values of one of the filters.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A non-transitory computer-readable data storage medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform: at a computer, obtaining a link to a stored video program and obtaining metadata that relates to the video program and that defines, for a specified time point in the video program, one or more annotations to be invoked at the specified time point; wherein each of the annotations comprises: a graphic image; one or more filters, each of the filters comprising a key and one or more matching values; and optionally a reference to any of: a video program segment, an online electronic document, a set of program code statements, or a programmatic call; causing the computer to play the video program from the link; during playing the video program on a computer, detecting that the video program is playing at the specified time point; in response to the detecting: for each particular annotation among the annotations for the specified time point, obtaining a current value for the key, and causing the computer to display the graphic image associated with that particular annotation only when the current value of the key matches one of the matching values of one of the filters of that particular annotation.
A system displays interactive annotations on a video. It retrieves a video and associated metadata. The metadata specifies annotations for specific times in the video. Each annotation includes a graphic image, filters (with keys and matching values), and optionally a link to a video segment, online document, code, or a function call. When the video plays and reaches a specified time, the system checks the filters for each annotation at that time. It retrieves the current value of a key for each filter. The system displays the graphic image of an annotation only if the key's current value matches a filter's allowed values.
2. The medium of claim 1 , further comprising instructions which when executed cause the one or more processors to perform: retrieving, from a social graph, data defining one or more friends and one or more attributes of the friends; automatically creating and storing updated metadata that defines other annotations associated with the friends, other filters for the other annotations, and other matching values for the other filters based on the attributes of the friends.
The system from the previous description can automatically generate annotations based on social media data. It retrieves friend data (friends and their attributes) from a social graph. Based on this data, it creates new annotations, filters, and matching values related to those friends. These new annotations are associated with the video, allowing the video to display friend-related annotations based on the friends' attributes.
3. The medium of claim 1 , further comprising instructions which when executed cause the one or more processors to perform: in response to user input selecting the particular annotation that has been displayed, and when the particular annotation comprises a reference to a video program segment, initiating playing the video program segment.
The system from the first description allows user interaction with the displayed annotations. If a user clicks on an annotation and that annotation links to another video segment, the system starts playing that linked video segment. This provides a way to jump to related content within the video or to a completely separate video.
4. The medium of claim 1 , further comprising instructions which when executed cause the one or more processors to perform: in response to user input selecting the particular annotation that has been displayed, and when the particular annotation comprises a reference to an online electronic document, initiating retrieving and rendering the online electronic document.
The system from the first description allows user interaction with the displayed annotations. If a user clicks on an annotation, and the annotation contains a link to an online document, the system retrieves and displays that document. This provides a way to show supplemental information related to the video content.
5. The medium of claim 1 , further comprising instructions which when executed cause the one or more processors to perform: in response to user input selecting the particular annotation that has been displayed, and when the particular annotation comprises a reference to a programmatic call, issuing the programmatic call.
The system from the first description allows user interaction with the displayed annotations. If a user clicks on an annotation, and the annotation contains a programmatic call, the system executes that call. This call can trigger various actions, such as updating data, launching other applications, or interacting with external services.
6. The computer-readable data storage medium of claim 1 , further comprising instructions which when executed cause the computer, in response to the detecting, to display one or more graphic images associated with the one or more annotations for the specified time point, obtain input selecting one of the graphic images, obtain a copy of the online electronic document that is associated with the selected one of the graphic images, display the video program in a reduced size video window logically layered above a browser window, and to display the copy of the online electronic document in the browser window concurrently.
The system from the first description shows graphic images for annotations at a specific time. When a user clicks on a displayed image, the system retrieves the online document linked to that image. The video is then shown in a smaller window above a browser window, with the linked document displayed in the browser window simultaneously.
7. The computer-readable data storage medium of claim 1 , wherein the video program segment is in the video program.
In the system described previously, the linked video segment is a part of the main video itself. The annotation allows jumping to a specific section within the same video.
8. The computer-readable data storage medium of claim 1 , wherein the reference to the video program segment is a particular time point in the video program.
In the system described previously, the reference to the video program segment is a specific timestamp within the video. The annotation allows jumping to a specific point in the video timeline.
9. The computer-readable data storage medium of claim 1 , wherein the video program segment is a second video program that is obtainable over a network.
In the system described previously, the linked video segment is a completely separate video file that can be accessed over a network. The annotation allows linking to external video content.
10. The computer-readable data storage medium of claim 1 , further comprising instructions which when executed cause displaying the one or more graphic images associated with the one or more annotations for the specified time point continuously after the time point is reached.
In the system from the first description, the graphic images associated with the annotations at a specific time point remain visible after that time point is reached. The annotations are displayed continuously rather than only at the specified time.
11. The computer-readable data storage medium of claim 1 , further comprising instructions which when executed cause displaying the one or more graphic images in a border rectangle that is adjacent to a video rectangle, wherein both the border rectangle and video rectangle are within a video window of a player window, and wherein the video program plays within the video rectangle.
In the system from the first description, the graphic images for the annotations are displayed within a rectangle next to the video playback area. Both the video and the annotation rectangle are within the same player window. This provides a dedicated space for annotations next to the video.
12. The computer-readable data storage medium of claim 1 , further comprising instructions which when executed cause obtaining the video program from any of local storage on the computer, or a first networked server computer that is separate from the computer, and obtaining the metadata from a different second networked server computer.
The system from the first description retrieves the video and metadata from different sources. The video can be stored locally on the computer or on a remote server. The metadata comes from a separate server. This enables flexibility in managing video and annotation data.
13. A method comprising: at a computer, obtaining a link to a stored video program and obtaining metadata that relates to the video program and that defines, for a specified time point in the video program, one or more annotations to be invoked at the specified time point; wherein each of the annotations comprises: a graphic image; one or more filters, each of the filters comprising a key and one or more matching values; and optionally a reference to any of: a video program segment, an online electronic document, a set of program code statements, or a programmatic call; causing the computer to play the video program from the link; during playing the video program on a computer, detecting that the video program is playing at the specified time point; in response to the detecting: for each particular annotation among the annotations for the specified time point, obtaining a current value for the key, and causing the computer to display the graphic image associated with that particular annotation only when the current value of the key matches one of the matching values of one of the filters of that particular annotation.
A system displays interactive annotations on a video. It retrieves a video and associated metadata. The metadata specifies annotations for specific times in the video. Each annotation includes a graphic image, filters (with keys and matching values), and optionally a link to a video segment, online document, code, or a function call. When the video plays and reaches a specified time, the system checks the filters for each annotation at that time. It retrieves the current value of a key for each filter. The system displays the graphic image of an annotation only if the key's current value matches a filter's allowed values.
14. The method of claim 13 , further comprising: retrieving, from a social graph, data defining one or more friends and one or more attributes of the friends; automatically creating and storing updated metadata that defines other annotations associated with the friends, other filters for the other annotations, and other matching values for the other filters based on the attributes of the friends.
The system from the previous description can automatically generate annotations based on social media data. It retrieves friend data (friends and their attributes) from a social graph. Based on this data, it creates new annotations, filters, and matching values related to those friends. These new annotations are associated with the video, allowing the video to display friend-related annotations based on the friends' attributes.
15. The method of claim 13 , further comprising: in response to user input selecting the particular annotation that has been displayed, and when the particular annotation comprises a reference to a video program segment, initiating playing the video program segment.
The system from the thirteenth description allows user interaction with the displayed annotations. If a user clicks on an annotation and that annotation links to another video segment, the system starts playing that linked video segment. This provides a way to jump to related content within the video or to a completely separate video.
16. The method of claim 13 , further comprising: in response to user input selecting the particular annotation that has been displayed, and when the particular annotation comprises a reference to an online electronic document, initiating retrieving and rendering the online electronic document.
The system from the thirteenth description allows user interaction with the displayed annotations. If a user clicks on an annotation, and the annotation contains a link to an online document, the system retrieves and displays that document. This provides a way to show supplemental information related to the video content.
17. The method of claim 13 , further comprising: in response to user input selecting the particular annotation that has been displayed, and when the particular annotation comprises a reference to a programmatic call, issuing the programmatic call.
The system from the thirteenth description allows user interaction with the displayed annotations. If a user clicks on an annotation, and the annotation contains a programmatic call, the system executes that call. This call can trigger various actions, such as updating data, launching other applications, or interacting with external services.
18. The method of claim 13 , further comprising, in response to the detecting, displaying one or more graphic images associated with the one or more annotations for the specified time point, obtain input selecting one of the graphic images, obtain a copy of the online electronic document that is associated with the selected one of the graphic images, display the video program in a reduced size video window logically layered above a browser window, and to display the copy of the online electronic document in the browser window concurrently.
The system from the thirteenth description shows graphic images for annotations at a specific time. When a user clicks on a displayed image, the system retrieves the online document linked to that image. The video is then shown in a smaller window above a browser window, with the linked document displayed in the browser window simultaneously.
19. The method of claim 13 , wherein the video program segment is in the video program.
In the system described previously, the linked video segment is a part of the main video itself. The annotation allows jumping to a specific section within the same video.
20. The method of claim 13 , wherein the reference to the video program segment is a particular time point in the video program.
In the system described previously, the reference to the video program segment is a specific timestamp within the video. The annotation allows jumping to a specific point in the video timeline.
21. The method of claim 13 , wherein the video program segment is a second video program that is obtainable over a network.
In the system described previously, the linked video segment is a completely separate video file that can be accessed over a network. The annotation allows linking to external video content.
22. The method of claim 13 , further comprising instructions which when executed cause displaying the one or more graphic images associated with the one or more annotations for the specified time point continuously after the time point is reached.
The system from the thirteenth description, the graphic images associated with the annotations at a specific time point remain visible after that time point is reached. The annotations are displayed continuously rather than only at the specified time.
23. The method of claim 13 , wherein obtaining the current value of the key comprises issuing a Web Services request and obtaining the current value of the key from a response message that is received in response to the Web Services request.
The system from the thirteenth description retrieves the current value of the key by sending a web service request and using the value directly from the response. This allows the annotations to dynamically adapt based on real-time data from external sources.
24. The method of claim 13 , wherein obtaining the current value of the key comprises issuing a Web Services request and determining the current value of the key based on one or more values in a response message that is received in response to the Web Services request.
The system from the thirteenth description retrieves the current value of the key by sending a web service request and processing one or more values in the response message. The key's value is determined based on the response data, enabling dynamic adaptation based on external service results.
25. The medium of claim 1 , further comprising instructions which when executed cause obtaining the current value of the key by issuing a Web Services request and obtaining the current value of the key from a response message that is received in response to the Web Services request.
The system from the first description retrieves the current value of the key by sending a web service request and using the value directly from the response. This allows the annotations to dynamically adapt based on real-time data from external sources.
26. The medium of claim 1 , further comprising instructions which when executed cause obtaining the current value of the key by issuing a Web Services request and determining the current value of the key based on one or more values in a response message that is received in response to the Web Services request.
The system from the first description retrieves the current value of the key by sending a web service request and processing one or more values in the response message. The key's value is determined based on the response data, enabling dynamic adaptation based on external service results.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
December 22, 2011
September 3, 2013
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.