Apparatus, systems and methods for remote storage of media content events

Techniques for facilitating recording of media content events by media devices on remote storage devices are described. Some embodiments provide a remote storage manager as part of a media device, such as a set-top box. In one embodiment, the remote storage manager causes a media content event to be recorded on a remote persistent storage device by receiving the media content event from a program distributor, and then transmitting the media content event to the remote persistent storage device. In another embodiment, the remote storage manager instructs the remote persistent storage device to obtain the media content event from the program distributor, so that the remote persistent storage device can record the media content event without the media content event first being received by the remote storage manager.

BACKGROUND

A number of approaches exist for recording media content events, such as such as television shows or movies. In one approach, a device such as a set-top box includes a hard disk or other storage device that can persistently store a received media content event. However, media content events recorded on such a set-top box may not be available to remote systems, such as mobile devices. Moreover, the additional cost of including recording capabilities in a set-top box may make such devices prohibitively expensive in some markets.

In another approach, a cable broadcaster or other program distributor may provide a “remote digital video recorder,” which includes dedicated storage located at a transmission facility or otherwise remote from a customer premises. In this approach, when a user indicates a media content event to be recorded, the media content event is recorded on the dedicated storage for later retransmission to, and viewing by, the user or other viewer. However, such an approach is incapable of utilizing surplus storage capacity located on computer systems or other devices located at the customer premises.

SUMMARY

One embodiment provides a method for facilitating recording of media content events by a media device that does not itself have persistent recording capabilities. The method comprises receiving a media content event from a program distributor; causing the media content event to be recorded on a remote persistent storage device, such as by transmitting the media content event to the remote persistent storage device; and facilitating on-demand viewing of the media content event recorded on the remote persistent storage device.

In other embodiments, systems and computer-readable media having similar characteristics are provided.

DETAILED DESCRIPTION

Example embodiments described herein facilitate remote storage of media content events by media devices that may not themselves have recording capabilities.

FIG. 1is a block diagram illustrating functional elements of an example embodiment of a remote storage manager100executing as part of a media device102that is located at user premises104. The user premises104include the media device102, persistent storage106, and a client media device108, each communicatively coupled to a residential network110. The media device102is also communicatively coupled to a presentation device120. The media device102, the client media device108, and the persistent storage106are further communicatively coupled via a communications system112to a program distributor114, a client media device116, and persistent storage118. The media device102receives media content events from the program distributor114, and presents received media content events on the presentation device120. A user (or viewer)150interacts with the media device102via a remote control device122, such as by selecting media content events, adjusting the volume, and the like. Media content events may include movies, news programs, sporting events, serial comedies or dramas, and other program events that are communicated to the media device102. Media content events may include video data, audio data, text, and/or computer instructions.

The remote storage manager (“RSM”)100facilitates or manages the remote storage of media content events transmitted by the program distributor114. In some embodiments, the media device102does not have resident persistent storage capacity to store media content events, such as a DVR (“Digital Video Recorder”). That is, the media device102may not be configured to persistently record media content events. The media device102may not have persistent storage capabilities because, for example, it does not include a fixed (hard) disk drive, a DVD (“Digital Video Disk”) recorder, or other persistent storage device (e.g., Flash memory) that can be used to persistently record media content events. Media devices without persistent storage capabilities may be referred to as “non-persistent storage media devices.” Media devices with persistent storage capabilities may also be referred to as “persistent storage media device.” In such embodiments, the described techniques utilize persistent storage capabilities provided by systems or devices that are remote from the media device102, thereby providing a number of advantages, including the appearance that the media device102can record media content events, lower cost/price for the media device102(e.g., because it need not include DVR capabilities), access to recorded media content events from devices other than the media device102, use of surplus storage available on other computing devices located at the user premises104, smaller size for the media device102(e.g., because it need not include a hard disk drive), lower power requirements for the media device102, and the like.

In one embodiment, the RSM100receives an indication of a media content event provided by the program distributor114that the user150wishes to record. In response, the RSM100causes the media content event to be recorded on some remote storage system or device, such as persistent storage106or118. Later, the RSM100facilitates the on-demand viewing of the media content event recorded on the remote storage device. In this manner, the RSM100can provide recording capabilities for media devices that are not themselves capable of recording media content events for later viewing.

The persistent storage106or118can be, include, or be part of any system or device that is capable of receiving and storing media content events via some communications link, such as may be provided by the residential network110and/or the communications system112. For example, the persistent storage106may be provided as part of a personal computer (e.g., a desktop or laptop computer), a DVR system, a DVR capable set-top box, a network-accessible storage (“NAS”) system, a mobile device (e.g., a smart phone, a tablet computer), or the like. Often, persistent storage resident on such devices is largely under-utilized, and the described techniques can put such surplus storage to beneficial use.

The persistent storage118may be provided as part of a network-accessible computing system, such as a cloud-based computing system accessible via a public network (e.g., the Internet) or private network. The persistent storage118may be virtualized such that its physical location and/or configuration are transparent to the user150. Furthermore, the persistent storage118may be managed, operated, or hosted by a party or entity that is distinct from the operators of the program distributor114.

In a first example embodiment, the RSM100causes media content events to be recorded on a remote persistent storage by forwarding media content events received from the program distributor114. Initially, the user150may select a media content event to be recorded by the media device102. In response, the RSM100causes the selected media content event to be transmitted from the program distributor114to the media device102, such as by tuning to a signal that carries the selected media content event. As the selected media content event is received by the media device102, the RSM100forwards (e.g., transmit, sends) the received media content event to persistent storage106located at the user premises104and/or persistent storage118located outside of the user premises104.

In the first example embodiment, the RSM100may also translate, transform, or otherwise process media content events prior to forwarding them to persistent storage. For example, the RSM100may translate a media content event from a native format (e.g., in which it was received from a transmission network) into a translated format (e.g., that is optimized for viewing on a particular class of devices or for transmission over particular types or classes of network). The translated format may be selected so as to be suitable for viewing or transmission to a mobile device, such as by selecting a lower bitrate, higher compression ratio, smaller screen size, or the like. As another example, the RSM100may encrypt a media content event to facilitate access controls to the media content event when it is viewed at a later time. Such encryption may be performed on a media content event that was previously decrypted by the media device102as part of its access control functionality. In other cases, the RSM100forwards the encrypted media content event as received by the underlying media device102.

In a second example embodiment, the RSM100causes media content events to be recorded on persistent storage devices by causing those storage devices to obtain media content events transmitted by the program distributor114directly without first being received by the media device102. In response to an indication from the user150to record a media content event, the RSM100causes persistent storage106or118to receive the selected media content event from the program distributor114. As one example, the persistent storage106may be a DVR capable set-top box located within the user premises104. In this case, the RSM100causes the DVR capable set-top box to tune to the selected media content event at the appropriate time, and to record the media content event as it is received from the program distributor114. As another example, the persistent storage118may be a cloud computing system that provides a storage facility via the Internet. In this case, the RSM100causes the cloud computing system to receive the selected media content event from the program distributor114, such as by initiating a stream from the program distributor114to the persistent storage118.

The RSM100may include logic for determining how to cause a remote persistent storage device to record a media content event. In one embodiment, the RSM100determines whether a remote persistent storage device is configured to receive media content events from the program distributor114without first passing through the media device102. If so, the RSM100instructs the remote persistent storage device to obtain the media content event from the program distributor114. In such cases the remote persistent storage device receive and store the media content event in a native format, and may later utilize the RSM100or some other module/system to translate the media content event into a translated format suitable for viewing on a client device, if necessary. If the remote persistent storage device is not configured to receive the media content event directly, the RSM100receives the media content event from the program distributor114and then forwards the received media content event to the remote persistent storage device. The RSM100may translate or otherwise process the received media content event prior to forwarding it in translated format to the remote persistent storage device.

After the RSM100causes a media content event to be recorded on remote persistent storage, the RSM100can facilitate on-demand viewing of the recorded media content event in various ways. For example, the user150can utilize a client media device108or146to view a media content event recorded on persistent storage106or118. The user150can obtain information about recorded media content events by accessing an index or other information stored, provided, and/or transmitted by the RSM100. For example, the user150can utilize client media device108executing a Web browser or other client application to browse media content events recorded on remote persistent storage as directed by the RSM100. The RSM100can provide a URL (“Uniform Resource Locator”) or other identifier of the remote persistent storage106or118to the client media device108or146, which can then be used to access a media content event stored on the remote persistent storage106or118.

The illustrated media device102is a set-top box (“STB”). In other embodiments, the media device102is or includes a television (“TV”), a digital video disk (“DVD”) player, a DVD recorder, a game playing device, or a personal computer (“PC”). In some embodiments, the media device102includes multiple communication ports, such as a first port for receiving an RF signal (e.g., from a satellite or terrestrial broadcast system) from the program distributor114and a second port (e.g., Ethernet) for communicating with other systems via the Internet or other networks.

As noted, the media device102receives media content events from the program distributor114via the communications system112. The communications system112may include many different types of communication media, now known or later developed. Non-limiting media examples include telephony systems, the Internet, internets, intranets, cable systems, fiber optic systems, microwave systems, asynchronous transfer mode (“ATM”) systems, frame relay systems, digital subscriber line (“DSL”) systems, radio frequency (“RF”) systems, and satellite systems. The residential network110may be a local area network (e.g., an Internet Protocol network) carried over wired and/or wireless media, including twisted-pair cables, coaxial cables, fiber optics, Wi-Fi, or the like. The term “residential network” used herein does not include dedicated point-to-point transmission connections, such as a coaxial or RCA connector used to connect a DVR to a set-top box.

This described techniques are not limited to the particular architecture shown inFIG. 1. For example, all or part of the RSM100may reside on a computing system that is remote from the media device102. In one embodiment, part of the RSM100resides at a remote computing system. For example, in cases where the media device102is protected by a firewall, a computing system that is accessible via the Internet may host a Web server that provides an index of media content events recorded via the RSM100, so that a user device can access such an index from any location.

In addition, various types of program distributors140are contemplated, including broadcasters of digital and/or analog media content events, such as satellite broadcasters, over-the-air (terrestrial) broadcasters, cable systems, and the like. Also, the program distributor114may be or include interactive and on-demand systems, such as Internet video streaming or download services. Furthermore, although the examples herein are provided primarily with respect to media content events, other types of content or data formats are contemplated, including audio (e.g., music streaming, digital radio).

FIG. 2is a block diagram illustrating a first example storage scenario supported by an example embodiment. InFIG. 2, the RSM100is shown executing on a non-persistent storage media device202, which is an example of a media device102. The non-persistent storage media device202is not itself capable of recording media content events to local storage. However, the RSM100facilitates the recording of received media content events on remote persistent storage devices or systems. In this example, a multimedia storage device204, a computer206, a mobile device208, and a network storage device210, all examples of persistent storage106, are each connected to the residential network110. Furthermore, cloud storage220, an example of persistent storage118, is coupled to communications system112.

In this scenario, the RSM100facilitates remote recording by causing the non-persistent storage non-persistent storage media device202to transmit received media content events to remote persistent storage. In particular, as the non-persistent storage media device202receives program data (e.g., an MPEG stream) representing a media content event from the program distributor114, the RSM100causes the non-persistent storage media device202to transmit the received program data to one of the devices or systems204-210on the residential network110, where it is stored for later viewing. Also, or in addition, the non-persistent storage media device202may transmit received program data to the cloud storage220via the residential network110. Alternatively, the non-persistent storage media device202can transmit the received program data directly to the cloud storage220without transiting the residential network110. Later, a user operating client media device108can receive and view recorded program data from one of the devices204-210on the residential network110or the cloud storage220.

In this scenario, the RSM100may also encrypt video data prior to its transmission to remote persistent storage. Such encryption may be part of an access control mechanism, employed to restrict access to media content events to authorized users (e.g., customers of the program distributor114).

