1. Field
This disclosure relates generally to digital video recorders, and, more particularly, to proxy-based digital video recording.
2. Background
Digital video recorders (“DVR”) and personal video recorders (“PVR”) are devices that record video to a disk drive or other storage medium for playback at a later time. These devices include, for example, standalone set-top recording devices and software programs for personal computers. Generally, these devices enable many enhancements to the broadcast video entertainment experience, such as time-shifting, pausing live television broadcasts, instant replay, “chasing” playback and the ability to skip advertisements.
In one aspect of this disclosure, a computer-implemented proxy digital video recording system and method is disclosed, comprising a processor and memory. The memory comprises program instructions that are executable by the processor to intercept a request to record a video program, the request triggered by a requesting user and having a request format. The instructions are executable by the processor to determine if a target digital video recorder can understand a format of the request, and translate the request into an intelligible format if the target digital video recorder cannot understand the request format.
The foregoing has outlined rather generally the features and technical advantages of one or more embodiments of this disclosure in order that the following detailed description may be better understood. Additional features and advantages of this disclosure will be described hereinafter, which may form the subject of the claims of this application.
This disclosure is further described in the detailed description that follows, with reference to the drawings, in which:
This application discloses a proxy-based digital video recording system 100, which intermediates between digital video recorders and video providers. Subscription-based program providers often use proprietary command signal formats that are intelligible only by proprietary digital video recorder units associated with the program provider. The interposition of a proxy-based digital video recording system allows translation of the proprietary command signal formats. This may advantageously decouple proprietary digital video recorders from the video providers, thereby allowing users to schedule recording sessions on their digital video recorders regardless of which program provider issued the recording instruction. Additionally, this may also centralize organization of digital video recording by allowing a single unit to control sorting and scheduling of recordings on multiple (and potentially, diverse) digital video recorder units.
User computer 108 may represent a personal computer or personal computing device with Internet browsing functionality and a network connection. Such devices may include (but are not limited to) laptop computers, desktop computers, smart phones, touch-screen tablets and other such devices. Users may utilize user computer 108 to access programming schedules and program advertisements having hyperlinks, the selection of which may instruct proxy digital video recorder 101 to schedule digital video recording sessions.
Digital video recorders 102, 102a may represent one or more network-enabled media recorder devices associated with a user, including (but not limited to) digital video recorders and personal video recorders, operating within any desirable format, including set-top boxes, portable media players, and televisions with built-in recording functionality. Digital video recorder 102, 102a preferably includes a processor for executing instructions and supporting hardware components (i.e., random access memory), storage medium for storing data (including process instructions or digital media) and a network connection for sending and receiving communication data over network 110. Digital video recorder 102 may be implemented using any combination of hardware and/or software components, or alternatively, all hardware or all software components.
Scheduling link component 103 is preferably an embedded HTML hyperlink. Scheduling link component 103 may be embedded in any suitable location, such as (but not limited to) a web page. For example, it may be embedded in a web-based advertisement (preferably) for the program that is being promoted. Therefore, a user on, for example, user computer 108 that sees the advertisement for the program and wishes to record the program may click on or otherwise select the advertisement (or link within the advertisement) to schedule a recording for the promoted program. Alternatively, the scheduling link component 103 may be embedded on an Internet-enabled program guide for a network. For instance, link component 103 may be embedded on a schedule of programs and time slots. A user using, for example, user computer 108 may select the schedule entry for the program, triggering the link and automatically scheduling recording of the program. Other embodiments are also contemplated. For example, the link component 103 may be embedded on a program guide displayed on a media device 109, 109a, such as (but not limited to) a cable television program guide or a hotel television network program guide.
Scheduling link component 103 may take the form of a “directed” recording link that preferably includes detailed instructions for scheduling a recording, such as (but not limited to) broadcast start time, broadcast duration and station identification. Alternatively, a “descriptive” recording link may include a description of the recording, including information such as (but not limited to) media title, episode title/number (if applicable) or some unique identification code, if one has been implemented. In this embodiment, the proxy digital video recorder 101 would be responsible for searching through a media listing (such as a cable television electronic programming guide) to find the relevant program, and schedule a recording for it.
Proxy digital video recorder 101 preferably represents a computer-implemented system for scheduling, storing and converting digital video programming. Proxy digital video recorder 101 may be implemented using any combination of hardware and/or software components, or alternatively, all hardware or all software components. For example, proxy digital video recorder 101 may constitute pure software operating locally on one or more computer systems, such as user computer 108 or media device 109, 109a. Alternatively, proxy digital video recorder 101 may be implemented as a centralized web service, operating on one or more core servers located remotely on network 110.
Proxy digital video recorder 101 preferably includes a processor 101A for executing program instructions and processes, memory 101B for storing data and instructions, and a network interface device 101D for providing access to network 110. Additional components may be added as desired. For example, proxy digital video recorder 101 may include interface input/output (I/O) devices 101C for direct human interaction, such as (but not limited to) keyboard and mouse (and other input devices) along with one or more displays.
Proxy digital video recorder 101 preferably includes a scheduling request component 104. The scheduling request component 104 may be responsible for handling incoming requests to schedule a program for recording. Scheduling request component 104 preferably includes two subcomponents to perform this task. The first is preferably an identification component 105, which ascertains the identity of a requesting user scheduling a video recording. Conventional methods may be used to implement the identification component 105, such as prompting for a user name and password, or analyzing the requesting user's Internet protocol address and correlating it with a known pre-registered user. A “cookie” may be presented to the requesting user's web browser to enable a requesting user to schedule multiple recordings without necessitating re-identification for each operation. Information identifying the requesting user's digital video recorder unit 102, 102a may also be interpreted by the identification component 105. For example, the user may transmit to or otherwise provide the identification component 105 with the name of the user's digital video recorder service subscription (such as TiVo® and the serial number of the TiVo® digital video recorder). This information may enable the proxy digital video recorder 101 to determine what formats are understood by the digital video recorder unit 102 associated with the requesting user.
The second component of the scheduling request component 104 is preferably a link analysis component 106. Once a scheduling request has been received, the link analysis component 106 preferably validates the request. Validation may include ensuring the recording request is correct and uncorrupted. After the request has been validated, the request is preferably stored in memory within or otherwise associated with the proxy digital video recorder 101, thereby scheduling a recording for the requesting user. The link analysis component 106 may support both directed and descriptive link formats described above.
First and second video program providers 107 and 107a may represent servers owned and operated by video program providers, such as (but not limited to) cable or satellite television network providers. These may include servers operated by any provider entity from large aggregate providers of cable and satellite television (such as Time-Warner Cable®, Comcast®, Dish Network®, etc.) down to individual premium cable television networks (such as HBO®, Fox® and Starz®). The servers 107, 107a may be responsible for supporting broadcast scheduling information and issuing recording command signals for programs airing on the respective provider.
Media devices 109, 109a may represent television units, computers, hand-held players and other devices on which users may display video recorded digital video programming. Media device 109, 109a and user computer 108 may, in some embodiments, be the same device. Examples of this embodiment may include situations where users schedule downloads on a computer, and the recorded programs are later displayed on the same computer. Alternatively, they may be separate devices. Examples may include embodiments where users schedule recordings on their computer, which are ultimately downloaded to a digital video recorder, which in turn displays the recorded program on a television. Media device 109 is preferably operatively connected to the digital video recorder unit 102 to enable display of programs stored on digital video recorder unit 102 on media device 109. Similarly, media device 109a is preferably operatively connected to the digital video recorder unit 102a to enable display of programs stored on digital video recorder unit 102a on media device 109a. Alternatively, digital video recorder unit 102 and media device 109, and digital video recorder 102a and media device 109a may be connected only through network 110 (such as when media device 109 and user computer 108 are a single entity), in which case programs stored on digital video recorder 102 may be streamed over network 110 to media device 109.
Selection of the link component 103 typically triggers a scheduling request to be sent to a proprietary digital video recorder from a provider server 107 or 107a. However, in step 202, proxy digital video recorder 101 may intercept or otherwise receive the scheduling request instead. This may be effected in a variety of ways. If proxy digital video recorder 101 is a software instance running on the local user computer 108, it may be set to automatically intercept any scheduling requests generated off a web page being viewed on the user computer 108. Alternatively, if proxy digital video recorder 101 is a physical device located remotely from user computer 108, it may be coupled to the actual digital video recorders 102 and 102a such that any scheduling requests sent to the digital video recorders 102 and 102a must first pass through proxy digital video recorder 101. Any other solutions may be utilized as appropriate.
Subsequently, in step 203, the proxy digital video recorder 101 (through identification component 105) may determine whether the schedule request information includes a user hypertext “cookie,” which preferably contains at least identifying information for the requesting user. If no “cookie” exists, then in step 204, the proxy digital video recorder 101 may send an authentication request over network 100 to the user computer 108 (or other network enabled media device). This may cause a prompt or notice to be displayed to user on the display of user computer 108, requiring (for example) input of a user name and password for the purposes of user authentication. Once the user submits the required information, a hypertext “cookie” may be set in step 205 (thereby storing user identification information for this session).
Once completed (or if the query from step 203 returned a positive result), then, in step 206, the proxy digital video recorder 101, through the link analysis component 106, may initiate a determination as to whether the syntax of the request is valid. In step 207, the link analysis component 106 may utilize any conventional method to determine whether the syntax is valid. For example, the proxy digital video recorder 101 may parse the information in the request packet to determine if any data corruption has occurred. Checksum, cyclical redundancy check, parity bits, and other known methods of error detection may also be utilized as required. If the syntax is incorrect, then in step 209, the proxy digital video recorder 101 preferably reports an error over network 110 to the requesting user's computer 108 for display to the requesting user. If the syntax is correct, then, in step 208, proxy digital video recorder 101 preferably stores the schedule request (in association with the requesting user) and progresses to
If the syntax of the request is determined to be invalid, then in step 306, the syntax error is preferably reported to the user. If the syntax is determined to be valid, then in step 305, the proxy digital video recorder 101 preferably stores the scheduling instruction. In step 307, the proxy digital video recorder 101 may determine whether the scheduling instruction stored successfully. If it did not, then in step 306, the error may be reported to the user. Otherwise, in step 308, success may be reported to the user, and the method may continue to
Once the target digital video recorder has been selected, then in step 402, the proxy digital video recorder 101 may determine whether the target digital video recorder comprehends the format of the stored scheduling instruction. As described above, different program providers may utilize different formats for their recording scheduling instructions. As a result, instructions from one provider server 107 may be unintelligible to a digital video recorder provided by a second provider server 107a. Therefore, if the target digital video recorder cannot understand the scheduling instruction format, then in step 403, proxy digital video recorder 101 may provide a translation service by parsing the contents of the original recording scheduling instruction and translating it into a format intelligible by the target digital video recorder. Then, in step 404, the translated scheduling instruction may be sent to the target digital video recorder. If the target digital video recorder does understand the scheduling instruction format, then in step 404, the original scheduling instruction may be sent to the target digital video recorder.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Having described and illustrated the principles of this application by reference to one or more preferred embodiments, it should be apparent that the preferred embodiment(s) may be modified in arrangement and detail without departing from the principles disclosed herein and that it is intended that the application be construed as including all such modifications and variations insofar as they come within the spirit and scope of the subject matter disclosed.