The disclosed subject matter relates to methods, systems, and media for presenting annotations across multiple videos.
Generally speaking, a user of a video sharing services or the like may be interested in promoting a brand associated with the user and/or promoting one or more videos associated with the user's account. For example, when a user adds a new video, the user may wish to promote the new video by directing viewers of older videos to the new video. Techniques for directing viewers to a new video often require the user to access each video in a video editor or the like, and manually add in a reference to the new video, such as a link or text promoting the new video.
Accordingly, it is desirable to provide new methods, systems, and media for presenting annotations across multiple videos.
In accordance with some implementations of the disclosed subject matter, methods, systems, and media for presenting annotations across multiple videos are provided.
In accordance with some implementations of the disclosed subject matter, methods for presenting annotations across multiple videos are provided, the methods comprising: receiving a selection of an annotation from a user; identifying, by a hardware processor, a plurality of videos associated with an account of the user to be associated with the annotation; and presenting the annotation upon rendering one of the plurality of videos.
In accordance with some implementations of the disclosed subject matter, systems for presenting annotations across multiple videos are provided, the systems comprising: a hardware processor configured to: receive a selection of an annotation from a user; identify a plurality of videos associated with an account of the user account to be associated with the annotation; and present the annotation upon rendering one of the plurality of videos.
In accordance with some implementations of the disclosed subject matter, systems for presenting annotations across multiple videos are provided, the systems comprising: means for receiving a selection of an annotation from a user; means for identifying a plurality of videos associated with an account of the user to be associated with the annotation; and means for presenting the annotation upon rendering one of the plurality of videos.
In some embodiments, the annotation includes at least one of text, animation, an image, a hyperlink, and a video.
In some embodiments, the system further comprises means for receiving a selection of a location in which to present the annotation.
In some embodiments, the system further comprises means for receiving a selection of a period of time during which to present the annotation when rendering a video.
In some embodiments, the system further comprises means for presenting the annotation upon rendering a video that has been associated with the account after the selection of the annotation has been received.
In some embodiments, the plurality of videos are a subset of all videos associated with the user account; and the system further comprising means for inhibiting presentation of the annotation upon rendering videos not included in the plurality of videos.
In some embodiments, the system further comprises means for changing the annotation periodically based on a rule.
In some embodiments, the system further comprises means for specifying a second annotation to be associated with the plurality of videos.
In some embodiments, the system further comprises causing content associated with the annotation to be presented in response to selection of the annotation when presented.
In some embodiments, the plurality of videos is all videos of the account.
In accordance with some implementations of the disclosed subject matter, non-transitory computer-readable media containing computer executable instructions that, when executed by a processor, cause the processor to perform a method for presenting annotations across multiple videos, the method comprising: receiving a selection of an annotation from a user; identifying a plurality of videos associated with the user account to be associated with the annotation; and presenting the annotation upon rendering one of the plurality of videos.
Various objects, features, and advantages of the present invention can be more fully appreciated with reference to the following detailed description of the invention when considered in connection with the following drawing, in which like reference numerals identify like elements.
In accordance with some implementations of the disclosed subject matter, mechanisms for presenting annotations across multiple videos are provided.
In some implementations, these mechanisms can provide a user interface for annotating videos associated with a user account of a user (e.g., a video publisher, a video owner, a content owner, a content publisher, etc.) of a video hosting and/or video sharing service (e.g., a service that facilitates viewers watching videos made available by users).
In some implementations, these mechanisms can present the user interface to the user, and receive a user selection of one or more annotations to associate with various videos associated with the user account. Additionally, these mechanisms can receive a user selection of the annotation to associate with videos associated with the account without presenting any of the videos associated with the account to the user (e.g., without presenting the user with a video editing interface or the like). For example, the mechanisms can receive a user selection of a particular video associated with the user account to use as the basis for an annotation to be used across all videos associated with the user account. This can allow the user to feature or promote a particular video (e.g., a new video) across all of the videos associated with the user account. As another example, the mechanisms can receive a user indication of a logo or other branding associated with the user account to be associated with all videos of the user account. This can allow the user to promote the brand of the user account across all of the videos associated with the account.
In some implementations, the annotation can include an image to be presented when a video associated with the account is rendered in response to a request from a viewer. Additionally, the annotation can include a link (e.g., instructions) that causes a viewer to be presented with content associated with the annotation when the annotation is selected by the viewer. For example, if a video annotation is associated with a video, selection of the video annotation can cause the video that forms the basis of the video annotation to be rendered.
Turning to
In some implementations, one set of credentials can be associated with multiple user accounts. For example, a user at a marketing company can be associated with multiple user accounts, and credentials for the marketing company user can correspond to multiple user accounts. In such an example, a user can be requested to select a particular user account. Additionally or alternatively, multiple sets of user credentials can be associated with a single user account. For example, multiple users can have access to a single user account.
At 104, process 100 can present a user interface to a user to allow the user to select an annotation to be presented with videos associated with the user account. Such a user interface can be presented to a user using any suitable technique(s). For example, process 100 can cause the user interface to be presented to a user as a graphical user interface (GUI) in a web page or a portion of a web page loaded by a browser running on a computing device. As another example, the user interface can be presented to a user as a GUI that is part of an application (e.g., an application for a personal computer, an application for a mobile computing device, etc.) for managing a user account, wherein the application can interact with process 100 in managing the user account. As yet another example, the user interface can be presented to a user by a user interface application as a GUI, using an application programming interface (API) to load the interface and/or interact with process 100. As still another example, the user interface can be presented as a non-graphical user interface such as through the use of text and/or sound.
At 106, process 100 can receive a user selection of an annotation (or annotations) to be presented with videos associated with the user account. The selection of the annotation can be made using any suitable technique(s).
Returning to
Returning to
At 208, process 200 can present a default branding annotation to the user. The default branding annotation can include any suitable default annotation. For example, the default annotation can include a logo or an image that has previously been associated with the user account. As another example, the default annotation can include an image associated with another account linked to the user account, such as a social media account associated with the same user. As yet another example, the default annotation can include a thumbnail from a video associated with the user account, such as a most-watched video associated with the user account.
In some implementations, a branding annotation can be used to promote a brand identity of an account or a part of an account. For example, if an account is associated with a musician, a brand identifier of the musician such as a logo, a name, or the like, can be used as a brand annotation. Additionally, the brand annotation can be configured such that when the brand annotation is presented during the rendering of a video, selection of the brand annotation (e.g., selection on a client device by a viewer) can cause a device rendering the video (e.g., the client device) to navigate to a location associated with the brand.
For example, selection of the branding annotation can cause the rendering device to navigate to a location where videos associated with the account are aggregated. The rendering device can be navigated to any suitable location. For example, in some implementations, the rendering device can be navigated to an account home page. As another example, in some implementations, the rendering device can be navigated to a channel associated with the account. In some implementations, a channel can be a collection of one or more media content. More particularly, for example, a collection of content from a common source or relating to a common topic can be a channel. In some implementations, a channel can be subscribed to by a user.
As another example, selection of the branding annotation can cause the rendering device to navigate to a home page or other page associated with the user account. For instance, if the account is associated with a musician, selecting the brand annotation can cause the rendering device to navigate to the musician's home page; or if the account is associated with a brand of products, selecting the brand annotation can cause the rendering device to navigate to a web page associated with the brand.
In some implementations, selecting the branding annotation can cause the rendering device to ask the viewer whether he/she would like to subscribe to videos associated with the account (e.g., using a Web page, an app interface, etc.), to receive a request from the viewer to subscribe to videos associated with the account, and/or to establish a subscription to videos associated with the account for the viewer. For example, in some implementations, upon selecting the branding annotation, the viewer can be automatically subscribed to videos associated with the account. As a more particular example, in response to the viewer hovering a pointer over the branding annotation, a “Subscribe” button can be presented, and, upon the viewer selecting the button, a subscription to videos associated with the account can be established for the viewer.
In some implementations, user interface 400 can include a sample 406 of the branding annotation and an example placement of sample 406 (e.g., top right). Sample 406 can include a preview of any suitable branding annotation, such as the default branding annotation described above in connection with
Referring back to
If it is determined that the user has chosen to customize the branding annotation (“YES” at 210), process 200 can proceed to 212. At 212, the look of the branding annotation and/or the selection of which videos the branding annotation will be associated with can be customized. For example, as described above in connection with
In some implementations, process 200 can receive a user indication to customize the selection of videos that the branding annotation will be associated with upon the user selecting user interface element 410. For example, the selection of which videos the branding annotation will be associated with can be customized by process 200 receiving a selection of user interface element 410 and prompting the user to choose videos from among some or all videos associated with the user account. Any suitable technique(s) can be used to choose the selection of videos that the branding annotation will be associated with. For example, a list with check boxes that can be checked or unchecked to indicate whether corresponding videos are included or excluded can be used. As another example, a comprehensive list of videos associated with the account can be presented and a video can be excluded from being associated with the branding annotation by being selected for exclusion.
Referring back to
At 218, process 200 can present the user with options for placing the branding annotation to be presented with videos associated with the user account. A placement of the branding annotation can be set using any suitable technique(s). For example, in some implementations, process 200 can present the user with a list of placements and/or times at which to present the branding annotation. As another example, process 200 can query the user for a location at which to place the branding annotation (e.g., by receiving text coordinates, by receiving a selection from a pointing device, etc.) and/or for a time at which to present the branding annotation (e.g., by receiving a user selection of a time on a timeline expressed as a percentage of a video's length).
In some implementations, a placement of the branding annotation can be based on a selection made using user interface element 412 as shown in user interface 400 of
It should be noted that although the placements for the branding annotation are discussed as being presented within the video, in some implementations, a branding annotation can be placed in a location other than within a video. For example, the branding annotation can be presented beside a video so as not to overlap content in the video.
In some implementations, a time when the branding annotation is to be presented can be set in response to a receiving an input using user interface element 414 as shown in user interface 400 of
Referring back to
Returning to
In some implementations, process 200 can present a user with options for choosing a video by rule, such as choosing a video that was most recently associated with the account (e.g., a new video), choosing a video at random, choosing a video from among a set of videos chosen by a user, etc. In a more particular example, process 200 can receive a user indication of a schedule of which video to use as the basis for a video annotation during different time periods (e.g., different days of the week, etc.). As another example, process 200 can receive a user indication of a rule to determine a video to show, such as a next video in a series if a current video is a part of a series, a next video associated with the account, a most popular video, a newest video, etc. As yet another example, process 200 can receive a user indication of a particular video, and a user indication to set a rule such that if the user is currently broadcasting anything live (e.g., streaming a video), that the live broadcast will be used as the basis for the video annotation while it is ongoing.
As still another example, process 200 can receive a user indication to choose a video to be used as the basis for the video annotation based on the identity of a viewer. For instance, if it is determined that the viewer has recently watched a video that the user indicated is to be used as the basis for a video annotation, the viewer can instead be presented with a different video that the viewer has not recently watched. Additionally or alternatively, process 200 can receive a user selection of a video to use as the basis for the video annotation based on a viewer's past behavior, which can include, for instance, videos recently watched by the viewer, observed preferences of the viewer, etc.
User interface 500 can also include a user interface element 508 for cancelling the action of selecting a video to use as the basis for a video annotation. In some implementations, if process 200 receives a selection of user interface 508 to cancel the video annotation, process 200 can return the user interface to user interface 300 or user interface 400, for example.
Referring back to
Referring back to
As shown in
Referring back to
At 708, server 704 can receive the request for the video. In some implementations, server 704 can determine whether the video that is requested exists and is viewable by the particular viewer using client device 702. For example, the video that is requested may not exist (e.g., the request may contain a bad request that does not reference a valid video). As another example, the video requested may be a private video that the viewer does not have access to (e.g., credentials of the viewer can be checked to determine whether the viewer has access to the private video). As yet another example, the video may exist but be blocked due to geographic restrictions, because an owner of the content requested that the video not be viewable, or for any other suitable reason. If client 702 is not authorized to view the video and/or if the video does not exist, a message (not shown) can be sent back to client 702 indicating such.
At 710, server 704 can determine an account associated with the video requested at 708. Any suitable technique(s) can be used to determine an account associated with the video such as by maintaining a database of accounts and their associated videos.
At 712, server 704 can determine whether there are any annotations associated with the account, such as a branding annotation or a video annotation as described above in connection with
If annotations are associated with the account (“YES” at 712), server 704 can associate the annotation(s) that are associated with the account with the requested video at 714. After the annotations are associated with the video, server 704 can move to 716. At 716, the server can send the video with any associated content to client 702. In some implementations, associated content can include annotations as described herein. Additionally, associated content can include any other content sent with the video including advertisements, recommendations for further videos, video specific annotations (e.g., an annotation inserted by a user into a particular video using, for example, video editing software), video metadata, account information (e.g., a name and a link to an account that the video is associated with), etc.
Otherwise, if annotations are not associated with the video (“NO” at 712), server 702 can move to 716 and send the video with any other associated content (e.g., other than annotations as described herein) as described above.
At 718, client 702 can receive the video and any associated content. The video can be received using any suitable technique(s), such as by receiving a file containing the video, receiving a stream of data representing the video, etc.
At 720, client 702 can render the video received at 718 and can present any associated annotations. In some implementations, the annotations can be presented at a particular location specified by a user of the user account (e.g., by receiving a user indication of a placement at 218 of
In some implementations, annotations can be presented to users overlaid on the video as the video is being rendered, and in some cases the viewer can be presented with the option of inhibiting the annotations. Alternatively, the annotations can be presented to viewers as part of the video (e.g., integrated into the video content), and the viewer may not have the option of inhibiting the annotations.
In some implementations, whether annotations are to be presented to a viewer can be based on one or more properties of client 702. For example, if client 702 is a personal computer or laptop computer, annotations can be presented to the viewer when rendering the video. As another example, if client 702 is a mobile computing device (e.g., a smartphone, a mobile phone, a wearable computer, etc.) presentation of annotations can be inhibited. Additionally or alternatively, whether annotations are presented to a viewer can be based on a type of application being used to render the video. For example, if the application being used to render the video is a browser based application (e.g., Flash, HTML, etc.) annotations can be presented to the viewer when rendering the video. As another example, if the application being used to render the video is an application (e.g., an application for rendering videos associated with a particular video hosting service) presentation of annotations can be inhibited.
In some implementations, as described above in connection with
It should be noted that although the annotations as described herein are described as being either a branding annotation or a video annotation, in some implementations, the mechanisms described herein can be used to associate any type of annotation with multiple videos associated with a user account. For example, annotations can be added for menu-like actions that can be performed based on a currently rendering video. More particularly, buttons can be added that take a viewer to a next episode in a series or a next video in a playlist, that allow the viewer to subscribe to the account or the series that the currently rendering video is associated with, or any other suitable menu functions. In another example, an annotation can be added that provides an icon and/or link that, when selected by a viewer, causes client 702 rendering the video to navigate to a social media presence associated with the user account.
It should also be noted that the annotations can take any shape and include any features. For example, annotations need not be rectangular and can be any shape specified by a user. As another example, annotations can take the form of a ticker at the bottom or top of a video, which can be updated by a user in real-time to display any suitable messages to viewers of videos associated with the user account.
At 804, server 704 can receive and verify the credentials, for example, as described above in connection with
At 808, server 704 can send the retrieved annotations (if any were associated with the user account) to client 702. For example, the retrieved annotations can be sent as part of a user interface for selecting and/or changing an annotation. In a more particular example, the retrieved annotations can be sent to client 702 to be presented in a user interface such as the user interface described in connection with
At 810, client 702 can present the annotations sent from server 704 at 808. For example, the current annotations can be presented as part of a user interface, such as the user interface described in connection with
At 812, client 702 can detect whether the user has requested a change in the presented annotation. For example, if the current annotations are presented using a user interface such as the user interface described in connection with
If client 702 does not detect that the user requested a change to the annotation(s) (“NO” at 812), the client can return to 810 and continue to present the current annotation(s) at 810 and detect changes at 812. Otherwise, if client 702 detects that the user has requested a change to the annotation (“YES” at 812), client 702 can proceed to 814.
At 814, client 702 can communicate with server 704 to make any changes to the annotations requested by the user and when the annotation changes have been made client 702 can return to 810 to present the current annotations to the user.
At 816, server 704 can communicate with client 702 to make the changes to the annotations requested by the user, and when the annotation changes are made (e.g., when a user chooses to save the annotation by selecting 418, or chooses to remove the annotation by selecting 420) server 704 can proceed to 818 and associate the new annotation (e.g., newly added, changed, or removed annotation) with the account. When the new annotation(s) have been associated with the account, server 704 can return to 808 and send the newly associated annotation to client 702 for presentation to the user.
It should be noted that the annotations can be changed using any suitable technique(s). For example, client 702 can make changes to the annotation such as the placement of the annotation (e.g., selected using drop down list 412) or the display time (e.g., selected using drop down list 414) and then transmit the changes when the user selects to save the changed annotation (e.g., by selecting 418). As another example, client 702 can transmit instructions to server 704 indicating user actions (e.g., selection of user interface elements and the like) and server 704 can interpret the actions and return instructions for changing the user interface. Changes made to the annotations can then be saved when the user indicates that the changes should be saved (e.g., by selecting 418). It is understood that the user interface and the mechanisms described herein can be implemented using various techniques and the behavior of client 702 and server 704 can vary depending on the particular implementation.
System 900 can include one or more servers 704. Server 704 can be any suitable server for providing access to the mechanisms described herein for presenting annotations across multiple videos, such as a processor, a computer, a data processing device, or any suitable combination of such devices. For example, the mechanisms for presenting annotations across multiple videos can be distributed into multiple backend components and multiple frontend components and/or interfaces. In a more particular example, backend components, such as data collection and data distribution can be performed on one or more servers 704. In another particular example, frontend components, such as a user interface, data entry, annotation presentation, video rendering, etc., can be performed on one or more client devices 702.
In some implementations, each of the client devices 702 and server 704 can be any of a general purpose device such as a computer or a special purpose device such as a client, a server, etc. Any of these general or special purpose devices can include any suitable components such as a hardware processor (which can be a microprocessor, digital signal processor, a controller, etc.), memory, communication interfaces, display controllers, input devices, etc. For example, client device 702 can be implemented as a personal computer, a laptop computer, a digital media receiver, a smartphone, a tablet computer, a mobile telephone, a wearable computer, a personal data assistant (PDA), a set-top box, a smart television, a home entertainment system, a game console, any other suitable computing device, or any suitable combination thereof.
Communications network 902 can be any suitable computer network or combination of such networks including the Internet, an intranet, a wide-area network (WAN), a local-area network (LAN), a wireless network, a digital subscriber line (DSL) network, a frame relay network, an asynchronous transfer mode (ATM) network, a virtual private network (VPN), etc. Communications links 904 and 906 can be any communications links suitable for communicating data among client devices 702 and server 704, such as network links, dial-up links, wireless links, hard-wired links, any other suitable communications links, or any suitable combination of such links. Client devices 702 can enable use of any of the techniques described herein that can allow the features of the mechanisms to be used. Client devices 702 and server 704 can be located at any suitable location.
Hardware processor 1012 can use the computer program to present on display 1014 content and/or an interface that allows a user to interact with the mechanisms described herein for presenting annotations in association with videos rendered by a device, such as client 702, and to send and receive data through communications link 906. It should also be noted that data received through communications link 906 or any other communications links can be received from any suitable source. In some implementations, hardware processor 1012 can send and receive data through communications link 906 or any other communication links using, for example, a transmitter, receiver, transmitter/receiver, transceiver, or any other suitable communication device. Input device 1016 can be a computer keyboard, a computer mouse, a touchpad, a voice recognition circuit, a touchscreen, and/or any other suitable input device.
Server 704 can include a hardware processor 1022, a display 1024, an input device 1026, and memory 1028, which can be interconnected. In some implementations, memory 1028 can include a storage device for storing data received through communications link 904 or through other links. The storage device can further include a server program for controlling hardware processor 1022.
Hardware processor 1022 can use the server program to communicate with clients 702 as well as provide access to and/or copies of the mechanisms described herein. It should also be noted that data received through communications link 904 or any other communications links can be received from any suitable source. In some implementations, hardware processor 1022 can send and receive data through communications link 904 or any other communication links using, for example, a transmitter, receiver, transmitter/receiver, transceiver, or any other suitable communication device. In some implementations, hardware processor 1022 can receive commands and/or values transmitted by one or more users. Input device 1026 can be a computer keyboard, a computer mouse, a touchpad, a voice recognition circuit, a touchscreen, and/or any other suitable input device.
In some implementations, server 704 can be implemented in one server or can be distributed as any suitable number of servers. For example, multiple servers 704 can be implemented in various locations to increase reliability and/or increase the speed at which the server can communicate with client devices 702.
In some implementations, the mechanisms described herein can include server-side software, client-side software, server-side hardware, client-side hardware, firmware, or any suitable combination thereof. For example, these mechanisms can encompass one or more Web pages or Web page portions (e.g., via any suitable encoding, such as Hyper Text Markup Language (“HTML”), Dynamic Hyper Text Markup Language (“DHTML”), Extensible Markup Language (“XML”), JavaServer Pages (“JSP”), Active Server Pages (“ASP”), Cold Fusion, or any other suitable approaches). As another example, these mechanisms can encompass a computer program that causes a processor to execute the user input interface application. For instance, these mechanisms can encompass a computer program written in a programming language recognizable by client device 702 and/or server 704 that is executing the mechanisms (e.g., a program written in a programming language, such as, Java, C, Objective-C, C++, C#, JavaScript, Visual Basic, HTML, XML, ColdFusion, any other suitable approaches, or any suitable combination thereof).
In situations in which the mechanisms described herein collect personal information about users, or can make use of personal information, the users can be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that can be more relevant to the user. In addition, certain data can be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user's identity can be treated so that no personally identifiable information can be determined for the user, or a user's geographic location can be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user can have control over how information is collected about the user and used by a content server.
In some implementations, any suitable computer readable media can be used for storing instructions for performing the functions and/or processes described herein. For example, in some implementations, computer readable media can be transitory or non-transitory. For example, non-transitory computer readable media can include media such as magnetic media (such as hard disks, floppy disks, etc.), optical media (such as compact discs, digital video discs, Blu-ray discs, etc.), semiconductor media (such as flash memory, electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), etc.), any suitable media that is not fleeting or devoid of any semblance of permanence during transmission, and/or any suitable tangible media. As another example, transitory computer readable media can include signals on networks, in wires, conductors, optical fibers, circuits, any suitable media that is fleeting and devoid of any semblance of permanence during transmission, and/or any suitable intangible media.
It should be understood that the above described steps of the processes of
The provision of the examples described herein (as well as clauses phrased as “such as,” “e.g.,” “including,” and the like) should not be interpreted as limiting the claimed subject matter to the specific examples; rather, the examples are intended to illustrate only some of many possible aspects. It should also be noted that, as used herein, the term mechanism can encompass hardware, software, firmware, or any suitable combination thereof.
Accordingly, methods, systems, and media for presenting annotation across multiple videos are provided.
Although the invention has been described and illustrated in the foregoing illustrative implementations, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the invention can be made without departing from the spirit and scope of the invention, which is limited only by the claims that follow. Features of the disclosed implementations can be combined and rearranged in various ways.
This application is a continuation of U.S. patent application Ser. No. 16/055,807, filed Aug. 6, 2018, which is a continuation of U.S. patent application Ser. No. 13/839,843, filed Mar. 15, 2013, each of which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
Parent | 16055807 | Aug 2018 | US |
Child | 16846720 | US | |
Parent | 13839843 | Mar 2013 | US |
Child | 16055807 | US |