Digital video recording (“DVR”) systems allow users to record media programs (e.g., television programs, etc.) and then view or otherwise experience the recorded media programs. For example, a user may use a DVR system to schedule a recording of a particular television program, after which the DVR system may record the television program and allow the user to play back the recorded television program in a time-shifted manner.
Unfortunately, various types of limitations associated with a DVR system may result in a recording conflict for a media program scheduled to be recorded by the DVR system. The recording conflict may prevent the DVR system from being able to perform the scheduled recording of the media program without one or more other scheduled recordings being canceled and/or without one or more other already-recorded media programs being deleted. For example, a maximum recording limitation associated with the DVR system (i.e., a maximum number of media programs that the DVR system is able to concurrently record due to hardware and/or service agreement limitations) and/or a storage space limitation may prevent the DVR system from performing a scheduled recording of a media program. In order to resolve such recording conflicts, conventional DVR systems may require that the user take remedial action (e.g., by specifically requiring that the user select which scheduled recording to cancel and/or which recorded media program to delete), which is time consuming and interruptive to the user.
The accompanying drawings illustrate various embodiments and are a part of the specification. The illustrated embodiments are merely examples and do not limit the scope of the disclosure. Throughout the drawings, identical or similar reference numbers designate identical or similar elements.
Methods and systems for resolving recording conflicts in a hybrid cloud-local DVR system are described herein. As will be illustrated below, a hybrid cloud-local DVR system may include a local DVR system located at an end-user premises and a cloud-based service provider system located remotely from (e.g., not at the end-user premises) and communicatively coupled to the local DVR system. The local DVR system may be configured to record media programs locally at the end-user premises as directed by the cloud-based service provider system. Together, the cloud-based service provider system and the local DVR system may be considered a hybrid cloud-local DVR system in which media programs are managed, as described herein, by the cloud-based service provider system as part of a cloud service but are recorded and stored locally by a local DVR system at the end-user premises as directed by the cloud-based service provider system. The methods and systems described herein may efficiently manage how the local DVR system records media programs and maintains locally recorded media programs when there are conflicts associated with the recording of additional media programs.
As used herein, the term “media program” may refer to any television program, on-demand media program, pay-per-view media program, broadcast media program (e.g., live broadcast television program), multicast media program (e.g., multicast television program), narrowcast media program (e.g., narrowcast video-on-demand program), Internet Protocol television (“IPTV”) media program, advertisement, video, movie, audio program, radio program, video clip, audio clip, user-generated audio program, user-generated video program, or any other media program or audio-video program that may be streamed to and recorded by a local DVR system.
In some embodiments, a cloud-based service provider system remote from and communicatively coupled to a local DVR system by way of a network (e.g., the Internet) is configured to detect an input command provided by a user (e.g., an end user of a media service provided by the cloud-based service provider system and the local DVR system) during a scheduling session and representative of a request for the local DVR system to record a media program during a presentation time period. The cloud-based service provider system may identify a conflict associated with the request for the local DVR system to record the media program. In response to the identification of the conflict, the cloud-based service provider system may perform a prioritization operation to determine a relative priority of media programs that are at least one of scheduled to be recorded by the local DVR system at any given time during the presentation time period and currently recorded in a memory of the local DVR system. Based on the performance of the prioritization operation, the cloud-based service provider system may automatically perform a predetermined action to resolve the conflict and facilitate the local DVR system recording the media program.
For example, if the cloud-based service provider system determines that the maximum number of media programs that are already scheduled to be concurrently recorded by the local DVR system at any given time during the presentation time period is equal to a maximum-number-of-streams limitation associated with the local DVR system, the cloud-based service provider system may perform a prioritization operation to prioritize the media programs. Based on the prioritization operation, the cloud-based service provider system may automatically perform a predetermined action to resolve the conflict. For example, the cloud-based service provider system may cancel one of the scheduled recordings. This may include canceling one of the already-scheduled recording and scheduling the media program for recording by the local DVR system. Conversely, if the cloud-based service provider system determines that the maximum number of media programs that are already scheduled to be concurrently recorded by the local DVR system at any given time during the presentation time period is less than the maximum-number-of-streams limitation, the cloud-based service provider system may schedule the media program for recording by the local DVR system without canceling any of the already-scheduled recordings.
Additionally or alternatively, if the cloud-based service provider system determines that a maximum amount of storage space of the local DVR system will be exceeded as a result of the recording of the media program, the cloud-based service provider system may perform a prioritization operation to prioritize the media programs already stored in a memory of the local DVR system. Based on the prioritization operation, the cloud-based service provider system may automatically perform a predetermined action to resolve the conflict. For example, the cloud based service provider system may automatically delete one of more of the stored media programs from the memory of the local DVR system and schedule the media program for recording by the local DVR system. Conversely, if the cloud-based service provider system determines that the maximum amount of storage space will not be exceeded, the cloud-based service provider system may schedule the media program for recording by the local DVR system without deleting one or more of the already-stored media programs from the memory of the local DVR system.
The methods and systems described herein may provide automated conflict resolution when a user attempts to schedule a recording of a media program by a local DVR system. This may ensure that the local DVR system will actually be able to record the media program when it comes time for the media program to be recorded (e.g., when the media program is to be streamed during a presentation time period), while also reducing any potentially unwanted effects that may be caused by recording the media program when a recording conflict exists. For example, methods and systems described herein may detect a recording conflict and facilitate automatic performance of a remedial action that prioritizes scheduled recordings and/or stored recordings of media programs and cancels relatively lower priority scheduled recordings and/or deletes relatively lower priority stored recordings to make available sufficient resources to support a recording of the media program by the local DVR system when a recording conflict is detected.
In addition, because the methods and systems described herein use a hybrid cloud-local DVR system, more information regarding, for example, a user's access to and/or consumption of media content is accessible than would otherwise be accessible through conventional DVR systems. For example, a hybrid cloud-local DVR system may be able to access information associated with the user from various different sources such as media player devices, media content access systems, service providers, etc. The various different sources may be either internal or external to the hybrid cloud-local DVR system. The methods and systems described herein may use such information in any suitable manner, such as described herein, to provide automated conflict resolution when a user attempts to access and/or record a media program through a local DVR system. By using such information to prioritize media programs as described herein, the hybrid cloud-local DVR system may effectively reduce or prevent any unwanted effects that may be caused by automatic performance of a remedial action to resolve a recording conflict.
Network 106 may include one or more wide area networks (e.g., the Internet), wireless communication networks, mobile telephone networks (e.g., cellular telephone networks), closed media networks, open media networks, subscriber television networks, and/or any other networks capable of carrying data (e.g., media streams) and/or communications signals. Cloud-bases service provider system 102 and television service provider system 108 may be connected to network 106 in any suitable way. Local DVR system 104 may also be connected to network 106 in any suitable way, such as by way of router 110 and local area network 112, and thereby communicate with cloud-based service provider system 102 and/or television service provider system 108. Local area network 112 may include any suitable network that connects network-enabled devices within end-user premises 114. For example, local area network 112 may include a wired and/or wireless network (e.g., an Ethernet network and/or a Wi-Fi network) provided by router 110.
Cloud-based service provider system 102, local DVR system 104, television service provider system 108, and router 110 may communicate one with another using any communication platforms and technologies suitable for transporting data (e.g., media streams) and/or communication signals, including known communication technologies, devices, media, and protocols supportive of remote communications, examples of which include, but are not limited to, data transmission media, communications devices, Internet Protocol (“IP”), Transmission Control Protocol (“TCP”), User Datagram Protocol (“UDP”), Hypertext Transfer Protocol (“HTTP”), Hypertext Transfer Protocol Secure (“HTTPS”), Real-Time Transport Protocol (“RTP”), Session Initiation Protocol (“SIP”), Simple Object Access Protocol (“SOAP”), Extensible Mark-up Language (“XML”) and variations thereof, radio frequency (“RF”) signaling technologies, Code Division Multiple Access (“CDMA”) technologies, Global System for Mobile Communications (“GSM”) technologies, Time Division Multiple Access (“TDMA”) technologies, Short Message Service (“SMS”), Multimedia Message Service (“MMS”), wireless communication technologies, Internet communication technologies, media streaming technologies, media download technologies, and other suitable communications technologies.
Cloud-based service provider system 102 may provide a cloud service that manages local DVR system 104 and/or with which an end user of the cloud service may interact with cloud-based service provider system 102 to manage local DVR system 104. The cloud service may include any suitable network-based service capable of performing the management operations described herein. The cloud service may manage media programs that are stored and/or scheduled to be stored by local DVR system 104. For example, the recording of the media programs may be scheduled through the cloud service, media programs may be deleted or undeleted through the cloud service, and/or media programs may be protected by the cloud service such that only authorized users can access the media programs. Cloud-based service provider system 102 may be associated with (e.g., maintained and/or provided by) any suitable entity (e.g., a television service provider that is also associated with television service provider system 108, a third party entity not associated with television service provider system 108, a network service provider, etc.). Exemplary components of cloud-based service provider system 102 will be described below.
Television service provider system 108 may provide a television service for access by one or more users (e.g., a user associated with user premises 114). The television service may include a subscription television service and/or any other television service that provides access to television programming. For example, television service provider system 108 may transmit media streams (e.g., IPTV streams) to local DVR system 104 by way of network 106. Television service provider system 108 may be associated with (e.g., maintained and/or provided by) a television service provider and/or any other entity as may serve a particular implementation.
Cloud-based service provider system 102 and television service provider system 108 are shown in
Router 110 may include any suitable network communication device that may be located within user premises 114 and that may receive and distribute media streams provided by television service provider system 108 to local DVR system 104. Router 110 may include, for example, a broadband home router configured to receive IPTV streams from television service provider system 108 via network 106 and distribute the IPTV streams to local DVR system 104 via local area network 112. In certain examples, router 110 may be configured to receive and/or distribute no more than a predetermined number of media streams (e.g., IPTV streams) at a given time (e.g., due to hardware, firmware, and/or software limitations of router 110).
Local DVR system 104 may include any device or combination of devices that may be located at an end-user premises as may suit a particular implementation. In certain examples, local DVR system 104 may be implemented by a local DVR device (e.g., a stand-alone, dedicated local DVR device) located at an end-user premises (e.g., end-user premises 114). For example, local DVR system 104 may include a local DVR device that is separate from and communicatively coupled to one or more media player devices (e.g., a set-top-box (“STB”) device) and/or other devices at the end-user premises. To illustrate, local DVR system 104 may include a local DVR device that is located in a first room at an end-user premises (e.g., end-user premises 114), a first media player device located in a second room at the end-user premises, and a second media player device located in a third room at the end-user premises.
A local DVR device may include any suitable computing device or combination of computing devices configured to receive and record media streams received by any of the devices included in or communicatively coupled to local DVR system 104. Accordingly, a local DVR device may provide DVR functionality to a media player device, even if the media player device does not have its own DVR storage capabilities. For example, a user of a media player device may provide a request for the media player device to play back a media program recorded by local DVR system 104. In response to the request, cloud-based service provider system 102 may direct a local DVR device that is separate from and communicatively coupled to the media player device (e.g., by way of local area network 112) to transmit a media stream that includes the recorded media program to the media player device for playback by the media player device.
A media player device may include one or more computing devices configured to receive a media stream and present the media stream by displaying video content (e.g., a video component of a media program) included in the media stream on a display screen and/or playing audio content (e.g., an audio component of a media program) included in the media stream with an audio speaker. For example, a media player device may include a set-top box device, a computer, a tablet computer, a smart phone device, a gaming console, and/or any other type of computing device capable of receiving and presenting media streams. In some examples, a media player device may be IP-based (i.e., a media player device configured to receive and present IPTV streams). As will be described below, in certain examples a media player device may not have its own DVR storage capabilities.
Alternatively, in certain examples, local DVR system 104 may be incorporated in a media player device. For example, local DVR system 104 may be incorporated in a STB device located at end-user premises 114.
In certain examples, local DVR system 104 may include or be communicatively coupled to a display screen. The display screen may be configured to display media content included in media streams received and processed by a media player device that may be included in or communicatively coupled to local DVR system 104. The display screen may be separate from and communicatively connected to the media player device. For example, a display screen may include a television or a computer monitor separate from and connected to a STB device. Alternatively, a display screen may be integrated into a media player device. For example, a display screen may include a screen that is a part of a tablet computer.
Local DVR system 104 may include any system local to user premises 114 and configured to record media programs provided by a television service. For example, local DVR system 104 may include an IPTV processing system configured to receive and record IPTV streams provided by television service provider system 108 as part of an IPTV service.
In some examples, local DVR system 104 may be capable of concurrently receiving and recording no more than a maximum number of media streams (i.e., media programs) at any given time. This maximum number may be referred to as a “maximum-number-of-streams limitation” of the local DVR system 104. In some examples, the maximum-number-of-streams limitation is determined by hardware capabilities of local DVR system 104 (e.g., local DVR system 104 may only have a certain number of tuners or other hardware configured to concurrently receive and record media content streams). Additionally or alternatively, the maximum-number-of-streams limitation may be determined by hardware capabilities of router 110 (e.g., router 110 may be configured to process no more than a certain number of media content streams at a given time). Additionally or alternatively, the maximum-number-of-streams limitation may be determined by a service agreement that governs an operation of local DVR system 104. For example, a user of local DVR system 104 may subscribe to a DVR service that specifies that local DVR system 104 may concurrently receive and record no more than a specified number of media streams.
Local DVR system 104 may additionally or alternatively have a predetermined amount of storage space that may be used to store recorded media programs. This storage space limitation may be determined by hardware capabilities of local DVR system 104 (e.g., local DVR system 104 may be configured to record media programs to a hard drive or other storage medium that has a particular amount of storage space available for media program recordings). Additionally or alternatively, the storage space limitation may be determined by a service agreement that governs an operation of local DVR system 104. For example, a user of local DVR system 104 may subscribe to a DVR service that specifies that local DVR system 104 may store no more than a predetermined amount of data representative of recorded media programs.
Storage facility 206 may store detection data 208 generated and/or used by detection facility 202 and prioritization data 210 generated and/or used by DVR management facility 204. Storage facility 206 may store additional or alternative data as may serve a particular implementation.
Data stored by storage facility 206 may be accessed by cloud-based service provider system 102 from any suitable source, including a source internal or external to cloud-based service provider system 102. Storage facility 206 may permanently or temporarily store data. In certain examples, cloud-based service provider system 102 may access certain data from a source external to cloud-based service provider system 102 and temporarily store the data in storage facility 206 for use by detection facility 202 and/or DVR management facility 204. In certain examples, data generated by detection facility 202 and/or DVR management facility 204 may be stored permanently or temporarily to storage facility 206.
Detection facility 202 may detect an input command provided by a user and representative of a request for a local DVR system (e.g., local DVR system 104) to perform a DVR operation with respect to a media program provided by a television service. As used herein, a “DVR operation” refers to a recording operation, a playback operation, a delete operation, and/or any other suitable operation as may serve a particular implementation. For example, the request may include a request for a local DVR device included in the local DVR system to record the media program. As another example, the request may include a request for a media player device included in the local DVR system to play back the media program.
Detection facility 202 may detect the input command provided by the user and representative of the request for the local DVR system to perform the DVR operation in any suitable manner. For example, detection facility 202 may detect the input command by receiving the input command from a media player device or a local DVR device. To illustrate, a user may provide the input command by using a remote control device to transmit the input command to the media player device. The media player device may relay or otherwise transmit the input command to detection facility 202 by way of local area network 112 and network 106 without performing the DVR operation represented by the input command.
As another example, detection facility 202 may detect the input command by receiving the input command directly from a remote control device and/or any other computing device not included in local DVR system 104. To illustrate, a user may provide the input command by utilizing a remote control device. The remote control device may be configured to transmit the input command directly to cloud-based service provider system 102 (e.g., by way of networks 112 and 106) while bypassing local DVR system 104. Detection facility 202 may detect the input command by receiving the input command transmitted from the remote control device. It will be recognized that the input command may alternatively be provided by an application executed by a mobile device utilized by the user, a web-based application accessed by way of a computing device, and/or any other source as may serve a particular implementation.
In some examples, detection facility 202 may detect an input command provided by a user during a scheduling session and representative of a request for the local DVR system to record a media program during a presentation time period. In certain examples, the request may be for the local DVR system to record the media program at some point in the future with respect to when the input command is provided. Alternatively, the request may be for the local DVR system to record the media program at the time (e.g., immediately) that the user provides the input command.
DVR management facility 204 may, in response to the detection of the input command, identify a conflict associated with the request for a local DVR system (e.g., local DVR system 104) to record the media program in any suitable manner. The conflict may include any conflict or combination of conflicts that may prevent the local DVR system from recording a media program. For example, the conflict may include a maximum-number-of-streams conflict and/or a maximum storage space conflict.
To illustrate an example of identifying a maximum-number-of-streams conflict, DVR management facility 204 may identify a maximum number of media programs other than the media program and that are already scheduled to be concurrently recorded by the local DVR system at any given time during the presentation time period. To this end, DVR management facility 204 may identify a plurality of time slots included in the presentation time period. The plurality of time slots may be defined by start and stop times of the media program and a plurality of media programs already scheduled to be recorded during at least a portion of the presentation time period. DVR management facility 204 may then determine recording counts for the plurality of time slots, the recording counts each representative of a total number of media programs included in the plurality of media programs and that are scheduled to be recorded during each of the plurality of time slots. DVR management facility 204 may then identify a particular recording count included in the recording counts and that is greater than a remainder of the recording counts and designate the particular recording count as the maximum number of media programs other than the media program and that are already scheduled to be concurrently recorded by the local DVR system at any given time during the presentation time period.
To illustrate,
As mentioned, the start and stop times of the media programs scheduled to be recorded by the local DVR system define a plurality of time slots. For example, the time slots may be defined by sequential and adjacent points in time that correspond to either start or stop times of the media programs. For example,
To illustrate, Table 1 below shows the start and end times for each time slot included within the presentation time period of the media program labeled “Rec” (i.e., each time slot between times 15:00 and 18:15). As shown, DVR management facility 204 may identify the media programs that are scheduled to be presented during each time slot (i.e., that overlap with each time slot) and generate a “recording count” for each time slot that indicates how many media programs are scheduled for recording during each time slot. For example, during the first time slot included in the presentation time period (i.e., the time slot that has a start time of 15:00 and an end time of 15:15), DVR management facility 204 may determine that five media programs are being concurrently recorded during the first time slot (i.e., media programs P1, P2, P3, P11, and P4).
Once DVR management facility 204 has determined the recording count for each time slot included in the presentation time period, DVR management facility 204 may identify the highest recording count and designate the highest recording count as the maximum number of media programs that are scheduled to be concurrently recorded by the local DVR system at any given time during the presentation time period. For example, in the present example, the highest recording count is six, which occurs in both the sixth and eighth time slots listed in Table 1.
DVR management facility 204 may determine whether the maximum number of media programs that are scheduled to be concurrently recorded by the local DVR system at any given time during the presentation time period equals the maximum-number-of-streams limitation of the local DVR system.
For example, continuing with the present example, if the maximum-number-of-streams limitation (which may be determined by DVR management facility 204 in any suitable manner) of the local DVR system is six, DVR management facility 204 may determine that the maximum number of media programs that are scheduled to be concurrently recorded by the local DVR system at any given time during the presentation time period equals the maximum-number-of-streams limitation of the local DVR system. In response, DVR management facility 204 may automatically perform various actions. For example, DVR management facility 204 may perform a prioritization operation to determine which of the streams to cancel to facilitate recording the media program during the presentation time period. Exemplary prioritization operations are described herein.
Alternatively, if the maximum-number-of-streams limitation of the local DVR system is seven, DVR management facility 204 may determine that the maximum number of media programs that are already scheduled to be concurrently recorded by the local DVR system at any given time during the presentation time period is less than the maximum-number-of-streams limitation of the local DVR system. In response, DVR management facility 204 may schedule the media program labeled “Rec” for recording by the local DVR system without canceling any of the recordings of other media programs that are already scheduled to be recording during at least a portion of the presentation time period.
In certain examples, DVR management facility 204 may identify a maximum number of streams conflict that includes a combination of media programs that are concurrently recorded by the local DVR device and media programs that are concurrently streamed by one or more media player devices during a presentation time period. For example, DVR management facility 204 may determine that the local DVR device is concurrently receiving and recording five media programs at the same time that a media player device at the end-user premises (e.g., end-user premises 114) is receiving and presenting a sixth media program. If the maximum-number-of-streams limitation associated with the local DVR system is six, DVR management facility 204 may automatically perform a prioritization operation to determine which of the streams associated with the six media programs to cancel so that the local DVR device may record the media program that is the subject of the request.
In some examples, DVR management facility 204 may identify a conflict based on an amount of available storage space in a memory of a local DVR system. For example, DVR management facility 205 may determine at any suitable time (e.g., during the scheduling session or afterwards) whether the local DVR system will have enough storage space available to record the media program during the presentation time period.
DVR management facility 204 may determine whether a local DVR system (e.g., local DVR system 104) will have enough storage space available to record the media program during the presentation time period in any suitable manner. For example, DVR management facility 204 may compare the amount of content currently stored in the memory of the local DVR system to the amount of memory required to record the media program. To illustrate,
Additionally or alternatively, DVR management facility 204 may determine a first storage space amount required to record the media program, determine a second storage space amount required to record all other media programs already scheduled to be recorded by the local DVR system prior to and during the presentation time period, determine an available storage space amount for the local DVR system at a time that the input command is detected, and determine whether the available storage space amount minus the second storage space amount is equal to or greater than the first storage space amount. For example, DVR management facility 204 may determine that 5 GB of storage space will be required to record the media program, and that 50 GB of storage space will be required to record all other media programs already scheduled to be recorded by the local DVR system prior to and during the presentation time period of the media program. DVR management facility 204 may also determine that the local DVR system has only 52 GB of storage space available when the user provides the input command to record the media program. Based on this data, DVR management facility 204 may determine that the local DVR system is 3 GB short of being able to record the media program (i.e., the local DVR system does not have enough storage space to record the media program during the presentation time period).
DVR management facility 204 may determine the storage space amounts required to store media programs in any suitable manner. For example, DVR management facility 204 may determine the first and second storage space amounts by accessing metadata (which may be maintained by the television service provider or another entity) associated with the various media programs scheduled for recording and that indicates a size of the media programs. Additionally or alternatively, DVR management facility 204 may estimate the storage space requirements based on a temporal length of each of the media programs (e.g., a temporal length of a presentation time period of each of the media programs).
In certain examples, DVR management facility 204 may identify a plurality of conflicts associated with the request for a local DVR system to record a media program. For example, DVR management facility 204 may identify that a first conflict and a second conflict are both associated with the request to record the media program. When there is a plurality of conflicts, DVR management facility 204 may perform a first prioritization operation to resolve the first conflict and a second prioritization operation to resolve the second conflict. To illustrate, DVR management facility 204 may determine that a maximum-number-of-streams limitation will be exceeded at some point during the presentation time period of the media program. Accordingly, DVR management facility 204 may determine that there is a maximum-number-of-streams conflict associated with the request to record the media program. In addition, DVR management facility 204 may determine that there is not enough storage space in the memory of the local DVR system to record the media program during the presentation time period. Accordingly, in such an example, DVR management facility 104 may also determine that there is a maximum storage space conflict associated with the request to record the media program. In such an example, DVR management facility 204 may perform one or more prioritization operations to first facilitate resolving the maximum-number-of-streams conflict. Afterwards, DVR management facility 204 may perform one or more additional prioritization operations to facilitate resolving the maximum storage space conflict. Alternatively, DVR management facility 204 may resolve the maximum storage space conflict prior to resolving the maximum-number-of-streams conflict. Exemplary prioritization operations will now be described.
In response to identification of a conflict, DVR management facility 204 may perform a prioritization operation to determine a relative priority of media programs that are at least one of scheduled to be recorded by the local DVR system at any given time during the presentation time period and currently recorded in a memory of the local DVR system. The prioritization operation may include any number or combination of prioritization operations as may suit a particular implementation.
DVR management facility 204 may perform the prioritization operation in any suitable manner. For example, DVR management facility 204 may perform a prioritization operation to determine a relative priority of the media programs. After DVR management facility 204 performs the prioritization operation, DVR management facility 204 may determine that the prioritization operation results in a prioritization of the media programs that will facilitate resolving the conflict and recording the media program. If the prioritization operation results in a prioritization of the media programs that will facilitate resolving the conflict, DVR management facility 204 may refrain from performing additional prioritization operations.
In examples where the conflict is associated with a maximum-number-of-streams limitation, the prioritization operation may include, for example, determining the relative priority based on a content type characteristic of each of the media programs scheduled to be recorded by the local DVR system at any given time during the presentation time period, determining the relative priority of the media programs based on a user watch history, and/or determining the relative priority of the media programs based on recency data (e.g., how long ago the user scheduled the recording of each of the media programs).
A content type characteristic of a media program may include any characteristic of a media program and/or a media stream that includes the media program. For example, a content type characteristic may include information identifying a type of stream as a live event stream, a new episode stream, a repeated episode stream, a new movie stream, a regular movie stream (e.g., not a new movie stream), a pay-per-view stream, a video-on-demand stream, etc. These examples are illustrative only. Additional or alternative content type characteristics may be determined by DVR management facility 204 in other implementations. DVR management facility 204 may prioritize the content type characteristics in any suitable manner with respect to each other to facilitate prioritizing the media programs. For example, a new episode stream may be prioritized over a repeated episode stream and a new movie stream may be prioritized over a regular movie stream. In certain examples, the content type characteristics may have a predefined order of priority. To illustrate, in certain examples, DVR management facility 204 may prioritize the content type characteristics in the following order of decreasing priority: live events; new episodes; new movies; repeated episodes; and regular movies.
A user watch history may include any information regarding a user's consumption of media programs. For example, a user watch history may indicate what types of media programs (e.g., genre, category, etc.) the user typically consumes, when the user typically consumes the media programs, whether the user has consumed particular media programs previously, and/or any other suitable information. DVR management facility 204 may access the user watch history from any suitable source and in any suitable manner. In certain examples, storage facility 206 may maintain user watch history information as part of detection data 208 to be used for any suitable purpose, such as described herein.
In examples where the conflict is associated with a maximum local data storage capacity, the prioritization operation may include, for example, determining whether a relatively lower definition version (e.g., a standard definition (“SD”) version as opposed to a high definition (“HD”) version) of the media program is available, determining, based on a user watch history, whether at least one media program already stored in the memory of the local DVR system has not been consumed (e.g., viewed) by the user, determining, based on the user watch history, which of the media programs already stored in the memory of the local DVR system have a relatively lower priority to the user, determining the relative priority based on a user profile associated with the local DVR system, and/or determining how long each of the media programs have been stored in the memory of the local DVR system.
DVR management facility 204 may determine the relative priority based on a user profile in any suitable manner. For example, media programs that are recorded by a plurality of user profiles associated with the local DVR system may be prioritized over media programs that were recorded by only one user profile. Additionally or alternatively, media programs recorded by certain user profiles may have a higher priority than media programs recorded by other user profiles. For example, media programs recorded by a user profile of a parent may have a higher priority than media programs recorded by a user profile of a child.
In certain examples, DVR management facility 204 may perform at least one prioritization operation included in a series of sequential prioritization operations to determine a relative priority of media programs that are at least one of scheduled to be recorded by the local DVR system at any given time during the presentation time period and currently recorded in a memory of the local DVR system. For example, DVR management facility 204 may perform a first prioritization operation included in the series of sequential prioritization operations to determine a first relative priority of the media programs. After DVR management facility 204 performs the first prioritization operation, DVR management facility 204 may determine that the first prioritization operation does not result in a prioritization that will facilitate resolving the conflict and recording the media program. In response to the determination that the first prioritization operation does not result the prioritization that will facilitate resolving the conflict and recording the media program, DVR management facility 204 may perform a second prioritization operation to determine a second relative priority of the media programs. In certain examples, DVR management facility 204 may determine that the second prioritization operation does not result in a prioritization that will facilitate resolving the conflict and recording the media program. In response to the determination that the second prioritization operation does not result the prioritization that will facilitate resolving the conflict and recording the media program, DVR management facility 204 may perform a third prioritization operation to determine a third relative priority of the media programs. DVR management facility 204 may perform as many prioritization operations (e.g., a fourth prioritization operation, a fifth prioritization operation, etc.) as may suit a particular implementation.
In certain examples, DVR management facility 204 may refrain from performing additional prioritization operations included in the series of sequential prioritization operations when the first prioritization operation facilitates resolving the conflict and recording the media program. Exemplary series of sequential prioritization operations are described herein.
In certain examples, DVR management facility 204 may perform the prioritization operation based on a combination of a plurality of weighted values associated with media programs. For example, DVR management facility 204 may assign a plurality of weighted values to each of the media programs that are at least one of scheduled to be recorded by the local DVR system at any given time during the presentation time period and currently recorded in the memory of the local DVR system. The plurality of weighted values may be associated with any of the prioritization operations described herein. DVR management facility 204 may assign the plurality of weighted values in any suitable manner. For example, DVR management facility 204 may assign a first weighted value, a second weighted value, and a third weighted value to a first media program. In addition, DVR management facility 204 may assign a fourth weighed value, a fifth weighted value, and a sixth weighted value to a second media program. After DVR management facility 204 assigns the plurality of weighted values, DVR management facility 204 may sum the plurality of weighted values of each media program included in the media programs to determine a cumulative priority value for each of the media programs. Based on the sum of the plurality of weighted values, DVR management facility 204 may determine that the first media program included in the media programs has a relatively lower cumulative priority value than the second media program.
Based on the prioritization operation, DVR management facility 204 may automatically perform a predetermined action to resolve the conflict and facilitate the local DVR system recording the media program. DVR management facility 204 may automatically perform a predetermined action in any suitable manner. As used herein, “automatically perform” means that the predetermined action is performed without requiring additional input from the user (e.g., without the user having to select a scheduled stream to cancel and/or without the user having to select one or more media programs to delete from the memory of the local DVR system). In certain examples, DVR management facility 204 may automatically perform the predetermined action to resolve the conflict without providing a notification to the user.
DVR management facility 204 may automatically perform the predetermined action at any suitable time. In certain examples, DVR management facility 204 may automatically perform the predetermined action immediately upon receipt of the request from the user to record the media program and identification of a conflict. Alternatively, DVR management facility 204 may automatically perform the predetermined action at any time prior to the scheduled recording time of the media program (i.e., prior to the presentation time period). In certain examples, DVR management facility 204 may wait until the presentation time period is about to begin before DVR management facility 204 performs the predetermined action.
The predetermined action may include any action that facilitates recording of the media program by the local DVR system. For example, the predetermined action may include canceling a scheduled recording of one or more media programs, rescheduling a scheduled recording of one or more media programs, finding a different version (e.g., an SD version instead of an HD version) of the media program, and/or deleting one or more media programs currently stored in a memory of local DVR system 104. These predetermined actions are illustrative only. Other predetermined actions may be automatically performed by DVR management facility 204 in other implementations.
In step 508, cloud-based service provider system 102 determines whether there is a conflict associated with the recording of the media program in response to receiving the request transmitted in step 506. Cloud-based service provider system 102 may determine whether there is a conflict in any of the ways described herein.
In step 510, cloud-based service provider system 102 performs a prioritization operation. Cloud-based service provider system 102 may perform the prioritization operation in any of the ways described herein.
In step 512, cloud-based service provider system 102 automatically performs a predetermined action to resolve the conflict. Step 512 may be performed in any suitable manner.
In step 514, cloud-based service provider system 102 determines that local DVR device 502 is to begin recording the media program in response to the request. Step 514 may be performed in any suitable manner.
In step 516, cloud-based service provider system 102 transmits a recording command to local DVR device 502 for local DVR device 502 to begin (e.g., immediately begin) recording the media program. Step 516 may be performed in any suitable manner.
In step 518 and in response to receiving the recording command, local DVR device 502 begins receiving and recording the media stream that includes the media program. For example, local DVR device 502 may tune to a channel that carries the media stream and/or otherwise begin receiving and recording the media stream as may serve a particular implementation.
In step 602, detection facility 202 detects a request for a local DVR device included in the local DVR system at an end-user premises (e.g., end-user premises 114) to record a media program. The request may be detected in any of the ways described herein.
In decision block 604, DVR management facility 204 determines whether there is a number of streams conflict associated with the request to record the media program. For example, DVR management facility 204 may determine that a DVR device and/or one or more other media player devices located at the user premises are already receiving and recording a maximum number of media streams that are allowed to be concurrently recorded based on a maximum-number-of-streams limitation of a router (e.g., router 110) and/or the local DVR system.
If there is not a number of streams conflict when the request is detected (No; decision block 604), DVR management facility 204 directs the local DVR device to receive and record the media stream including the media program that is the subject of the request (step 606).
If there is a number of streams conflict when the request is detected (Yes; decision block 604), DVR management facility 204 prioritizes the media streams scheduled to be recorded during the presentation period based on content type (step 608). For example, DVR management facility 204 may identify a content type for each of the media streams scheduled to be recorded during the presentation time period and prioritize the media streams according to a predefined content type characteristic priority order, such as described herein.
In decision block 610, DVR management facility 204 determines whether the content type prioritization is sufficient to resolve the conflict. For the content type prioritization to be sufficient to resolve the conflict, at least one media program included in the media streams scheduled to be recorded during the presentation time period has to have a relatively lower priority than the other media programs included in the media streams scheduled to be recorded during the presentation time period.
If the content type prioritization is sufficient to resolve the conflict (Yes: decision block 610), DVR management facility 204 selects a media stream to cancel that has a relatively lower priority. For example, six media programs may already be scheduled to be recorded during the presentation time period when the request is detected. Five of the six media programs may correspond to live sporting events and one of the six media programs may correspond to a repeated episode of a television program. Because the repeated episode program has a lower priority than a live event, DVR management facility 204 may select to cancel the media stream that includes the repeated episode of the television program. DVR management facility 204 may then direct the local DVR device to receive and record the media stream that includes the requested media program in place of the canceled media stream (step 614).
If the content type prioritization is not sufficient to resolve the conflict (No; decision block 610), DVR management facility 204 prioritizes the media streams scheduled to be recorded during the presentation time period based on a user watch history (step 616). For example, the user watch history may indicate that the user watches and records more sports programs than movies and/or other types of content. Accordingly, based on such a user watch history, DVR management facility 204 may assign a higher priority to sports programs than the other types of content.
In decision block 618, DVR management facility 204 determines whether the watch history prioritization is sufficient to resolve the conflict by determining whether at least one of the media streams scheduled to be recorded during the presentation time period has a relatively lower priority than the other media streams.
If the watch history prioritization is sufficient to resolve the conflict (Yes; decision block 618), DVR management facility 204 selects a media stream to cancel that has a relatively lower priority (step 620). For example, DVR management facility 204 may select a stream that includes an episode of a television show to cancel if the user watch history indicates that the user watches and records more sports programs than episodic media programs. DVR management facility 204 then directs the local DVR device to receive and record the media stream that includes the requested media program in place of the canceled media stream (step 622).
If the watch history prioritization is not sufficient to resolve the conflict (No; decision block 618), DVR management facility 204 prioritizes the media streams based on recency data (step 624). For example, DVR management facility 204 may assign a relatively lower priority to media programs that were scheduled to be recorded a week ago than media programs that were scheduled to be recorded yesterday.
In step 626, DVR management facility 204 cancels the oldest scheduled stream (i.e., the stream with the longest time period between when the user requested to record the media program included in the stream and the presentation time period) in order to facilitate recording of the media program during the presentation time period. DVR management facility 204 then directs the local DVR device to receive and record the media stream including the requested media program in place of the canceled media stream (step 628).
In step 702, detection facility 202 detects a request for a local DVR device included in a local DVR system at an end-user premises to record a media program. The request may be detected in any of the ways described herein.
In decision block 704, DVR management facility 204 determines whether there is a storage space conflict associated with the request to record the media program, which occurs when the local DVR device does not or will not have sufficient storage space to store the media program that is the subject of the request. This may be accomplished in any of the way described herein.
If there is not a storage space conflict (No; decision block 704), DVR management facility 204 directs the local DVR device to record the media program (step 706).
If there is a storage space conflict (Yes; decision block 704), DVR management facility 204 determines in decision block 708 whether there is a lower definition version (e.g., an SD version) of the media program that is available and that, when recorded, will not exceed a maximum storage capacity of the local DVR device.
If there is a lower definition version of the media program available (Yes; decision block 708) that will not exceed the maximum storage capacity of the local DVR device, DVR management facility 204 directs the local DVR device to record the lower definition version of the media program (step 710).
If there is not a lower definition version of the media program available (No; decision block 708), DVR management facility 204 determines in decision block 712 whether there are any media programs already stored in the memory of the local DVR device that have not been consumed (e.g., viewed, heard, etc.) by the user.
If there is a media program already stored in the memory of the local DVR device that the user has not consumed (Yes; decision block 712), DVR management facility 204 directs the local DVR device to delete the non-consumed media program (step 714). If deleting the non-consumed media program frees up sufficient storage space to store the media program, DVR management facility 204 directs the local DVR device to record the media program (step 716).
If there are no media programs already stored in the memory of the local DVR device that the user has not consumed (No; decision block 712) or if the deleting of the media program in step 714 does not free up enough storage space, DVR management facility 204 prioritizes the media programs stored in the memory based on the user watch history (step 718). DVR management facility 204 may prioritize the media programs based on the user watch history in any of the ways described herein.
In decision block 720, DVR management facility 204 determines whether the watch history prioritization is sufficient to resolve the conflict by determining whether at least one of the media programs already recorded in the memory of the local DVR device has a relatively lower priority than the other recorded media programs and whether deleting the at least one of the media programs from the memory of the local DVR device will free up sufficient memory to record the media program.
If the watch history prioritization is sufficient to resolve the conflict (Yes; decision block 722), DVR management facility 204 selects at least one media program to delete that has a relatively lower priority (step 722). DVR management facility 204 may then direct the local DVR device to record the media program during the presentation time period (step 724).
If the watch history prioritization is not sufficient to resolve the conflict (No; decision block 720), flow chart 700 continues as flow chart 800 in
In decision block 728, DVR management facility 204 determines whether the user profile prioritization resolves the conflict.
If the user profile prioritization resolves the conflict (Yes; decision 728), DVR management facility 204 selects at least one media program to delete based on the user profile prioritization (step 730) and directs the local DVR device to record the media program (step 732).
If the user profile prioritization does not resolve the conflict (No; decision 728), DVR management facility 204 prioritizes the media programs based on how long each media program has been stored in the memory of the local DVR device (step 734). For example, media programs having the oldest storage date may be prioritized lower than media programs having more recent storage dates.
In step 736, DVR management facility 204 selects the media program with the oldest storage date to delete. Step 736 may be repeated as many times as necessary to free enough space in the memory of the local DVR device to store the requested media program.
Once sufficient space is available to record the requested media program, DVR management facility 204 directs the local DVR device to record the media program (step 738).
The exemplary flow charts shown in
The examples described above are presented within the context of a request to record a media program. However, one of ordinary skill in the art would understand that one or more of the principles described herein may also be applied to automatically resolve conflicts associated with other types of requests. For example, DVR management facility 204 may receive a request from a user of a media player device to present (e.g., immediately) a media program by way of the media player device. At the time that DVR management facility 204 receives the request, the local DVR system may already be receiving the maximum number of streams allowed (e.g., based on a maximum-number-of-streams limitation of router 110). For example, three additional media player devices located at the user premises (e.g., in different rooms) may already be concurrently receiving media programs and the local DVR device may already be concurrently recording three media programs when the request is received. Based on the number of media streams already being recorded/received by the local DVR system, DVR management facility 204 may determine that there is a maximum-number-of-streams conflict. DVR management facility 204 may perform one or more prioritization operations, such as those described herein, and automatically perform any suitable predetermined action to resolve the conflict and facilitate the media player device accessing and presenting the media program to the user.
Turning to
In operation 904, the system identifies, in response to the detecting of the input command, a conflict associated with the request for the local DVR system to record the media program. Operation 904 may be performed in any of the ways described herein.
In operation 906, the system performs, in response to the identifying of the conflict, a prioritization operation to determine a relative priority of media programs that are at least one of scheduled to be recorded by the local DVR system at any given time during the presentation time period and currently recorded in a memory of the local DVR system. Operation 906 may be performed in any of the ways described herein.
In operation 908, the system automatically performs, based on the performing of the prioritization operation, a predetermined action to resolve the conflict and facilitate the local DVR system recording the media program. Operation 908 may be performed in any of the ways described herein.
Turning to
In operation 1004, the system identifies in response to the detecting of the input command, a conflict associated with the request for the local DVR system to record the media program. Operation 1004 may be performed in any of the ways described herein.
In operation 1006, the system performs, in response to the identifying of the conflict, at least one prioritization operation included in a series of sequential prioritization operations to determine a relative priority of media programs that are at least one of scheduled to be recorded by the local DVR system at any given time during the presentation time period and currently recorded in a memory of the local DVR system. Operation 1006 may be performed in any of the ways described herein.
In operation 1008, the system automatically performs, based on the performing of the at least one prioritization operation included in the series of sequential prioritization operations, a predetermined action to resolve the conflict and facilitate the local DVR system recording the media program. Operation 1008 may be performed in any of the ways described herein.
In certain embodiments, one or more of the systems, components, and/or processes described herein may be implemented and/or performed by one or more appropriately configured computing devices. To this end, one or more of the systems and/or components described above may include or be implemented by any computer hardware and/or computer-implemented instructions (e.g., software) embodied on at least one non-transitory computer-readable medium configured to perform one or more of the processes described herein. In particular, system components may be implemented on one physical computing device or may be implemented on more than one physical computing device. Accordingly, system components may include any number of computing devices, and may employ any of a number of computer operating systems.
In certain embodiments, one or more of the processes described herein may be implemented at least in part as instructions embodied in a non-transitory computer-readable medium and executable by one or more computing devices. In general, a processor (e.g., a microprocessor) receives instructions, from a non-transitory computer-readable medium, (e.g., a memory, etc.), and executes those instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions may be stored and/or transmitted using any of a variety of known computer-readable media.
A computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a medium may take many forms, including, but not limited to, non-volatile media, and/or volatile media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random access memory (“DRAM”), which typically constitutes a main memory. Common forms of computer-readable media include, for example, a disk, hard disk, magnetic tape, any other magnetic medium, a compact disc read-only memory (“CD-ROM”), a digital video disc (“DVD”), any other optical medium, random access memory (“RAM”), programmable read-only memory (“PROM”), erasable programmable read-only memory (“EPROM”), electrically erasable programmable read-only memory (“EEPROM”), a Flash EEPROM device, any other memory chip or cartridge, or any other tangible medium from which a computer can read.
Communication interface 1102 may be configured to communicate with one or more computing devices. Examples of communication interface 1102 include, without limitation, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), a modem, an audio/video connection, and any other suitable interface.
Processor 1104 generally represents any type or form of processing unit capable of processing data or interpreting, executing, and/or directing execution of one or more of the instructions, processes, and/or operations described herein. Processor 1104 may direct execution of operations in accordance with one or more applications 1112 or other computer-executable instructions such as may be stored in storage device 1106 or another computer-readable medium.
Storage device 1106 may include one or more data storage media, devices, or configurations and may employ any type, form, and combination of data storage media and/or device. For example, storage device 1106 may include, but is not limited to, a hard drive, network drive, flash drive, magnetic disc, optical disc, RAM, dynamic RAM, other non-volatile and/or volatile data storage units, or a combination or sub-combination thereof. Electronic data, including data described herein, may be temporarily and/or permanently stored in storage device 1106. For example, data representative of one or more executable applications 1112 configured to direct processor 1104 to perform any of the operations described herein may be stored within storage device 1106. In some examples, data may be arranged in one or more databases residing within storage device 1106.
I/O module 1108 may be configured to receive user input and provide user output and may include any hardware, firmware, software, or combination thereof supportive of input and output capabilities. For example, I/O module 1108 may include hardware and/or software for capturing user input, including, but not limited to, a keyboard or keypad, a touch screen component (e.g., touch screen display), a receiver (e.g., an RF or infrared receiver), and/or one or more input buttons.
I/O module 1108 may include one or more devices for presenting output to a user, including, but not limited to, a graphics engine, a display (e.g., a display screen), one or more output drivers (e.g., display drivers), one or more audio speakers, and one or more audio drivers. In certain embodiments, I/O module 1108 is configured to provide graphical data to a display for presentation to a user. The graphical data may be representative of one or more graphical user interfaces and/or any other graphical content as may serve a particular implementation.
In some examples, any of the facilities described herein may be implemented by or within one or more components of computing device 1100. For example, one or more applications 1112 residing within storage device 1106 may be configured to direct processor 1104 to perform one or more processes or functions associated with detection facility 202 and DVR management facility 204. Likewise, storage facility 206 may be implemented by or within storage device 1106.
In the preceding description, various exemplary embodiments have been described with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the scope of the invention as set forth in the claims that follow. For example, certain features of one embodiment described herein may be combined with or substituted for features of another embodiment described herein. The description and drawings are accordingly to be regarded in an illustrative rather than a restrictive sense.
Number | Name | Date | Kind |
---|---|---|---|
9699510 | Barton | Jul 2017 | B2 |
20030067554 | Klarfeld | Apr 2003 | A1 |
20090142042 | Branam | Jun 2009 | A1 |
20090220216 | Marsh | Sep 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20180007437 A1 | Jan 2018 | US |