enforcing rendering of advertisements and other predetermined media content in connection with playback of download selected media content. playback of selected media content is made conditional on acquisition of a locally cached playback token in response to playback of the predetermined content. The playback token may be implemented as a digital rights management (DRM) license acquired from a local cache in response to playback of the predetermined content. Another aspect involves a downloading ads or other predetermined content with associated playback tokens in a local cache.
|
9. A method of enforcing rendering of predetermined media content in connection with rendering selected media content to a user, said method comprising:
downloading predetermined media content to a computing device via a network connected to the computing device;
securely storing the downloaded predetermined media content in a secure cache local to the computing device;
downloading and securely storing, via the network connected to the computing device, a token associated with the downloaded predetermined media content in the secure cache local to the computing device;
downloading selected media content to the computing device via the network in response to a request for the selected media content via the computing device, said selected media content being encrypted, said selected media content being separate from the downloaded predetermined media content;
when the computing device is disconnected from the network:
rendering the predetermined media content to the user via the computing device, said rendering being enforced
securely retrieving the token from the secure cache in response to successful completion of the enforced rendering of the predetermined media content; and
decrypting the selected media content with the retrieved token in response to a successful completion of the rendering of the predetermined media content to permit the selected media content to be rendered to the user via the computing device.
13. A media player system for rendering encrypted media content to a user, said system comprising:
a playback engine for rendering the encrypted media content to a user;
a secure cache associated with the playback engine and local to the system, said cache downloading and securely storing predetermined media content and at least one token associated therewith from a network connected to the system, said predetermined media content being separate from the encrypted media content;
a content insertion engine for specifying the predetermined media content to be rendered to the user via the playback engine, said content insertion engine securely retrieving, when the system is disconnected from the network, the token associated with the predetermined media content from the secure cache local to the system in response to the playback engine rendering the predetermined media content;
a playback enforcer, receiving and responsive to the token retrieved by the content insertion engine from the secure cache local to the system, for decrypting the encrypted media content and permitting the playback engine to render the encrypted media content to the user when the system is disconnected from the network; and
wherein the playback engine is responsive to the playback enforcer for resetting playback of the predetermined media content during the rendering of the predetermined media content when the user manipulates the rendering of the predetermined media content.
1. A method of enforcing rendering of predetermined media content in connection with rendering selected media content, said method comprising:
downloading selected media content to a computing device via a network connected to the computing device, said downloading being in response to a request for the selected media content to be rendered to a user via a media player of the computing device;
downloading predetermined media content to a secure cache local to the computing device via the network in response to the request;
downloading one or more tokens to the secure cache local to the computing device via the network in response to the request;
when the computing device is disconnected from the network:
securely retrieving the predetermined media content as a function of the downloaded selected media content from the secure cache local to the computing device, said predetermined media content being separate from the selected media content;
rendering the predetermined media content to the user via the media player, said rendering being enforced, said enforced rendering comprising disabling transport controls of the media player to prevent user manipulation during said enforced rendering;
securely retrieving at least one token associated with the predetermined media content from the secure cache local to the computing device in response to successful completion of the enforced rendering of the predetermined media content;
permitting the selected media content to be rendered to the user via the computing device in response to retrieving the token associated with the predetermined media content from the secure cache local to the computing device.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
rendering the selected media content to the user via the computing device;
interrupting the rendering of the selected media content;
rendering additional predetermined media content to the user via the computing device;
securely retrieving another token from the secure cache local to the computing device in response to the rendering of the additional predetermined media content, said other token being associated with the additional predetermined media content; and
permitting the selected media content to resume rendering to the user via the computing device in response to receiving the other token from the cache local to the computing device.
8. The method of
10. The method of
11. The method of
12. The method of
receiving a playlist of the downloaded predetermined media content and additional predetermined media content via the network;
rendering the selected media content to the user via the computing device;
interrupting the rendering of the selected media content at an insertion time-point specified by a timer;
enforcing rendering of at least a portion of the additional predetermined media content to the user via the computing device based on an order specified by the received playlist;
securely retrieving another token in response to the successful completion of the enforced rendering of the portion of the additional predetermined media content, said other token being associated with the additional predetermined media content;
permitting the selected media content to resume rendering to the user via the computing device in response to the other token; and
resetting the timer to a next insertion time-point.
14. The media player system of
15. The media player system of
16. The media player system of
17. The media player system of
|
Conventional delivery of video programming involves distributing video content to users via terrestrial, cable, and satellite systems. With the advent of faster Internet connection speeds and greater bandwidth, increasing numbers of users are accessing video content online. Video on demand systems allow users to access video content over a global communications network, such as the Internet, and watch selected content on their computers, portable computing devices, and the like. Typical video on demand, or online video, services stream this video content to users over the network for viewing while the video is being transferred to their computing devices.
Much like conventional video delivery, advertising provides a major source of revenue for online video services. These online services often provide short streaming video clips with advertisements inserted at the beginning of the desired video content. Because the video stream is generated at the website's server, the online video service can exercise full control over the insertion of video ads into the stream. Moreover, the user cannot circumvent watching streaming video ads because their insertion is server-based.
A major limitation on streaming video is that the quality of the video content is limited by the bandwidth of the user's connection. This bandwidth can be quite constrained and, thus, the video quality tends to be limited. Recently, some video content providers allow users to download video content for viewing on their computing devices after completion of the download. In addition to allowing offline viewing, downloading a video file in its entirety to the user's computing device allows the user to obtain higher quality video content and, thus, improves user experience.
Although downloading video content can provide certain advantages over streaming video, it presents problems in the enforcement of ad delivery and insertion. In particular, ads that are inserted locally are much more vulnerable to circumvention by the user. Thus, the mechanism used to insert ads must be immune to circumvention by the user. Moreover, the nature of downloading content dictates that many users will desire to view content while offline. Thus, an enforcement mechanism that is operable for offline viewing is also desired.
Embodiments of the invention overcome one or more deficiencies in known online video services and media player systems by enforcing the delivery of advertisements and other predetermined media content in connection with downloaded media content. Advantageously, aspects of the invention enable such enforcement when the user is no longer online through the use of tokens cached locally to enforce playback of advertisements in an online video service. In this manner, playback of selected media content may be made conditional on retrieval of a playback token in response to playback of the predetermined ad content.
In one aspect of the invention, the playback tokens may be implemented as digital rights management (DRM) licenses in a DRM system. For example, the DRM system requires the presence of a license that is acquired in response to the playing of the predetermined media content before allowing playback of the downloaded media file selected by the user.
Computer-readable media having computer-executable instructions for enforcing ad playback in connection with downloaded video embody further aspects of the invention. Alternatively, embodiments of the invention may comprise various other methods and apparatuses.
Other features will be in part apparent and in part pointed out hereinafter.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Corresponding reference characters indicate corresponding parts throughout the drawings.
Referring now to the drawings,
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.
In
Referring further to
Aspects of the invention also include communication between the media player application 116 executed on computer 102 and one or more remote media services 118. For example, the remote media service 118 is an online video or video on demand service that provides video content such as television programs, movies, video clips, and the like for downloading and viewing by the user. In one embodiment, an online media content provider such as remote media service 118 utilizes one or more servers 108 for maintaining a catalog of available media files, that is, a remote library, in database 110. Those skilled in the art are familiar with such services from which a user may download media files and/or stream them via the Internet, usually for a monthly subscription price or on a per-file basis. For example, the remote library contains the inventory of the online media content provider.
The system 100 of
A user interface 120 associated with media player application 116 communicates information to the user and receives instructions and feedback from the user. In one embodiment, media player application 116 is responsive to user input via the user interface 120 for selecting media content from remote media service 118 for downloading to computer 102 and performing one or more media player operations. In addition to playback or transport controls, typical media player operations include, for example: displaying metadata associated with the media files; rendering, copying, or downloading selected media files; rendering samples of selected media files; assigning media files to one or more playlists; searching or sorting the media files according to their metadata or content; displaying media library contents; scrolling through the media library contents; and displaying contextual menus of available media player operations. Other user interfaces different from those described above are contemplated as within the scope of the claimed invention. Those skilled in the art are familiar with a variety of input devices that may be connected to computer 102 for receiving input via user interface 120.
The media system 100 implements ad enforcement in accordance with aspects of the invention. As described above, computer 102 executes media player application 116 for rendering one or more media files. In this instance, local library 112, which may be stored on the hard drive of computer 102 or a removable storage device associated with the computer, contains one or more media files. In addition, remote library 110 contains one or more media files. Although library 110 is remote from computer 102, its media files are accessible by media player application 116 via network 104. The system 100 operates on one or more media items selected from a collection or multiple collections (e.g., library 112 and/or library 110) of media items selected for consumption by the user. Although sometimes referred to as a playback, it is to be understood that media player application 116 may render media files not only by playing but also by other means (e.g., viewing, accessing, etc.).
Referring again to
Although described in connection with an exemplary computing system environment, aspects of the invention are operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment is not intended to suggest any limitation as to the scope of use or functionality of aspects of the invention. Moreover, the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Examples of well known computing systems, environments, and/or configurations that may be suitable for use in embodiments of the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, PoP devices, mobile telephones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
Referring next to
In one embodiment, the user selects the content file 126 from a catalog of available program media content 130 (e.g., database 110) available for download via remote media service 118. This selected content file 126 is encrypted in a manner such that a playback enforcer 132 (e.g., resident on the client) can prevent it from being played until certain conditions are met.
In addition to the selected media content 126, one or more predetermined media content files 134, such as video advertisements, are also downloaded to the user's computer 102 for rendering via playback engine 128. The ads may be randomly selected or targeted based on, for example, user information, or targeted based on the selected content. As shown in
In one embodiment, computer 102 executes computer-executable instructions implementing content insertion engine 136. As shown in
Once the content downloads are complete, the selected media content file 126 becomes available for decrypting and rendering by the playback engine 128. When the user selects the downloaded content for playback, an event is raised to the content insertion engine 136. In response to this event, content insertion engine 136 retrieves predetermined content file 134 from the ad cache 144 and sends it to playback engine 128 for rendering or otherwise instructs playback engine 128 to begin its playback. According to aspects of the invention, content insertion engine 136 also monitors the playback of predetermined content file 134 (see
As the component responsible for decrypting selected media content file 126, playback enforcer 132 will not decrypt the content file 126 until it receives it a valid playback token 140, which includes a key for decrypting the selected content 126. Those skilled in the art are familiar with several encryption/decryption schemes that are suitable for implementing aspects of the invention. Advantageously, aspects of the invention thus provide the benefits of higher quality video and the like associated with downloading media content while preventing the predetermined media content file 134 from being skipped or otherwise circumvented by the user during playback. In addition, locally caching the predetermined media content 134 and the associated token 140 allows offline ad delivery and enforcement.
In an alternative embodiment of the invention, content insertion engine 136 can interrupt the playback of content file 126 at any time to schedule an interstitial ad or the like. This causes the process to repeat from the selection and scheduling of predetermined content file 134. In other words, playback engine 128 is responsive to content insertion engine 136 for interrupting the rendering of the encrypted media content file 126 to render additional predetermined media content 134 to the user. The content insertion engine 136 acquires another token 140 from token cache 142 in response to the rendering of the additional predetermined media content 134 and playback enforcer 132 is responsive to receiving this other token 140 to permit the playback engine 128 to resume rendering the encrypted media content file 126.
It is to be understood that one or more ads or other predetermined media content files 134 may be scheduled for playback at any time relative to playback of selected media content file 126 (e.g., as bumper ads, interstitial ads, or both). In the context of audio files, for example, predetermined ad entry points may occur at selected song boundaries to enable a listening experience similar to radio.
In yet another alternative embodiment of the invention, playback token 140 may be implemented as a DRM license (see
Referring now to
It will be recognized by those skilled in the art that aspects of the invention may be implemented in a variety of software models, including an HTML application or a software add-in to an existing media player application 116. For example, the software add-in may provide a managed code plugin that has access to an object model by which it can invoke media player functions. Likewise, the HTML application may provide access to media player functions via an object model. In the HTML example, a MediaCenter.PlayMediaEx( ) method allows playback or queuing of a media file and a MediaCenter.Experience object allows the application to query and set the play rate of media. In the add-in example, a HostControl.PlayMedia( ) method and a MediaProperties class perform similar functions. This control includes the ability to set the playback rate and receive events related to reaching the end of media.
Referring further to
In another embodiment, the client enforces playback by disabling the transport controls of media player application 116 or simply requiring playback for a certain amount of time.
In yet another embodiment of the invention, the client may poll the playback engine for playback rate and playback position at some frequency (e.g., every second). If the polling reveals that the playback rate or position has changed, the client resets the rate or position to what it should be to ensure ad playback.
Aspects of the invention may also employ a time enforcement mechanism in which content insertion engine 136 does not provide the playback token 140 until a certain amount of time has elapsed (e.g., the duration of an ad being played). This effectively negates the benefits of skipping or fast forwarding through the ad.
Each time an ad plays, playback engine 128 executes an ad enforcement state machine, for example, to report this event to content insertion engine 136. The insertion engine 136, in turn, periodically reports the ad playback to a web service (e.g. externally to remote media service 118) for use in rotating the ads, generating tracking statistics, etc. Upon completion of the playback of predetermined media content 134 (or a few seconds before it ends), the client acquires token 140 from cache 142 in response to the playback event and queues the selected media content 126 for playback at 164 using, for example, the MediaCenter.PlayMediaEx method.
As described above, content insertion engine 136 can interrupt the playback of content file 126 at any time to schedule additional, interstitial ads according to an alternative embodiment of the invention. This causes the process to repeat from the selection and scheduling of predetermined content file 134. As shown in
Referring further to
The semantics described above may be enforced using, for example, a state machine that executes in the background while playback is in progress.
Referring now to
The client executed on computing device 102 and the license server 192 share a common secret and the license server 192 only issues licenses 190 to this client. In one embodiment, each license 190 has a playcount of one, which is equivalent to a “play ticket” or “token”. The client may pre-fetch a number of licenses, but does not necessarily need to store them in a DRM license store. During playback, content insertion engine 136 provides license 190 to the DRM license store to allow playback of selected media content 126.
In this embodiment, the DRM system implemented by playback enforcer 132 may make use of both root and leaf licenses, which are familiar to those skilled in the art. The root license has an absolute expiration date set to, for example, seven days. The leaf license may not have an expiration date but have a playcount of one, which only allows for playback and disables advanced rights (e.g., transfer to device, copy or burn, etc.).
In operation, computer 102 executes computer-executable instructions such as those illustrated in the figures to implement aspects of the invention. In one embodiment, computer 102 receives a request via user interface 120 for the selected media content 126 to be rendered. Executing media player application 116 (or another playback engine 128), computer 102 first renders predetermined media content 134 from cache 144. In response, a token associated with the playback of predetermined media content 134 is retrieved from cache 142, which, in turn, permits the selected media content 126 to be rendered. In an alternative embodiment, computer 102 acquires a DRM license associated with predetermined media content 134 from the cache and executes the acquired DRM license to permit playback of selected media content 126.
The exemplary operating environment illustrated in
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. The computing device includes or has access to computer storage media in the form of removable and/or non-removable, volatile and/or nonvolatile memory.
Moreover, embodiments of the invention may be implemented with computer-executable instructions organized into one or more computer-executable components or program modules. Generally, these components or modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. Aspects of the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices. 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.
The order of execution or performance of the methods illustrated and described herein is not essential, unless otherwise specified. That is, it is contemplated by the inventors that elements of the methods may be performed in any order, unless otherwise specified, and that the methods may include more or less elements than those disclosed herein. For example, it is contemplated that executing or performing a particular element before, contemporaneously with, or after another element is within the scope of the invention.
When introducing elements of the present 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.
In view of the above, it will be seen that the several objects of the invention are achieved and other advantageous results attained.
As various changes could be made in the above constructions and methods without departing from the scope of embodiments 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.
Hydrie, Aamer, Oliveira, Eduardo P., da Costa, Bruno Kraychete, Lisboa, Paulo Henrique Cavalcante
Patent | Priority | Assignee | Title |
10891633, | Apr 10 2007 | GOOGLE LLC | Refreshing content items in offline or virally distributed content |
11816683, | Apr 10 2007 | GOOGLE LLC | Refreshing content items in offline or virally distributed content |
8768757, | Feb 02 2007 | Hulu LLC | Music-centric advertising using supportive information |
9230270, | Sep 17 2010 | Hewlett-Packard Development Company, L.P. | Method and system for displaying a cached web page advertisement after the completion of a browsing session |
9355413, | Sep 30 2011 | International Business Machines Corporation | Timer-based ad placement in content retrieval applications |
9367861, | Sep 30 2011 | International Business Machines Corporation | Timer-based ad placement in content retrieval applications |
Patent | Priority | Assignee | Title |
5774170, | Dec 13 1994 | HBAC MATCHMAKER MEDIA INC | System and method for delivering targeted advertisements to consumers |
5838314, | Feb 21 1996 | Message Partners; Messager Partners | Digital video services system with optional interactive advertisement capabilities |
6035329, | Nov 25 1996 | Apple Inc | Method of securing the playback of a DVD-ROM via triggering data sent via a cable network |
6055566, | Jan 12 1998 | HANGER SOLUTIONS, LLC | Customizable media player with online/offline capabilities |
6119098, | Oct 14 1997 | PATRICE D GUYOT; LAURENT GAUTIER | System and method for targeting and distributing advertisements over a distributed network |
6463468, | Jun 01 1999 | NETZERO, INC | Targeted network video download interface |
6697944, | Oct 01 1999 | Microsoft Technology Licensing, LLC | Digital content distribution, transmission and protection system and method, and portable device for use therewith |
6698020, | Jun 15 1998 | Microsoft Technology Licensing, LLC | Techniques for intelligent video ad insertion |
6704930, | |||
6760916, | Jan 14 2000 | PARKER VISION, INC | Method, system and computer program product for producing and distributing enhanced media downstreams |
6944877, | Aug 27 1999 | Koninklijke Philips Electronics N.V. | Closed loop addressable advertising system and method of operation |
6988277, | Feb 08 2000 | PLAYMEDIA SYSTEMS, INC | System and method for advertisement sponsored content distribution |
6992728, | Jan 31 2001 | Funai Electric Co., Ltd. | Broadcast receiving system with function of on-screen displaying channel information |
6993553, | Dec 19 2000 | Sony Corporation | Data providing system, data providing apparatus and method, data acquisition system and method, and program storage medium |
7003478, | Sep 27 1999 | HESEL CO , LTD | Advertising method using software products |
7093296, | Jan 18 2002 | International Business Machines Corporation | System and method for dynamically extending a DRM system using authenticated external DPR modules |
7363278, | Apr 05 2001 | AUDIBLE MAGIC | Copyright detection and protection system and method |
7376581, | Jul 13 2000 | UNIVERSAL MUSIC GROUP, INC | System and method for providing access to electronic works |
20010014876, | |||
20010042249, | |||
20020023164, | |||
20020068525, | |||
20020097979, | |||
20020116269, | |||
20020120564, | |||
20020141584, | |||
20020146237, | |||
20020169540, | |||
20020178443, | |||
20020194151, | |||
20030012549, | |||
20030037068, | |||
20030065712, | |||
20030177490, | |||
20030204519, | |||
20040086120, | |||
20040139027, | |||
20040226034, | |||
20040226051, | |||
20040243834, | |||
20050021403, | |||
20050022019, | |||
20050086695, | |||
20050097608, | |||
20050114526, | |||
20050114896, | |||
20050131765, | |||
20050149450, | |||
20050180734, | |||
20050216763, | |||
20050227679, | |||
20050227773, | |||
20050262528, | |||
20050262546, | |||
20050278230, | |||
20050278629, | |||
20050289588, | |||
20060008256, | |||
20060021068, | |||
20060026655, | |||
20060036495, | |||
20060041638, | |||
20060059095, | |||
20060085816, | |||
20060094406, | |||
20060212347, | |||
20060259926, | |||
20070098165, | |||
20070124201, | |||
20070136742, | |||
WO3065219, | |||
WO2005057346, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 09 2006 | LISBOA, PAULO HENRIQUE CAVALCANTE | Microsoft Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017990 | /0602 | |
Jun 13 2006 | HYDRIE, AAMER | Microsoft Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017990 | /0602 | |
Jun 13 2006 | OLIVEIRA, EDUARDO P | Microsoft Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017990 | /0602 | |
Jun 13 2006 | DA COSTA, BRUNO KRAYCHETE | Microsoft Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017990 | /0602 | |
Jun 14 2006 | Microsoft Corporation | (assignment on the face of the patent) | / | |||
Oct 14 2014 | Microsoft Corporation | Microsoft Technology Licensing, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034542 | /0001 |
Date | Maintenance Fee Events |
Dec 29 2014 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Dec 20 2018 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 21 2022 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jul 05 2014 | 4 years fee payment window open |
Jan 05 2015 | 6 months grace period start (w surcharge) |
Jul 05 2015 | patent expiry (for year 4) |
Jul 05 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 05 2018 | 8 years fee payment window open |
Jan 05 2019 | 6 months grace period start (w surcharge) |
Jul 05 2019 | patent expiry (for year 8) |
Jul 05 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 05 2022 | 12 years fee payment window open |
Jan 05 2023 | 6 months grace period start (w surcharge) |
Jul 05 2023 | patent expiry (for year 12) |
Jul 05 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |