Corresponding reference characters indicate corresponding parts throughout the drawings.
In an embodiment, the invention provides for navigation and selection of media content in a media content download service such as illustrated in
Although described primarily in the context of video media files, aspects of the invention may be applied to various forms of digital media, including video and multimedia files (e.g., movies, movie trailers, television shows, etc.), audio files (e.g., music tracks, news reports, audio web logs, audio books, speeches, comedy routines, etc.), media broadcasts (e.g., webcasts, podcasts, audiocasts, videocasts, video blogs, blogcasts, etc.), and images.
Referring again to
The content owners 106 or providers supply program content (e.g., video and/or audio files) with associated metadata. This metadata includes the locations in the video at which ads can be inserted (e.g., ad breaks), and which ads provider is responsible for running the ad campaigns. For example, the ads provider may be identified by a uniform resource locator. One or more ads providers or advertisers 108 sell ads against the ad breaks. The ads providers supply ad content 110. The ads providers also run an ad engine and report collection service 112 for collecting the reports of which ads have been played. Furthermore, the ads providers make available ad manifest files via an ad manifest service 114. The ad manifests may be distributed via database, stream, file, or the like. The ad manifests include information about the current ad campaigns including which ads (or groups of ads) should be associated with which types of program content. The ad manifests also include the rules about when the advertising may be shown and on what devices/formats. The ad manifests further include the definition of tracking events for reporting on the advertising playback (e.g., a video ad was played, thus it can be billed).
Content ingestion servers 116 receive the program content supplied by the content owners 106, together with the location of the ad manifests, and publish them in a catalog. This catalog includes information about the program content and includes metadata such as categories, descriptions, duration, etc. Content delivery networks 118 interface with the media service client 104 or other computing device associated with the user 102 to deliver the content items 128 including program content and advertisements to the user 102.
The user 102 interfaces with the media service client 104, application, computing device, or the like that provides functionality such as browsing, searching, downloading, managing and consuming the content items 128. A catalog manager 120 associated with the media service client 104 downloads the catalog via, for example, a catalog web service 122 and allows the user 102 to browse it in search of content items 128. Once an item is selected for download, the corresponding ad manifest is retrieved, for example, by a download manager 124 and stored (e.g., as manifests 126). The ad manifest for each item of program content includes the information for determining which ads should be downloaded together with the program content. The download manager 124 downloads the selected program content and associated ads. Downloading includes retrieving the program content and associated ads. Downloading may also include receiving the program content and associated ads pushed from another computing device (e.g., pushed from a server at regular intervals).
The download manager 124 also periodically updates the downloaded advertisements to maintain a fresh pool of ads that may be displayed against the selected program content. Maintaining a readily available pool of ads enables offline playback, provides high-quality ad files, and allows for various different ads to be displayed against the selected program content.
For example, in one embodiment, the download manager 124 in the media service client 104 checks each of the downloaded program content items 128 to identify and parse the corresponding ad manifests to determine if the current local pool of ads is fresh. If particular ads are no longer relevant, the ads may be deleted from the local pool, while additional ads may be downloaded to keep the local ad pool fresh.
In one embodiment, one or more computer-readable media or other memory areas such as memory area 130 associated with the media service client 104 have computer-executable components comprising the catalog manager 120 for downloading a content catalog from a catalog service, a user interface component 132, the download manager 124, a playback engine 134, and a throttle component 142. The playback engine 134 renders, to the user 102, a content item (e.g., a first content item) from the content items 128 stored in the memory area 130 of the media service client 104. The throttle component 142 manages the amount of downloaded content to minimize the amount of downloaded content that has not been watched. In one embodiment, the throttle component 142 identifies another of the content items 128 (e.g., a second content item) while the first content item is being rendered by the playback engine 134. For example, content items 128 may be organized in a sequence (e.g., a series of episodes) such that the second content item immediately follows the first content item.
Prior to the downloading of the second content item, the throttle component 142 determines if the stored quantity of downloaded content items 128 has or will exceed a configurable threshold. If so, the throttle component 142 deletes one of the content items 128 before downloading an additional content item. For example, the throttle component 142 determines a quantity of the content items 128 stored in the memory area 130 and deletes one of the content items 128 as a function of the determined quantity of the content items 128. The throttle component 142 may, for example, maintain a maximum of three episodes of a series in the memory area 130. Further, the throttle component 142 manages transitory content by purging “old” content and downloading the latest content (e.g., news) to ensure that “fresh” content is available for rendering.
During the rendering of the first content item by the playback engine 134, the download manager 124 downloads the second content item identified by the throttle component 142 from the media content download service to the media service client 104. In an embodiment, the playback engine 134 renders the downloaded second content item to the user 102 upon completion of the rendering of the first content item. In another embodiment, the user interface component 132 displays metadata associated with a plurality of the content items 128 to the user 102 for selection. Responsive to the selection, the playback engine 134 renders the selected content item to the user 102.
The memory area 130 further stores user content preferences 140. The user content preferences 140 include, for example, a subscription to content such as a particular season of a particular series (e.g., each series comprising a plurality of episodes), user viewing habits, or any other preference either set by or for the user 102. In one example, the user content preferences 140 include subscriptions to a plurality of series.
The memory area 130 also stores or otherwise persists the manifests and the content items 128 (e.g., the program content and the associated advertisements) downloaded by the download manager 124. In an embodiment, the program content is divided into segments such that ad breaks may be detected. The advertisements are inserted at the ad breaks by the playback engine 134. As such, rendering of the program content is interrupted by the rendering of the advertisements. In an aspect of the invention, the manifest correlates particular ads to particular segments of the program content.
The computer typically has at least some form of computer readable media. Computer readable media, which include both volatile and nonvolatile media, removable and non-removable media, may be any available medium that may be accessed by computer. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art are familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal. Wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media, are examples of communication media. Combinations of any of the above are also included within the scope of computer readable media.
In operation, a computing device executes computer-executable instructions such as those illustrated in the figures to implement aspects of the invention.
Referring next to
The application renders the content to the user at 206. If the next content (e.g., the second content item) has not been identified and downloaded at 208, the application identifies a plurality of content items such as content items 128 in
The user content preferences 140 may be auto-populated by the media content download service or received from the user via a user interface. In another embodiment, the second content item is randomly selected, or selected due to a genre or keyword identified by the user in the user content preferences 140. In an embodiment, the user selects the metadata without navigating away from the first content item being rendered.
The application downloads the identified content items at 212 and displays metadata associated with the downloaded content items to the user at 214. For example, two or three content items may be represented by the displayed metadata. The displayed metadata may take the form of a popup window, a dialog, an inserted advertisement, a hover window that is partially transparent, or the like. The metadata may be displayed to the user prior to the end of the current content item or at the end of the current content item to retain the user. In an embodiment, the dialog may also display a trailer for each of the displayed choices. If the content associated with all the displayed metadata has been downloaded, then the dialog may be presented prior to or at the end of the current show. If the content associated with at least one of the displayed metadata items has not been downloaded, then the dialog may appear prior to the end of the current show leaving enough time to download the remaining content.
The user selects metadata corresponding to desired content. The application receives a selection of the metadata from the user at 216 and correlates the received selection to the desired content (e.g., the second content item). If the user does not select the next content item for rendering, the next episode in the series is selected by aspects of the invention. In another embodiment, the second content item is selected without input from the user. In such an embodiment, no metadata is displayed. Instead, aspects of the invention automatically select the second content item to render to the user.
If the rendering of the first content item is complete at 218, the application renders the downloaded second content item to the user at 220. If the rendering of the first content is still in progress at 218, the application loops to 208 to confirm that the second content item has been identified and downloaded, then loops to 218 to again determine if the rendering of the first content item is complete.
In an embodiment, the first and second content items are adjacent episodes in a series. In another embodiment, the first and second content items are from different series.
In one embodiment, one or more computer-readable media have computer-executable instructions for performing the method illustrated in
Although described in connection with an exemplary computing system environment, embodiments of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment illustrated in
The following examples further illustrate embodiments of the invention. The figures, description, and examples herein as well as elements not specifically described herein but within the scope of aspects of the invention constitute means for retaining the viewing attention of the user at the completion of the rendering of the first content item.
The order of execution or performance of the operations in embodiments of the invention illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and embodiments of the invention may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the invention.
Embodiments of the invention may be implemented with computer-executable instructions. The computer-executable instructions may be organized into one or more computer-executable components or modules. Aspects of the invention may be implemented with any number and organization of such components or modules. For example, aspects of the invention are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the invention may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
When introducing elements of aspects of the invention or the embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
Having described aspects of the invention in detail, it will be apparent that modifications and variations are possible without departing from the scope of aspects of the invention as defined in the appended claims. As various changes could be made in the above constructions, products, and methods without departing from the scope of aspects of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.