The present application describes systems and methods of sharing content-synchronized ratings of media content presented on a first device by using second devices.
Arbitrarily broadcasting content over the Internet to other users, such as by so-called “spam” emails or the like, is generally discouraged and considered a nuisance. Acceptable Internet-based content delivery and sharing is typically structured using a publisher-follower model. According to the model, content publishers are limited to posting content to websites and are restricted from arbitrarily broadcasting content to users they do not have an established connection to. Social networking applications and blogging (e.g. micro-blogging) applications are examples of Internet-based content delivery and sharing mediums that generally adhere to the publisher-follower model.
The publisher-follower model limits how quickly and with whom users can share information. The model is based on followers seeking out publishers that publish content they are interested in. In order to share information with a wide audience, publishers must first attract followers by, for example, regularly publishing content that resonates with a particular audience and hoping that they develop followers from within that audience. But a particular user may want to express an impromptu opinion without trying to address a particular audience or without even having a well formed opinion. Constrained by the model, such causal publishers cannot readily share their opinions beyond their own social networks.
Reciprocally, it is difficult for a casual follower to determine the public or community opinion about a particular subject that is occurring in real-time, such as a television (TV) program. According to the model, users have to seek out various content publishers that post content about the subject. But it can be time consuming to decipher public or community opinion about the subject from ratings, articles and/or comments posted on websites or micro-blogging applications. For example, in the case of a TV program, the research involved may take longer than the duration of the TV program, which makes trying to determine public or community opinion about the TV program as it is happening a futile endeavor.
The aforementioned deficiencies and other problems are reduced or eliminated by the disclosed systems, methods and devices. Various implementations of systems, methods and devices within the scope of the claims each have several aspects, no single one of which is solely responsible for the desirable attributes described herein. Without limiting the scope of the claims, some prominent features of example implementations are described herein. After considering this description one will understand how the features of various implementations are configured to enable one or more users to share opinions in real-time about content being presented on a first type of device using respective Internet-enabled second devices.
More specifically, the systems, methods and devices described herein enable sharing content-synchronized ratings, related to media content playing on a first device, using one or more second devices. For example, while a video stream is playing on a first client device (e.g. a television), a second client device (e.g. a tablet computer) acquires and sends content information derived from the video stream to a server system. The server system identifies the video stream playing on the first client device by matching the content information to a content fingerprint. Then, based on the matched fingerprint, the server system generates a set of instructions, a time-marker, and one or more content-synchronized ratings collected from other user devices. The set of instructions includes instructions to synchronize a local timer maintained by the second client device to the time-marker provided by the server system, instructions enabling sharing of one or more content-synchronized ratings, and instructions to display content-synchronized ratings from other users. The set of instructions is sent to the second client device for execution and the related content is sent to the second client device for display. The second client device executes one or more applications in accordance with the set of instructions and displays the related content.
Some implementations include systems, methods and/or devices enabled to allow sharing of content-synchronized ratings related to playing media content on a first device including a processor, memory and a display, the method comprising. In some implementations, a method of allowing sharing of content-synchronized ratings includes detecting, using the first device, media content playing to a user; receiving, at the first device from a second device, a first content-synchronized rating associated with the playing media content; displaying on the display the first content-synchronized rating associated with the playing media content; displaying on the display an interface operable to receive a user input indicative of a user rating associated with the playing media; and, communicating a data structure including the user rating to the second device. In some implementations, a method of allowing sharing of content-synchronized ratings includes transmitting a time marker associated with the media content to a plurality of user devices; receiving from the plurality of user devices respective content-synchronized ratings related to media content; analyzing the content-synchronized ratings to generate a sub-set of ratings; and transmitting the sub-set of ratings to at least one of the plurality of user devices.
Some implementations include systems, methods and/or devices enabled to determine audience sentiment from content-synchronized ratings, related to media content, on a device including a processor and a memory. In some implementations, a method of determining comprises receiving from the plurality of user devices respective content-synchronized ratings related to media content; and analyzing the content-synchronized ratings to generate one or more metrics indicative of audience sentiment.
Some implementations include systems, methods and/or devices enabled to seed audience sentiment using salable ratings on a device including a processor, and a memory. In some implementations, a method of seeding audience sentiment includes transmitting a suggested set of selectable ratings associated with the media content to a plurality of user devices; and receiving from the plurality of user devices respective content-synchronized ratings related to media content.
Some implementations include systems, methods and/or devices enabled to display time-varying content synchronized ratings on a first device including a process, a memory and a display. In some implementations, a method of displaying time-varying content-synchronized ratings includes detecting, using the first device, media content playing to a user; receiving, at the first device from a second device (e.g. server), content-synchronized ratings associated with the playing media content provided by others, wherein each rating includes a data structure indicating respective characteristics of the rating; and displaying on the display the content-synchronized ratings associated with the playing media content in accordance with the respective characteristics for each rating.
In accordance with common practice the various features illustrated in the drawings may not be drawn to scale. As such, the dimensions of the various features may be arbitrarily expanded or reduced for clarity. In addition, some of the drawings may not depict all of the components of a given system, method or device. Finally, like reference numerals are used to denote like features throughout the specification and drawings.
Reference will now be made in detail to various implementations, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of aspects of the implementations. However, the subject matter described and claimed herein may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the disclosed implementations.
Systems, methods and devices described herein enable sharing content-synchronized ratings, related to media content playing on a first device, using one or more second devices. For example, while a television program is playing on a television, a tablet computer acquires and sends content information derived from the video stream to a server. The server identifies the television program by matching the content information to a fingerprint. Then the server system generates a set of instructions, a time-marker, and one or more content-synchronized ratings collected from other user devices. The set of instructions includes instructions for synchronizing to the time-marker, enabling sharing of one or more content-synchronized ratings, and displaying content-synchronized ratings from other users. The set of instructions and content are sent to the tablet computer for execution and display
In some implementations, the ratings server 130 is implemented as a single server system, while in other implementations it is implemented as a distributed system of multiple servers. Solely for convenience of explanation, the ratings server 130 is described below as being implemented on a single server system. Similarly, in some implementations, the broadcast system 140 is implemented as a single server system, while in other implementations it is implemented as a distributed system of multiple servers. Solely, for convenience of explanation, the broadcast system 140 is described below as being implemented on a single server system. Similarly, in some implementations, the content provider 150 is implemented as a single server system, while in other implementations it is implemented as a distributed system of multiple servers. Solely, for convenience of explanation, the content provider 150 is described below as being implemented on a single server system. Moreover, the functionality of the broadcast system 140 and the content provider 150 can be combined into a single server system. Additionally and/or alternatively, while only one broadcast system and only one content provider is illustrated in
The communication network 104 may be any combination of wired and wireless local area network (LAN) and/or wide area network (WAN), such as an intranet, an extranet, including a portion of the Internet. It is sufficient that the communication network 104 provides communication capability between the second screen client device 120 and the ratings server 130. In some implementations, the communication network 104 uses the HyperText Transport Protocol (HTTP) to transport information using the Transmission Control Protocol/Internet Protocol (TCP/IP). HTTP permits client devices 102 and 120 to access various resources available via the communication network 104. However, the various implementations described herein are not limited to the use of any particular protocol.
In some implementations, the ratings server 130 includes a front end server 134 that facilitates communication between the ratings server 130 and the communication network 104. The front end server 134 receives content information 164 from the second screen client device 120. As described in greater detail below with reference to
In some implementations, the front end server 134 is configured to send a set of instructions to the second screen client device 120. In some implementations, the front end server 134 is configured to send content files and/or links to content files. The term “content file” includes any document or content of any format including, but not limited to, a video file, an image file, a music file, a web page, an email message, an SMS message, a content feed, an advertisement, a coupon, a playlist or an XML document. In some implementations, the front end server 134 is configured to send or receive one or more video streams. In some implementations, the front end server 134 is configured to receive content directly from the broadcast system 140 and/or the content provider 150 over the communication network 104.
According to some implementations, a video or video stream is a sequence of images or frames representing scenes in motion. A video can be distinguished from an image. A video displays a number of images or frames per second. For example, a video displays 30 or 60 consecutive image frames per second. In contrast, an image is not necessarily associated with any other images.
A content feed (or channel) is a resource or service that provides a list of content items that are present, recently added, or recently updated at a feed source. A content item in a content feed may include the content associated with the item itself (the actual content that the content item specifies), a title (sometimes called a headline), and/or a description of the content, a network location or locator (e.g., URL) of the content, or any combination thereof. For example, if the content item identifies a text article, the content item may include the article itself inline, along with the title (or headline), and locator. Alternatively, a content item may include the title, description and locator, but not the article content. Thus, some content items may include the content associated with those items, while others contain links to the associated content but not the full content of the items. A content item may also include additional meta data that provides additional information about the content. For example, the meta data may include a time-stamp or embedded selectable website links. The full version of the content may be any machine-readable data, including but not limited to web pages, images, digital audio, digital video, Portable Document Format (PDF) documents, and so forth.
In some implementations, a content feed is specified using a content syndication format, such as RSS. RSS is an acronym that stands for “rich site summary,” “RDF site summary,” or “Really Simple Syndication.” “RSS” may refer to any of a family of formats based on the Extensible Markup Language (XML) for specifying a content feed and content items included in the feed. In some other implementations, other content syndication formats, such as the Atom syndication format or the VCALENDAR calendar format, may be used to specify content feeds.
In some implementations, the ratings server 130 is configured to receive content information 164 from the second screen client device 120, match the content information to a content fingerprint in the fingerprint database 132, generate a set of instructions and a set of prior ratings based on the matched fingerprint and send the set of instructions and the ratings to the second screen client device 120 for execution, display and/or selection. To that end, as described in greater detail below, in some implementations the ratings server 130 includes a ratings analysis module 139 that is configured to collect, analyze and share ratings provided by a number of users. In some implementations, the ratings analysis module 139 is a distributed network of elements. In some implementations, the ratings server 130 includes a content information extraction module 131 that is configured to operate with the front end server 134 and the ratings analysis module 139 to identify (i.e. fingerprint) the playing media content and provide information about the playing media content. In some implementations, the content information extraction module 131 is a distributed network of elements.
In some implementations, the ratings server 130 includes a user database 137 that stores user data. In some implementations, the user database 137 is a distributed database. In some implementations, the ratings server 130 includes a content database 136. In some implementations, the content database 136 includes advertisements, videos, images, music, web pages, email messages, SMS messages, content feeds, advertisements, coupons, playlists, XML documents, and ratings associated with various media content or any combination thereof. In some implementations, the content database 136 includes links to advertisements, videos, images, music, web pages, email messages, SMS messages, content feeds, advertisements, coupons, playlists, XML documents and ratings associated with various media content. In some implementations, the content database 136 is a distributed database.
As noted above, in some implementations, the ratings server 130 includes a fingerprint database 132 that stores content fingerprints. A content fingerprint includes any type of condensed or compact representation, or signature, of the content of a video stream and/or audio stream. In some implementations, a fingerprint may represent a clip (such as several seconds, minutes, or hours) of a video stream or audio stream. Or, a fingerprint may represent a single instant of a video stream or audio stream (e.g., a fingerprint of single frame of a video or of the audio associated with that frame of video). Furthermore, since video content may changes over time, corresponding fingerprints of that video content may also change over time. In some implementations, the fingerprint database 132 is a distributed database.
In some implementations, the rating server system 130 includes a broadcast monitor module 135 that is configured to create fingerprints of media content broadcast by the broadcast system 140 and/or the content provider 150.
In some implementations, the client device 102 is provided in combination with a display device such as a TV 110. The client device 102 is configured to receive a video stream 161 from the broadcast system 140 and pass the video stream to the TV 110 for display. While a TV has been used in the illustrated example, those skilled in the art will appreciate from the present disclosure that any number of displays devices, including computers, laptop computers, tablet computers, smart-phones and the like, can be used to display a video stream. Additionally and/or alternatively, the functions of the client 102 and the TV 110 may be combined into a single device.
In some implementations, the client device 102 is any suitable computer device capable of connecting to the communication network 104, receiving video streams, extracting information from video streams and presenting video streams for the display using the TV 110 (or another display device). In some implementations, the client device 102 is a set top box that includes components to receive and present video streams. For example, the client device 102 can be a set top box for receiving cable TV and/or satellite TV, a digital video recorder (DVR), a digital media receiver, a TV tuner, a computer, and/or any other device that outputs TV signals. In some implementations, the client device 102 displays a video stream on the TV 110. In some implementations the TV 110 can be a conventional TV display that is not connectable to the Internet and that displays digital and/or analog TV content received via over the air broadcasts or a satellite or cable connection.
As is typical of televisions, the TV 110 includes a display 118 and speakers 119. Additionally and/or alternatively, the TV 110 can be replaced with another type of display device 108 for presenting video content to a user. For example, the display device may be a computer monitor that is configured to receive and display audio and video signals or other digital content from the client 102. In some implementations, the display device is an electronic device with a central processing unit, memory and a display that is configured to receive and display audio and video signals or other digital content form the client 102. For example, the display device can be a LCD screen, a tablet device, a mobile telephone, a projector, or other type of video display system. The display device can be coupled to the client 102 via a wireless or wired connection.
In some implementations, the client device 102 receives video streams 161 via a TV signal 162. As used herein, a TV signal is an electrical, optical, or other type of data transmitting medium that includes audio and/or video components corresponding to a TV channel. In some implementations, the TV signal 162 is a terrestrial over-the-air TV broadcast signal or a sign distributed/broadcast on a cable-system or a satellite system. In some implementations, the TV signal 162 is transmitted as data over a network connection. For example, the client device 102 can receive video streams from an Internet connection. Audio and video components of a TV signal are sometimes referred to herein as audio signals and video signals. In some implementations, a TV signal corresponds to a TV channel that is being displayed on the TV 110.
In some implementations, a TV signal 162 carries information for audible sound corresponding to an audio track on a TV channel. In some implementations, the audible sound is produced by the speakers 119 included with the TV 110.
The second screen client device 120 may be any suitable computer device that is capable of connecting to the communication network 104, such as a computer, a laptop computer, a tablet device, a netbook, an internet kiosk, a personal digital assistant, a mobile phone, a gaming device, or any other device that is capable of communicating with the ratings server 130. In some implementations, the second screen client device 120 includes one or more processors 121, non-volatile memory 122 such as a hard disk drive, a display 128, speakers 129, and a microphone 123. The second screen client device 120 may also have input devices such as a keyboard, a mouse and/or track-pad (not shown). In some implementations, the second screen client device 120 includes a touch screen display, a digital camera and/or any number of supplemental devices to add functionality.
In some implementations, the second screen client device 120 is connected to and/or includes a display device 128. The display device 128 can be any display for presenting video content to a user. In some implementations, the display device 128 is the display of a television, or a computer monitor, that is configured to receive and display audio and video signals or other digital content from the second screen client device 120. In some implementations, the display device 128 is an electronic device with a central processing unit 121, memory 122 and a display that is configured to receive and display audio and video signals or other digital content. In some implementations, the display device 128 is a LCD screen, a tablet device, a mobile telephone, a projector, or any other type of video display system. In some implementations, the second screen client device 120 is connected to and/or integrated with the display device 128. In some implementations, the display device 128 includes, or is otherwise connected to, speakers capable of producing an audible stream corresponding to the audio component of a TV signal or video stream.
In some implementations, the second screen client device 120 is connected to the client device 102 via a wireless or wired connection 103. In some implementations where such connection exists, the second screen client device 120 may optionally operate in accordance with instructions, information and/or digital content (collectively “second screen information”) provided by the client device 102. In some implementations, the client device 102 issues instructions to the second screen client device 120 that cause the second screen client device 120 to present on the display 128 and/or the speaker 129 digital content that is complementary, or related to, digital content that is being presented by the client 102 on the TV 110.
In some implementations, the second screen client device 120 includes a microphone 123 that enables the client device to receive sound (audio content) from, for example, the speakers 119 of the TV 110. The microphone 123 enables the second screen client device 120 to store the audio content/soundtrack that is associated with the video content as it is presented. The second screen client device 120 can store this information locally and then send to the ratings server 130 content information 164 that is any one or more of: fingerprints of the stored audio content, the audio content itself, portions/snippets of the audio content, fingerprints of the portions of the audio content or references to the playing content.
In this way, the ratings server 130 can identify the content playing on the television even if the electronic device on which the content is being presented is not an Internet-enabled device, such as an older TV set; is not connected to the Internet (temporarily or permanently) so is unable to send the content information 164; or does not have the capability to record or fingerprint media information related to the video content. Such an arrangement (i.e., where the second screen client device 120 stores and sends the content information 164 to the ratings server 130) allows a user to receive from the ratings server 130 second screen content triggered in response to the content information 164 no matter where the user is watching TV.
In some implementations, the second screen client device 120 includes one or more applications 125 stored in the memory 122. As discussed in greater detail below, the processor 121 executes the one or more applications in accordance with a set of instructions received from the ratings server 130.
As a non-limiting example, within the client-server environment 200, the client 102, the TV 110 and second screen client device 120 are included in a first residential location 201. In operation, the client device 102 receives a TV signal or some other type of streaming video signal or audio signal. The client device 102 then communicates at least a portion of the received signal to the TV 110 for display to the user 221. As described above, the second screen client device 120 is configured to detect the media content playing on the first device (e.g. TV 110) and enable sharing of content-synchronized ratings associated with the media content playing on the TV 110. Similar arrangements may be found within residential locations 202, 203, 204, 205 and 206, in which other users (not shown) similarly equipped can provide and share ratings about the same media content. Moreover, while residential locations have been used in this particular example, those skilled in the art will appreciate from the present disclosure that client devices and the like can be located in any type of location, including commercial, residential and public locations. More specific details pertaining to how content-synchronized ratings are shared amongst users are described below with reference to the remaining drawings and continued reference to
The operating system 316 includes procedures for handling various basic system services and for performing hardware dependent tasks.
The network communication module 318 facilitates communication with other devices via the one or more communication network interfaces 308 (wired or wireless) and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on. With further reference to
The content database 136 includes content files 328 and/or links to content files 230. In some implementations, the content database 136 stores advertisements, videos, images, music, web pages, email messages, SMS messages, a content feeds, advertisements, coupons, playlists, XML documents and any combination thereof. In some implementations, the content database 1376 includes links to advertisements, videos, images, music, web pages, email messages, SMS messages, content feeds, advertisements, coupons, playlists, XML documents and any combination thereof. Content files 328 are discussed in more detail in the discussion of
The user database 137 includes user data 340 for one or more users. In some implementations, the user data for a respective user 340-1 includes a user identifier 342, user characteristics 344 and user account information 345. The user identifier 342 identifies a user. For example, the user identifier 342 can be an IP address associated with a client device 102 or an alphanumeric value chosen by the user or assigned by the server that uniquely identifies the user. The user characteristics 344 include the characteristics of the respective user.
The fingerprint database 132 stores one or more content fingerprints 332. A fingerprint 332 includes a name 334, fingerprint audio information 336 and/or fingerprint video information 338, and a list of associated files 339. The name 334 identifies the respective content fingerprint 332. For example, the name 334 could include the name of an associated television program, movie, or advertisement. In some implementations, the fingerprint audio information 336 includes a fingerprint or other compressed representation of a clip (such as several seconds, minutes, or hours) of the audio content of a video stream or an audio stream. In some implementations, the fingerprint video information 338 includes a fingerprint of a clip (such as several seconds, minutes, or hours) of a video stream. Fingerprints 332 in the fingerprint database 132 are periodically updated.
The content information extraction module 131 receives content information 164 from the second screen client device 120, generates a set of instructions 132 and sends a set of instructions 132 to the second screen client device 120. Additionally and/or alternatively, the ratings server 130 can receive content information 164 from the client device 102. The content information extraction module 131 includes an instruction generation module 320 and a fingerprint matching module 222. In some implementations, the content information extraction module 131 also includes a fingerprint generation module 321, which generates fingerprints from the content information 164 or other media content saved by the server 130.
The fingerprint matching module 322 matches at least a portion of the content information 164 (or a fingerprint of the content information 164 generated by the fingerprint generation module) to a fingerprint 332 in the fingerprint database 132. The matched fingerprint 342 is sent to the instruction generation module 320. The fingerprint matching module 322 includes content information 164 received from at least one of the client device 102 and the second screen client device 120. The content information 164 includes audio information 324, video information 326 and a user identifier 329. The user identifier 329 identifiers a user associated with at least one of the client device 102 and the second screen client device 120. For example, the user identifier 329 can be an IP address associated with a client device 102 (or 120) or an alphanumeric value chosen by the user or assigned by the server that uniquely identifies the user. In some implementations, the content audio information 324 includes a clip (such as several seconds, minutes, or hours) of a video stream or audio stream that was presented on the client device 102. In some implementations, the content video information 326 includes a clip (such as several seconds, minutes, or hours) of a video stream that was played on the client device 102.
The instruction generation module 320 generates a set of instructions 332 based on the matched fingerprint 342. In some implementations, the instruction generation module 320 generates the set of instructions 332 based on information associated with the matched fingerprint 342 and the user data 340 corresponding to the user identifier 329. In some implementations, the instruction generation module 320 determines one or more applications 138 associated with the matched fingerprint 342 to send to the second screen client device 120. In some implementations, the instruction generation module 320 determines one or more content files 328 based on the matched fingerprint 342 and sends the determined content files 328 to the second screen client device 320.
In some implementations, the set of instructions 332 includes instructions to execute and/or display one or more applications on the second screen client device 120. For example, when executed by the second screen client device 120, the set of instructions 332 may cause the second screen client device 120 to display an application that was minimized or running as a background process, or the set of instructions 132 may cause the second screen client device 120 to execute the application. In some implementations, the set of instructions 332 include instructions that cause the second screen client device 120 to download one or more content files 328 from the server system 106.
The applications 138 include one or more applications that can be executed on the second screen client device 120. In some implementations, the applications include a media application, a feed reader application, a browser application, an advertisement application, a coupon book application and a custom application.
Each of the above identified elements may be stored in one or more of the previously mentioned memory devices, and each of the modules or programs corresponds to a set of instructions for performing a function described above. The set of instructions can be executed by one or more processors (e.g., the CPUs 302). The above identified modules or programs (i.e., trigger module 118) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various implementations. In some implementations, memory 306 may store a subset of the modules and data structures identified above. Furthermore, memory 306 may store additional modules and data structures not described above.
Although
The client device 102 includes a video input/output 430 for receiving and outputting video streams. In some implementations, the video input/output 430 is configured to receive video streams from radio transmissions, satellite transmissions and cable lines. In some implementations the video input/output 430 is connected to a set top box. In some implementations, the video input/output 430 is connected to a satellite dish. In some implementations, the video input/output 430 is connected to an antenna.
In some implementations, the client device 102 includes a television tuner 432 for receiving video streams or TV signals.
The operating system 416 includes procedures for handling various basic system services and for performing hardware dependent tasks.
The network communication module 418 facilitates communication with other devices via the one or more communication network interfaces 404 (wired or wireless) and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on.
The data 420 includes video streams 161.
The video module 426 derives content information 164 from a video stream 161. In some implementations, the content information 161 includes audio information 324, video information 326, a user identifier 329 or any combination thereof. The user identifier 329 identifies a user of the client device 102. For example, the user identifier 329 can be an IP address associated with a client device 102 or an alphanumeric value chosen by the user or assigned by the server that uniquely identifies the user. In some implementations, the audio information 324 includes a clip (such as several seconds, minutes, or hours) of a video stream or audio stream. In some implementations, the video information 326 may include a clip (such as several seconds, minutes, or hours) of a video stream. In some implementations, the video information 326 and audio information 324 are derived from a video stream 161 that is playing or was played on the client 102. The video module 426 may generate several sets of content information 164 for a respective video stream 161.
Each of the above identified elements may be stored in one or more of the previously mentioned memory devices, and each of the modules or programs corresponds to a set of instructions for performing a function described above. The set of instructions can be executed by one or more processors (e.g., the CPUs 402). The above identified modules or programs (i.e., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various implementations. In some implementations, memory 306 may store a subset of the modules and data structures identified above. Furthermore, memory 406 may store additional modules and data structures not described above.
Although
The operating system 447 includes procedures for handling various basic system services and for performing hardware dependent tasks.
The network communication module 448 facilitates communication with other devices via the one or more communication network interfaces 445 (wired or wireless) and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on.
The instruction module 124 receives a set of instructions 432 and optionally content files 428 and/or links to content files 430. The instruction module 124 executes the set of instructions 432. In some implementations, the instruction module 124 executes an application 125 in accordance with the set of instructions 432. For example, in some implementations, the instruction module 124 executes a web browser 455-1 which displays a web page in accordance with the set of instructions 432. In some implementations, the instruction module 124 displays the contents of one or more content files 428. For example, in some implementations, the instruction module 124 may display an advertisement. In some implementations, the instruction module 124 retrieves one or more content files referenced in the links 430.
The second screen client device 120 includes one or more applications 125. In some implementations, the applications 125 include a browser application 455-1, a media application 455-2, a coupon book application 455-3, a feed reader application 455-4, an advertisement application 455-5, custom applications 455-6 and fingerprint module 455-7. The browser application 455-1 displays web pages. The media application 455-2 plays videos and music, displays images and manages playlists 456. The feed reader application 355-4 displays content feeds 458. The coupon book application 455-3 stores and retrieves coupons 457. The advertisement application 455-5 displays advertisements. The custom applications 455-6 display information from a website in a format that is easily viewable on a mobile device. The applications 125 are not limited to the applications discussed above.
Each of the above identified elements may be stored in one or more of the previously mentioned memory devices, and each of the modules or programs corresponds to a set of instructions for performing a function described above. The set of instructions can be executed by one or more processors (e.g., the CPUs 121). The above identified modules or programs (i.e., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various implementations. In some implementations, memory 306 may store a subset of the modules and data structures identified above. Furthermore, memory 306 may store additional modules and data structures not described above.
Although
As represented by block 5-6, the method includes determining whether or not the user rating input corresponds to one of the received time-varying ratings. In some implementations, the time-varying ratings correspond to ratings provided by other users for the same media content playing on the first device. For example, with further reference to
On the other hand, if the user rating input does not correspond to one of the received time-varying ratings (“No” path from block 5-6), as represented by block 5-7, the method includes determining whether or not the user rating input corresponds to a preset rating. In some implementations, a preset rating includes a rating that is available for selection by default on a number of second screen devices. Such ratings are provided because they have historically been or are expected to be frequently chosen by a significant number of users viewing a particular television program. For example, the ratings “Love it!” and “Hate it!” may be preset ratings in some implementations.
If the user rating input corresponds to a preset rating (“Yes” path from block 5-7), as represented by block 5-9, the method includes transmitting the user rating to a ratings server in a data structure. On the other hand, if the user rating input does not correspond to a preset rating (“No” path from block 5-7), as represented by block 5-8, the method includes determining that the user rating input is a new rating and storing the new rating in a local cache within the memory of the second screen device. Subsequently, as described above, as represented by block 5-9, method includes transmitting the user rating to the ratings server in a data structure.
With continued reference to
As described above, while the television program 502 is playing on the TV 110, the second screen client device 120 acquires and/or generates a reference derived from the television program 502. The second screen client device 120 then transmits the reference to the ratings server 130. The ratings server 130 matches the content information to a content fingerprint in order to identify the television program 502. After identifying a content fingerprint that matches the content information, the ratings server 130 generates and/or retrieves a set of instructions and content associated with the television program 502, and transmits the set of instructions and the associated content to the second screen client device 120 for execution and display.
The second client device 120 executes the set of instructions, which includes instructions for displaying the received content associated with the television program 502 playing on the TV 110 within the user interface 520. In some implementations, the user interface 520 is configured to include five sections 521, 522, 523, 524, 525. While five sections are included in the example implementation described with reference to
In some implementations, the first section 521 is configured to display an image associated with the television program 502 in order to indicate to the user that the user interface 520 is displaying content specifically associated with the television program 502. For example, the first section 521 may display a recent frame from the television program, which may be updated periodically (e.g. every 5-10 secs). Additionally and/or alternatively, the first section 521 may display a logo associated with either the television program or the logo of a broadcast station (i.e. the logo of the television channel, station or network) that is airing the television program 502.
In some implementations, the second section 522 is configured to display a real-time chart graphically representing a summary of the content-synchronized ratings provided by users in various locations (e.g. locations 201, 202, 203, 204, 205, 206 in
In some implementations, the third section 523 is configured to display animations associated with current viewer sentiment. For example, if a majority of viewers provide ratings that indicate a negative sentiment towards the television program 502, a suitable animation reflecting that negative sentiment may be displayed. More specifically, for example, the animation may include a cartoon character sleeping if the viewers indicate that the television program 502 is boring. In yet another example, the animation may suddenly and without warning “pop” out, to catch the attention of a user, based on surges or significant changes in current viewer sentiment. For example, if the majority of users suddenly provide ratings that are indicative of a cheer or a show of support for a particular sports team in response to an event (e.g. scoring a goal during a game), an associated animation may pop up that reflects that surge in viewer sentiment. For example, the animation may include the mascot of the sports team dancing, wiggling and/or gyrating in a celebratory manner, and the mascot of the opposing sports team crying and vibrating. Those skilled in the art will appreciate from the present disclosure that the aforementioned specific examples of animations are merely illustrative and are not limiting.
In some implementations, the fourth section 524 is configured to display selectable time-varying suggested ratings, which are based on the ratings provided by other users during the course of the television program 502. In some implementations, each selectable time-varying suggested rating is displayed in an icon (e.g. a balloon, bubble, button, etc.) having varying respective visual characteristics that reflect the current popularity of the rating. For example, a particular selectable time-varying suggested rating that is increasingly being repeated by a number of users is displayed in a balloon that grows in size and moves to the foreground of the display. Additionally and/or alternatively, the color of the balloon may also become brighter. On the other hand, a particular selectable time-varying suggested rating that is waning in popularity is displayed in a balloon that is shrinking in size, moves to the background of the display, and eventually bursts after falling below a threshold level of popularity. In some implementations, the fourth section 524 is configured to allow a user to select one or more of the selectable time-varying suggested ratings by at least one of using a peripheral device, such as a mouse or keyboard, and/or by touching the display 128 if it is enabled as a touch-screen display.
In some implementations, the fifth section 525 is configured to display a number of selectable preset suggested ratings. In some implementations, each selectable preset suggested rating is displayed in an icon or button. For example, as illustrated in FIG. 7, the fifth section 525 includes three selectable preset suggested ratings buttons 525a, 525b, 525c. In some implementations, the selectable preset suggested ratings are ratings that have historically been or are expected to be frequently chosen by a significant number of users viewing the television program 502. For example, ratings such as, for example, “Love it!” and “Hate it!” may be preset ratings in some implementations. In some implementations, the selectable preset suggested ratings are larger and/or are more prominently displayed than the selectable time-varying suggested ratings. In some implementations, the selectable time-varying suggested ratings are larger and/or are more prominently displayed than the selectable preset suggested ratings. In some implementations, the fifth section 525 is configured to allow a user to select one or more of the selectable preset suggested ratings by at least one of using a peripheral device, such as a mouse or keyboard, and/or by touching the display 128 if it is enabled as a touch-screen display.
In some implementations, the user interface 520 may be configured to receive user ratings using a keyboard or virtual displayed keyboard on a touch-screen display. As such, a user can enter new ratings that are not present among the selectable preset suggested ratings and the selectable time-varying suggested ratings displayed.
In some implementations, the user interface 520 may be configured to determine the emphasis or “volume” with which a user selects or enters a rating. For example, the emphasis or volume may be determined based on how much pressure the user applies to a touch screen or other input device. For example, with specific reference to a touch screen, the ratio of touch area to the button area and/or duration of the touch might be used to provide an emphasis or volume indicator associated with a particular rating input from the user.
In some implementations, the application 125 is configured to generate a tuple or data structure for each rating input provided by a user. For example, in addition to a field for the rating input, the tuple or data structure includes, for example, fields for a stream identifier, a wall clock time, a content time, the emphasis or volume indicator and a location indicator. In some implementations, the stream identifier field includes a value that identifies the television program 502 playing on the TV 110. In some implementations, if consent is provided by a user, the wall clock time field includes a value indicative of the local time where the user is located (e.g. Pacific Standard Time in California, USA). In some implementations, if consent is provided by a user, content time field includes a value indicative of a time offset relative to the beginning of the television program 502. In some implementations, the location indicator field includes a value that is indicative of the user location (e.g. Palo Alto, Calif., USA).
While various non-limiting options have been described, those skilled in the art will appreciate from the present disclosure that various other options are also possible.
As represented by block 10-5, the method includes transmitted the time-marker to the at least one user device. As represented by block 10-6, the method includes receiving from the plurality of user devices respective content-synchronized ratings associated with the playing media content. As represented by block 10-7, the method includes analyzing the received ratings to generate a sub-set of ratings to send back to the plurality of user devices. As represented by block 10-8, the method includes transmitting the sub-set of ratings to the user devices.
With further reference to
As represented by block 1105 the ratings analysis module 139 provides a seed set of ratings in response to the content information extraction module 131 identifying the TV program. As represented by block 1106, having determined the identity of the TV program, the content information extraction module 131 generates and/or retrieves a time-marker associated with the identified TV program.
As represented by block 1107, the front end server transmits a set of instructions, the time-marker and the seed set of ratings to the second screen client device 120. As represented by block 1108, the second screen device synchronizes a local time using the received time-marker and displays at least a portion of the seed set of ratings. In some implementations, the ratings are displayed in a graphical format and are individually selectable by the user 221 of the second screen client device 120. In some implementations, the ratings are displayed in a graphical format that represents how many other users previously selected each rating (if any), either in terms of percentage or number of selections per rating, etc.
As represented by block 1109, the second screen client device 120 receives a user input indicative of a ratings selection/input and populates a tuple or data structure that is then transmitted to the ratings server 130. As represented by block 1110 the front end server 134 receives the data structures from one or more second screen devices. As represented by block 1111 the ratings analysis module 139 analyzes the ratings included in the data structures.
As represented by block 1112 the components continue to exchange synchronization information and ratings data associated with the TV program for at least the duration of the TV program. The various second screen client devices that provide ratings data, in turn, receive updates including at least the results of the analysis of the ratings data.
The foregoing description, for purpose of explanation, has been described with reference to specific implementations. The aspects described above may be implemented in a wide variety of forms, and thus, any specific structure and/or function described herein is merely illustrative. Moreover, the illustrative discussions above are not intended to be exhaustive or to limit the methods and systems to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations were chosen and described in order to best explain the principles of the methods and systems and their practical applications, to thereby enable others skilled in the art to best utilize the various implementations with various modifications as are suited to the particular use contemplated.
Based on the present disclosure one skilled in the art should appreciate that an aspect described herein may be implemented independently of any other aspects and that two or more of these aspects may be combined in various ways. For example, an apparatus may be implemented and/or a method may be practiced using any number of the aspects set forth herein. In addition, such an apparatus may be implemented and/or such a method may be practiced using other structure and/or functionality in addition to or other than one or more of the aspects set forth herein.
Moreover, in the foregoing description, numerous specific details are set forth to provide a thorough understanding of the present implementation. However, it will be apparent to one of ordinary skill in the art that the methods described herein may be practiced without these particular details. In other instances, methods, procedures, components, and networks that are well known to those of ordinary skill in the art are not described in detail to avoid obscuring aspects of the present implementation.
It will also be understood that, although the terms “first,” “second,” etc. may be used herein to describe various features, these features are not limited by these terms. These terms are only used to distinguish one element from another. For example, a first device could be termed a second device, and, similarly, a second device could be termed a first device, without changing the meaning of the description, so long as all occurrences of the “first device” are renamed consistently and all occurrences of the “second device” are renamed consistently.
Moreover, the terminology used herein is for the purpose of describing particular implementations and is not intended to be limiting of the claims. As used in the description of the implementations and the claims, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in accordance with a determination” or “in response to detecting,” that a stated condition precedent is true, depending on the context. Similarly, the phrase “if it is determined [that a stated condition precedent is true]” or “if [a stated condition precedent is true]” or “when [a stated condition precedent is true]” may be construed to mean “upon determining” or “in response to determining” or “in accordance with a determination” or “upon detecting” or “in response to detecting” that the stated condition precedent is true, depending on the context.