FIG. 3is a block diagram illustrating a second example storage scenario supported by an example embodiment. InFIG. 3, the RSM100is again shown executing on the non-persistent storage media device202. In this example, the RSM100facilitates the recording of received media content events on remote persistent storage devices, but does not itself engage in transmitting program data or other representation of such media content events to such storage devices. Rather, the RSM100instructs a remote persistent storage device to obtain the appropriate program data directly from the program distributor114.

More particularly, the RSM100receives an indication of a media content event from the program distributor114. Such an indication may be part of electronic program guide data or other metadata about media content events available via the program distributor114. Then, the RSM100transmits an instruction to record a specified media content event to a DVR media device310.

The DVR media device310is typically a media device similar to non-persistent storage media device202except that device310includes recording capabilities. For example, where the non-persistent storage media device202is a set-top box configured to receive (but not store) program data from a satellite broadcast network, the DVR media device310may be a set-top box also configured to receive media content events from the satellite network, and further configured to record such media content events on a hard disk or other storage device that is part of the DVR media device310.

After receiving the instruction to record of the specified media content event, the DVR media device310initiates reception (e.g., tunes to a program signal) of program data or other representation of the media content event from the program distributor114. Note that the program data received by the DVR media device310does not first transit through the non-persistent storage media device202. By using these or similar techniques, the cost of a typical residential deployment may be lowered, in that DVR capabilities provided by one set-top box can be shared with multiple other, cheaper, non-DVR set top boxes placed in other locations throughout a home (e.g., in the bedrooms).

As noted, the storage scenarios described with reference toFIGS. 2 and 3may in some embodiments be combined. For example, the RSM100may determine whether a remote persistent storage is configured to receive a media content event directly from the program distributor114(e.g., when the storage is part of a set-top box or other device having a tuner capable of receiving a satellite broadcast signal). If so, the RSM100instructs the remote persistent storage to receive the media content event directly from the program distributor114, without being first received by the RSM100or its media device. If not, the RSM100receives and forwards the media content event to remote persistent storage, such as may be provided by one of the devices204-210or310.

FIG. 4is a flow diagram of a remote storage manager process provided by an example embodiment. The illustrated process may be provided by, for example, the RSM100. The process facilitates recording of media content events by a media device on a persistent storage device that is remote from the media device.

The process begins at block402, where receives an indication of a media content event provided by a program distributor. The received indication may be, for example, an instruction to record a specified media content event received by the media device.

At block404, the process causes the media content event to be recorded on a remote persistent storage device. In one embodiment, causing the media content event to be recorded includes receiving the media content event from the program distributor, and further transmitting the received media content event to the remote persistent storage device. The remote persistent storage device may be located at or on a residential network coupled to the media device. In other cases, the remote persistent storage device may be cloud-based storage accessible via the Internet or other public network. In another embodiment, causing the media content event to be recorded includes causing the persistent storage device to obtain the media content event from the program distributor without the media content event first being received by the media device.

At block406, the process facilitates on-demand viewing of the media content event recorded on the remote persistent storage device. In one embodiment, facilitating on-demand viewing includes receiving a request to view the media content event, obtaining (e.g., receiving from the remote persistent storage device) the media content event, and then outputting (e.g., transmitting, sending) the obtained media content event on a presentation device. In some embodiments, facilitating on-demand viewing includes receiving the media content event from the remote persistent storage device, and further transmitting the media content event to another media device. In another embodiment, facilitating on-demand viewing includes transmitting information about the location of the recorded media content event, such as by transmitting a uniform resource locator or other identifier of the remote persistent storage device. This identifier can then be used by another media device to access the recorded media content event.

FIG. 5is a block diagram of a computing system for practicing example embodiments of a remote storage manager.FIG. 5shows a computing system500that may be utilized to implement a remote storage manager100. In one embodiment, the computing system500is part of a set-top box or other media device102configured to receive and display media content events on a presentation device. In other embodiments, the computing system500is part of a presentation device120, such as a television.

In the embodiment shown, the computing system500comprises a computer memory (“memory”)501, a display502, one or more Central Processing Units (“CPU”)503, Input/Output (10″) devices504(e.g., audio processor, video processor, keyboard, mouse, CRT or LCD display cards or drivers, and the like), other computer-readable media505, and network connections506(e.g., an Ethernet transceiver, a digital television tuner). The remote storage manager (“RSM”)100is shown residing in memory501. In other embodiments, some portion of the contents, some of, or all of the components of the RSM100may be stored on and/or transmitted over the other computer-readable media505. The components of the RSM100preferably execute on one or more CPUs503and facilitate recording media content events, as described herein. Other code or programs530(e.g., an audio/video processing module, a program guide manager module, a Web browser or server, and the like) and potentially other data repositories, such as data repository520, also reside in the memory501, and preferably execute on one or more CPUs503. Of note, one or more of the components inFIG. 5may not be present in any specific implementation. For example, some embodiments may not provide other computer-readable media505or a display502.

The memory also includes a user interface manager515and a remote storage application program interface (“API”)516. The user interface manager515provides a view and a controller that facilitate user interaction with the RSM100and its various components. For example, the user interface manager515provides interactive graphical user interface elements operable by a user to configure the operation of the RSM100.

The API516provides programmatic access to one or more functions of the RSM100. For example, the API516may provide a programmatic interface to one or more functions of the RSM100that may be invoked by one of the other programs530or some other module. In this manner, the API516facilitates the development of third-party software, such as user interfaces, plug-ins, news feeds, adapters (e.g., for integrating functions of the RSM100into Web applications), and the like. In addition, the API516may be in at least some embodiments invoked or otherwise accessed via remote entities, such as code executing on a remote client device, to access various functions of the RSM100. For example, an application on a mobile device may use the API516to obtain information about media content events recorded via the RSM100.

In an example embodiment, components/modules of the RSM100are implemented using standard programming techniques. For example, the RSM100may be implemented as a “native” executable running on the CPU503, along with one or more static or dynamic libraries. In other embodiments, the RSM100may be implemented as instructions processed by a virtual machine that executes as one of the other programs530. In general, a range of programming languages known in the art may be employed for implementing such example embodiments.

In addition, the embodiments described above may also be structured in various ways, including but not limited to, multiprogramming, multithreading, client-server, or peer-to-peer, running on one or more computer systems each having one or more CPUs. Some embodiments may execute concurrently and asynchronously, and communicate using message passing, pipes, signals, or other communication techniques. Also, other functions could be implemented and/or performed by each component/module, and in different orders, and by different components/modules, yet still achieve the described techniques.

Furthermore, in some embodiments, some or all of the components of the RSM100may be implemented or provided in other manners, such as at least partially in firmware and/or hardware, including, but not limited to one or more application-specific integrated circuits (“ASICs”), standard integrated circuits, controllers (e.g., by executing appropriate instructions, and including microcontrollers and/or embedded controllers), field-programmable gate arrays (“FPGAs”), complex programmable logic devices (“CPLDs”), and the like. Some or all of the system components and/or data structures may also be non-transitorily stored as contents (e.g., as executable or other machine-readable software instructions or structured data) on a computer-readable medium (e.g., as a hard disk; a memory; a computer network or cellular wireless network or other data transmission medium; or a portable media article to be read by an appropriate drive or via an appropriate connection, such as a DVD or flash memory device) so as to enable or configure the computer-readable medium and/or one or more associated computing systems or devices to execute or otherwise use or provide the contents to perform at least some of the described techniques. Some or all of the system components and data structures may also be stored as data signals (e.g., by being encoded as part of a carrier wave or included as part of an analog or digital propagated signal) on a variety of computer-readable transmission mediums, which are then transmitted, including across wireless-based and wired/cable-based mediums, and may take a variety of forms (e.g., as part of a single or multiplexed analog signal, or as multiple discrete digital packets or frames). Such computer program products may also take other forms in other embodiments. Accordingly, embodiments of this disclosure may be practiced with other computer system configurations.

It should be emphasized that the above-described embodiments of a remote storage manager are merely possible examples of implementations of the described techniques. Many variations and modifications may be made to the above-described embodiments. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.