System and method for controlling access to media asset using two-factor authentication
A two-factor authentication system for media assets in parental control systems addresses the issue of user identity verification, enhancing security by requiring multiple authorization codes for actions on media assets, thus preventing unauthorized use.
Patent Information
- Application Number
- JP2025153409
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2016-10-24
- Filing Date
- 2025-09-16
- Publication Date
- 2025-12-05
AI Technical Summary
Conventional parental control systems in electronic program guides lack the ability to distinguish between multiple users within a household, leading to unauthorized actions on media assets due to the lack of robust user identity verification, even with user-specific codes.
Implementing a two-factor authentication system for media assets, where a first authorization code grants access and a second authorization code is required for specific operations, using a token mechanism to verify user identity and ensure authorized actions.
Enhances user identity verification, preventing unauthorized actions on media assets by ensuring that only authorized users can perform operations like deletion or copying, thereby maintaining content access control.
Smart Images

Figure 2025178322000001_ABST
Abstract
Description
[Background technology]
[0001] Given the volume of content available to modern television viewers, parental control systems have become nearly ubiquitous in electronic program guides (EPGs), allowing users to filter content for viewing. For example, parental control systems give parents the ability to determine what their children can watch when they are not present. Typically, a parental control system will have an access code that can be entered to block and unblock content. A child attempting to access a blocked program and not recognizing the access code will not be able to view the program. However, with this binary approach (access / no access based on a single code), multiple users in a household may have access to a media asset and may perform actions (e.g., deleting a media asset) that other users do not want performed, since there is no way to distinguish the identity of the user performing the action.
[0002] Some conventional systems attempt to solve this problem by using a user profile system in which users enter different codes to identify which specific user they are. However, although this approach using user-specific codes is more powerful than a single code for blocking and unblocking media assets, it still has the same problems in terms of verifying the legitimacy of the user's identity. For example, if a parent gives their child their code to access a blocked media asset once, the child may likely memorize the code and perform any of the actions the parent may perform at any time, defeating the purpose of having a user-specific code. Summary of the Invention [Means for solving the problem]
[0003] Thus, systems and methods are described herein for authorizing operations associated with blocked media assets using two-factor authentication. For example, a media guidance application (e.g., executed by a set-top box or other user equipment used to store and display media assets) prompts a user to enter a password (e.g., a personal information number (“PIN”)) to unlock the content for viewing. In response to receiving a second request from the user to perform an operation related to the media asset (e.g., delete), the media guidance application prompts the user to enter an additional factor that verifies their identity, consistent with a two-factor authentication protocol described herein. If the user's identity is authenticated as a user authorized to perform an operation related to the media asset (e.g., delete the stored media asset), the media guidance application performs the operation related to the media asset (e.g., delete the media asset).
[0004] In some aspects, a media guidance application receives a first request to access a media asset for viewing on user equipment, and access to the media asset is blocked. For example, the media guidance application may store multiple media assets in a storage device that is either local to the user device that generates the media assets for display (e.g., in the memory of a set-top box) or remotely at a server. The media guidance application may generate a list of media assets (e.g., within a user interface) from which a user may select the generated media assets for display. The media guidance application may set a flag indicating whether each media asset should be blocked for a given user based on metadata associated with each stored media asset. As a specific example, the media guidance application may set a flag indicating that a media asset meets predetermined blocking criteria (e.g., a particular user cannot watch programs with a rating above TV-PG) based on metadata associated with the media asset.
[0005] The media guidance application then receives a first input of a first authorization code. The first authorization code may be any combination of alphanumeric characters that can be matched to the stored alphanumeric string. The media guidance application may receive the first identifier via user input using a user input interface, such as a touchscreen or remote control. For example, the media guidance application may receive user input "1578" via the remote control.
[0006] The media guidance application determines that the received first authorization code matches a stored first identifier that grants access to view the media asset. For example, the media guidance application determines whether the received input "1578" matches a value stored in memory for the first identifier. As a particular example, the media guidance application may access a parental control database that includes multiple identifiers associated with permissions (i.e., whether each code may access the media asset). The media guidance application may compare the received first authorization code with the stored identifiers (e.g., by comparing the characters of the first authorization code with each character of the stored identifiers) and determine a match. After determining a match, the media guidance application reads data from a field in the database that corresponds to the matched identifier and determines whether the data indicates that the user has access to the media asset.
[0007] In some embodiments, the media guidance application retrieves the first stored identifier from a field in a parental control database that contains multiple entries with stored identifiers associated with the user. For example, the media guidance application may execute an SQL program script utilizing a declarative “select” statement to retrieve a value for the first stored identifier, such as “12345,” from a field in the database. The media guidance application may determine whether the first stored identifier matches a received authorization code by comparing the characters of the first stored identifier with the characters of the received authorization code. For example, the media guidance application may compare each indexed character of the received string (i.e., the first authorization code) with each indexed character of the stored identifier and determine whether the two strings match. The media guidance application may determine a match if the number or percentage of matched characters exceeds a threshold. For example, the media guidance application may determine that “1234567891” matches “1224567891” if a 90% match exceeds a threshold percentage (e.g., 75%).
[0008] In response to determining that the first stored identifier matches the received authorization code, the media guidance application reads a value from a field associated with the first stored identifier. For example, the media guidance application may read a blocking criterion (e.g., a user identified by the first stored identifier cannot access media assets with a rating above TV-PG) from a field associated with the first stored identifier. The media guidance application then determines whether the user identified by the first stored identifier has access to the media asset based on the value. For example, the media guidance application may compare the blocking criterion read from the field associated with the first stored identifier with metadata associated with the media asset to determine whether the user identified by the first stored identifier has permission to access the media asset. As a specific example, if the blocking criterion is a rating of “TV-PG” and the media asset has a rating of “TV-MA,” the media guidance application may determine that the user does not have permission to access the media asset because the media asset's rating exceeds the blocking criterion rating.
[0009] After determining that the received first authorization code matches the stored first identifier, the media guidance application generates the media asset for display. For example, the media guidance application may generate the media asset for display on a display connected to the user equipment. Alternatively, or in addition, the media guidance application may query a parental control database for an indication of whether a user identified by the first authorization code may view the media asset on a device not coupled to the user equipment (e.g., streamed to a mobile device such as a mobile phone).
[0010] In some embodiments, the media guidance application generates instructions that grant access to view the media asset for a predetermined period of time. For example, after the media guidance application determines that a user identified by a first authorization code has access to the media asset, the media guidance application may generate instructions (e.g., in a program script) that grant access to the media asset for a period of time. The media guidance application may then execute the instructions, which store a temporary indication in a field associated with the first stored identifier in a parental control database, granting access to view the media asset. For example, the media guidance application may execute the generated program script, which then stores an indication (e.g., a Boolean value set to “true”) in the parental control database that the user has access to the media asset. The media guidance application then monitors the elapsed time in response to executing the instructions. For example, the program script may store an end time in the parental control database when access to the media asset expires, and the media guidance application may execute another program script and remove the indication when the time reaches a value within the end time. Alternatively, the media guidance application may continue to run a program script that monitors the clock time and removes the indication after a predetermined period of time. In response to determining that the elapsed time exceeds the predetermined period of time, the media guidance application removes the temporary indication to allow access to view the media asset. For example, the media guidance application may reset the contents of the field in which the indication was stored.
[0011] The media guidance application then receives a second request to perform an action associated with the media asset. The action may be any command or instruction that, when executed, modifies or copies stored audiovisual data for the media asset or any stored metadata about the media asset. For example, the media guidance application may receive a request via a user input interface (e.g., a touchscreen) to delete the media asset. As another example, the media guidance application may receive a request via a user input interface to copy the media asset to another device. As yet another example, the media guidance application may receive a request to update a user profile (e.g., with viewing progress or an indication that the user does not like the media asset) associated with the first authorization code.
[0012] Based on receiving the second request, the media guidance application queries a parental control database for information regarding allowed actions associated with the media asset. For example, the media guidance application may store, in a field of the parental control database for an identifier matching the first authorization code, a pointer to an array listing media assets on which a user is permitted to perform an action. The parental control database may include multiple fields, each with a pointer to an array indicating media assets for which a particular action can be performed without a second authorization code (e.g., delete, modify, etc.). Alternatively, or in addition, the media guidance application may store, with metadata stored with the media asset, an indication of actions that require a second authorization code (e.g., those that are not allowed with only the first authorization code). For example, the media guidance application may store the runtime, rating, first air date, and other metadata as a header in the stored audiovisual data for the media asset and, in addition, may include an indication of actions that require a second authorization code (e.g., a Boolean value based on whether a particular action requires a second authorization code to be performed).
[0013] The media guidance application determines from the information that a second authorization code is required to perform an operation associated with the media asset, and the second authorization code is generated periodically as a function of time by a token mechanism remote from the user equipment. For example, based on retrieving information from a parental control database as described above with respect to the stored media asset, the media guidance application determines whether a second factor is required to perform the function. The second authorization code may be generated by a token mechanism (e.g., a stand-alone token or an application running on a device such as a mobile phone), which may then be entered into the media guidance application (e.g., via a user input interface). The token may generate the authorization code based on a mathematical function of clock time, similar to public key authentication. In some embodiments, other suitable two-factor methods, such as asymmetric (private-public key) authentication, may be used for the second authentication code.
[0014] The media guidance application receives a second input of a second authorization code generated at a first time. For example, the media guidance application may receive a second authorization code, such as "45678," via a user input interface. The media guidance application may determine that the input was received at 10:23:30 (hours:minutes:seconds) on 05:31:16 (month:day:year) based on the clock time when the input was received. Alternatively, or in addition, the media guidance application may receive a clock time along with the entered second authorization code based on the clock time of the device on which the code was generated.
[0015] The media guidance application may then transmit the second authorization code generated at the first time to an authorization database. For example, the media guidance application may transmit the second authorization code to a database that is located remotely from the user equipment (e.g., on a server) and accessible via a communications network, or that may be stored in memory at the user equipment. In some embodiments, the media guidance application may preprocess the second authorization code. For example, the media guidance application may generate a data packet that includes the second authorization code and the time it was generated, as described above. In another example, the media guidance application may concatenate the time to the nearest second or minute before transmission, depending on how often new authorization codes are generated by the token mechanism.
[0016] In response to transmitting the second authorization code generated at the first time to the authorization database, the media guidance application receives an indication granting authorization to perform an operation associated with the media asset based on the transmitted second authorization code matching the second identifier generated at the first time. For example, the media guidance application may receive a data packet from the authorization package with a Boolean value set to “true” if the transmitted authorization code corresponds to the second identifier or “false” if it does not. The second identifier may be a second token mechanism with a mathematical function at a particular time that may compare its output (e.g., the second identifier) with the received second authorization code. The token may be identified by the first authorization code, which allows the authorization database to determine whether the received second authorization code is correct. For example, the media guidance application may transmit to the authorization database that a user identified by the first authorization code “1234” entered the second authorization code “45678.” Instead of searching all token mechanisms stored in the authorization database, the authorization database only needs to search for tokens corresponding to user "1234" and determine whether "45678" was generated by that token mechanism at a particular time.
[0017] The media guidance application performs an action related to the media asset based on receiving an indication that the second authorization code matches the stored second identifier. For example, the media guidance application may execute instructions to erase or free a block of memory in which a particular media asset is stored (e.g., delete the media asset).
[0018] In some embodiments, the operations include a media guidance application accessing a block of memory containing data corresponding to the media asset. For example, the media guidance application may determine a particular block of memory in which audiovisual data for the media asset is stored. The media guidance application may then copy the data contained in the block of memory corresponding to the media asset to a second user equipment. For example, the media guidance application may read the stored audiovisual data and transmit it to another device, such as a mobile phone, so that a user may access the media asset remotely from the user equipment.
[0019] In some embodiments, in response to copying the data, the media guidance application stores an indication that the media asset has been copied to the second user equipment in a field associated with the media asset in a parental control database. For example, the media guidance application may store an indication that the media asset has been copied to the second user equipment in an array of media assets copied to other user equipment indicated in the field of the parental control database (e.g., by adding the media asset's identifier to the array). The media guidance application receives a third request to access the media asset on the first user equipment. For example, the media guidance application may receive, via a user input interface, a request to access the media asset on the user equipment that originally scheduled it for storage. The media guidance application then prevents access to the media asset on the first user equipment while the media asset is stored on the second user equipment. For example, the media guidance application may query the array and determine that access is not permitted from the first user equipment because the media asset's identifier is in the array. In this way, the media guidance application ensures that a media asset cannot be stored and viewed on multiple devices simultaneously by maintaining a "checked out" mechanism.
[0020] In other embodiments, the operations include the media guidance application accessing a viewing progress data structure that includes currently stored media assets. For example, the media guidance application may access the viewing progress data structure locally in a storage device or remotely at a server via a communications network. The viewing progress data structure may be organized such that each media asset has an associated viewing progress, which may be expressed in terms of time or percentage viewed. The media guidance application then stores an indication in a field for the media asset that the media asset has been viewed to completion. For example, the media guidance application may update a field in the viewing progress data structure to reflect the current user's viewing progress of the media asset. As a specific example, the user may have completed a media asset, and therefore the media guidance application may set a "viewed to completion" flag to "true."
[0021] In some embodiments, in response to receiving an indication denying authorization to perform an operation associated with the media asset based on a transmitted second authorization code that does not match a second identifier generated at a first time, the media guidance application queries a parental control database to determine whether an alternative second authorization code is available to enable the operation. For example, the media guidance application may receive a data packet from an authorization package with a Boolean value that is set to “false” if the transmitted authorization code does not correspond to the second identifier. The media guidance application then accesses the parental control database to determine whether any other second factor authorization sources are associated with the first stored identifier. For example, the media guidance application may determine that the user can also be identified via a biometric signature (e.g., iris scan or facial recognition) as the second authorization code. In response to determining that an alternative second authorization code is available to enable the operation, the media guidance application generates for display an indication to enter the alternative second authorization code. For example, the media guidance application may use a camera (eg, integrated into a mobile phone) to generate a prompt to enter a biometric signature as a second authorization code.
[0022] In some embodiments, the media guidance application may prompt for input of an alternative second authorization code (e.g., from another source) only after a threshold number of failed matches to the second identifier for the first second authorization code. For example, if the media guidance application receives an indication from the authorization database that three consecutive transmitted second authorization codes failed to match the second stored identifier, the media guidance application may decide to prompt for input of an alternative second authorization code.
[0023] In some embodiments, the media guidance application receives user input and schedules media assets for storage. For example, the media guidance application may receive user input via a user input interface (e.g., a remote control) and schedule a media asset for storage. As a specific example, a user may select a particular media asset listing in a grid guide generated by the media guidance application, causing the media asset to be added to the scheduling database. In response to receiving the user input, the media guidance application generates to display a user interface with multiple selectable options for restricting access to corresponding actions. For example, the media guidance application may generate a user interface with a button to require two-factor authentication for an action that may be performed on the media asset (e.g., delete). The media guidance application receives a selection of a selectable option for restricting access to the corresponding action. For example, the media guidance application may receive a user selection via the user input interface to restrict access (e.g., require two-factor authentication) for a particular action (e.g., delete). In response to receiving the selection, the media guidance application stores information in a parental control database that the action requires a second authorization code. For example, the media guidance application may add the media asset's identifier to an array of pointers in the parental control database to act upon, as described above. Alternatively, or in addition, the media guidance application may store an indication along with the stored media asset's metadata, as described above.
[0024] In some embodiments, the media guidance application accesses a user database that includes identifiers of users who accessed a media asset. For example, the media guidance application may maintain a database or other suitable data structure and store a user's identifier in a field associated with the media asset's identifier after the user accesses the media asset. As a specific example, the user identifier may be a first authorization code, such as "1111." The media guidance application then retrieves device contact information associated with the user who accessed the media asset from the field in the user database associated with the identifier. For example, the media guidance application may determine that a user identified by authorization code "1111" previously viewed the same media asset that a user identified by first authorization code "1234" indicated they desired to perform an action on, and retrieves the contact information (e.g., a mobile phone number or email address) for the user identified by authorization code "1111." As a specific example, the media guidance application may retrieve the mobile phone number "123-456-7890" from the field in the user database corresponding to the user identified by authorization code "1111." The media guidance application then transmits a notification to the user based on the contact information that an action associated with the media asset has been received. For example, the media guidance application may transmit a message to a mobile phone based on the retrieved phone number. The transmitted message may include details of the action and / or the user attempting to perform the action. For example, the media guidance application may transmit the message, "User 'Steve' is attempting to delete 'Game of Thrones, Season 6, Episode 5'."
[0025] In addition to transmitting a notification to the user that an action associated with the media asset has been received, in some embodiments, the media guidance application receives an indication to prevent the action from the device. For example, the media guidance application may receive an indication to block the action from the device to which the message was transmitted. As a specific example, if the notification is transmitted to the user's mobile phone, the message may include text instructing the user to reply to the message if they want to block the action. In some embodiments, the media guidance application may determine whether the user has authority to block the action based on an indication stored in a user database associated with the user, and would include only text instructing the user to reply to the message if they have authority to block the action. The media guidance application then stores the indication in a second field of a parental control database associated with the media asset, the indication preventing the action from being performed. For example, the media guidance application may remove the media asset from an array of media assets that the user has authority to delete (e.g., as indicated by a field in the parental control database) based on the received indication to block the action. Alternatively, or in addition, the media guidance application may add media assets to an array in a parental control database for media assets that have been blocked by another user from allowing the user to perform actions on them.
[0026] Alternatively, the media guidance application may determine that the requested second authorization code is the user's biometric signature. For example, the media guidance application may perform the same steps outlined above, but instead of receiving a code generated by a token mechanism, the media guidance application receives a biometric signature. As a specific example, the biometric signature may be the user's iris scan, fingerprint scan, or face map transmitted to the media guidance application as an image. The media guidance application may analyze the biometric signature (e.g., by analyzing critical points / patterns in a pixel map of the received image) and compare it to a stored biometric signature, or may transmit the biometric signature to a remote server, which analyzes the biometric signature and determines whether it matches a second stored identifier, similarly as described above with respect to the authorization database and token mechanism.
[0027] It should be noted that the systems and / or methods described above may be applied to or used in accordance with other systems, methods, and / or apparatus. The present specification also provides, for example, the following items: (Item 1) 1. A method for authorizing actions associated with a blocked media asset using two-factor authentication, the method comprising: receiving a first input of a first request to access a media asset for viewing and a first authorization code, wherein access to the media asset is blocked; generating the media asset for display based on determining that the received first authorization code matches a stored first identifier; subsequent to granting access to the media asset, receiving a second input of a second request to perform an operation related to the media asset and a second authorization code; performing the action associated with the media asset based on determining that the received second authorization code matches a stored second identifier; and A method comprising: (Item 2) 1. A method for authorizing actions associated with a blocked media asset using two-factor authentication, the method comprising: receiving a first request to access a media asset for viewing on a user equipment, wherein access to the media asset is blocked; receiving a first input of a first authorization code; determining that the received first authorization code matches a stored first identifier that grants access to view the media asset; based on determining that the received first authorization code matches the stored first identifier; generating the media asset for display; receiving a second request to perform an action associated with the media asset; and based on receiving the second request; querying a parental control database for information regarding permissible behavior associated with the media asset; determining from the information that a second authorization code is required to perform the operation associated with the media asset, the second authorization code being generated periodically as a function of time by a token mechanism remote from the user equipment; receiving a second input of the second authorization code generated at a first time; transmitting the second authorization code generated at the first time to an authorization database; receiving, in response to transmitting the second authorization code generated at the first time to the authorization database, an indication granting authorization to perform the operation associated with the media asset based on the transmitted second authorization code matching a second identifier generated at the first time; performing the action associated with the media asset based on receiving the indication that the received second authorization code matches the stored second identifier; and A method comprising: (Item 3) Determining that the received first authorization code matches the first stored identifier granting access to view the media asset includes: Retrieving the first stored identifier from a field in the parental control database that includes a plurality of entries with stored identifiers associated with users; determining whether the first stored identifier matches the received authorization code by comparing characters of the first stored identifier with characters of the received authorization code; in response to determining that the first stored identifier matches the received authorization code; reading a value from a field associated with the first stored identifier; determining whether the user identified by the first stored identifier has access to the media asset based on the value; and The method according to item 2, comprising: (Item 4) generating the media assets for display, generating instructions to grant access to view the media asset for a predetermined period of time; executing the instructions to store a temporary indication in a field associated with the first stored identifier in the parental control database to allow access to view the media asset; monitoring an elapsed time in response to executing the instructions; removing the temporary indication to allow access to view the media asset in response to determining that the elapsed time exceeds the predetermined period; and The method according to item 2, comprising: (Item 5) receiving user input and scheduling the media asset for storage; generating, in response to receiving the user input, for displaying a user interface with a plurality of selectable options for restricting access to a corresponding plurality of actions; receiving a selection of a selectable option for restricting access to a corresponding action; in response to receiving the selection, storing in the parental control database information that the action requires the second authorization code; The method according to item 2, further comprising: (Item 6) In response to receiving an indication of denial of authorization to perform the operation associated with the media asset based on the transmitted second authorization code not matching the second identifier generated at the first time, querying the parental control database to determine whether there is an alternative second authorization code for enabling the operation; generating for display an indication to input the alternative second authorization code in response to determining that there is an alternative second authorization code to enable the operation; and The method according to item 2, further comprising: (Item 7) accessing a user database containing identifiers of users who have accessed the media asset; retrieving device contact information associated with the user who accessed the media asset from a field in the user database associated with an identifier; transmitting a notification to the user based on the contact information that the action associated with the media asset has been received; and The method according to item 2, further comprising: (Item 8) the field is a first field, receiving an indication from the device to prevent the action; storing the indication in a second field of the parental control database associated with the media asset, the indication preventing the action from being performed; and 8. The method of claim 7, further comprising: (Item 9) The user equipment is a first user equipment, and performing the operation related to the media asset includes: accessing a block of memory containing data corresponding to the media asset; copying the data contained in the block of memory corresponding to the media asset to a second user device; The method according to item 2, comprising: (Item 10) In response to copying the data, storing an indication that the media asset has been copied to the second user equipment in a field associated with the media asset in the parental control database; and receiving a third request to access the media asset on the first user equipment; Preventing access to the media asset on the first user device while the media asset is being copied to the second user device; Item 10. The method of item 9, further comprising: (Item 11) Performing the action related to the media asset includes: accessing a viewing progress data structure containing currently stored media assets; storing an indication that the media asset has been played to completion in a field for the media asset; The method according to item 2, comprising: (Item 12) 1. A system for authorizing actions associated with blocked media assets using two-factor authentication, the system comprising: A control circuit, the control circuit comprising: receiving a first request to access a media asset for viewing on a user equipment, wherein access to the media asset is blocked; receiving a first input of a first authorization code; determining that the received first authorization code matches a stored first identifier that grants access to view the media asset; based on determining that the received first authorization code matches the stored first identifier; generating the media asset for display; receiving a second request to perform an action associated with the media asset; and based on receiving the second request; querying a parental control database for information regarding permissible behavior associated with the media asset; determining from the information that a second authorization code is required to perform the operation associated with the media asset, the second authorization code being generated periodically as a function of time by a token mechanism remote from the user equipment; receiving a second input of the second authorization code generated at a first time; transmitting the second authorization code generated at the first time to an authorization database; receiving, in response to transmitting the second authorization code generated at the first time to the authorization database, an indication granting authorization to perform the operation associated with the media asset based on the transmitted second authorization code matching a second identifier generated at the first time; performing the action associated with the media asset based on receiving the indication that the received second authorization code matches the stored second identifier; and a control circuit configured to: A system comprising: (Item 13) The control circuitry further includes, upon determining that the received first authorization code matches the first stored identifier granting access to view the media asset, retrieving the first stored identifier from a field in the parental control database that includes a plurality of entries with stored identifiers associated with users; determining whether the first stored identifier matches the received authorization code by comparing characters of the first stored identifier with characters of the received authorization code; in response to determining that the first stored identifier matches the received authorization code; reading a value from a field associated with the first stored identifier; determining whether the user identified by the first stored identifier has access to the media asset based on the value; and Item 13. The system according to item 12, configured to: (Item 14) The control circuitry further includes, when generating the media asset for display: generating instructions to grant access to view the media asset for a predetermined period of time; executing the instructions to store a temporary indication in a field associated with the first stored identifier in the parental control database to allow access to view the media asset; monitoring an elapsed time in response to executing the instructions; removing the temporary indication to allow access to view the media asset in response to determining that the elapsed time exceeds the predetermined period; and Item 13. The system according to item 12, configured to: (Item 15) The control circuit further comprises: receiving user input and scheduling the media asset for storage; generating, in response to receiving the user input, for displaying a user interface with a plurality of selectable options for restricting access to a corresponding plurality of actions; receiving a selection of a selectable option for restricting access to a corresponding action; in response to receiving the selection, storing in the parental control database information that the action requires the second authorization code; Item 13. The system according to item 12, configured to: (Item 16) The control circuit further comprises: In response to receiving an indication of denial of authorization to perform the operation associated with the media asset based on the transmitted second authorization code not matching the second identifier generated at the first time, querying the parental control database to determine whether there is an alternative second authorization code for enabling the operation; generating for display an indication to input the alternative second authorization code in response to determining that there is an alternative second authorization code to enable the operation; and Item 13. The system according to item 12, configured to: (Item 17) The control circuit further comprises: accessing a user database containing identifiers of users who have accessed the media asset; retrieving device contact information associated with the user who accessed the media asset from a field in the user database associated with an identifier; transmitting a notification to the user based on the contact information that the action associated with the media asset has been received; and Item 13. The system according to item 12, configured to: (Item 18) The field is a first field, and the control circuit further comprises: receiving an indication from the device to prevent the action; storing the indication in a second field of the parental control database associated with the media asset, the indication preventing the action from being performed; and Item 18. The system of item 17, configured to: (Item 19) the user equipment is a first user equipment, and the control circuitry, when performing the operation related to the media asset, accessing a block of memory containing data corresponding to the media asset; copying the data contained in the block of memory corresponding to the media asset to a second user device; Item 13. The system according to item 12, configured to: (Item 20) The control circuit further comprises: In response to copying the data, storing an indication that the media asset has been copied to the second user equipment in a field associated with the media asset in the parental control database; and receiving a third request to access the media asset on the first user equipment; Preventing access to the media asset on the first user device while the media asset is being copied to the second user device; Item 20. The system of item 19, configured to: (Item 21) The control circuitry further comprises, when performing the operation related to the media asset: accessing a viewing progress data structure containing currently stored media assets; storing an indication that the media asset has been played to completion in a field for the media asset; Item 13. The system according to item 12, configured to: (Item 22) 1. An apparatus for authorizing actions associated with blocked media assets using two-factor authentication, comprising: means for receiving a first request to access a media asset for viewing on a user equipment, wherein access to the media asset is blocked; and means for receiving a first input of a first authorization code; means for determining that the received first authorization code matches a stored first identifier that grants access to view the media asset; based on determining that the received first authorization code matches the stored first identifier; means for generating the media assets for display; means for receiving a second request to perform an action associated with the media asset; based on receiving the second request; means for querying a parental control database for information regarding permissible behavior associated with the media asset; means for determining from the information that a second authorization code is required to perform the operation associated with the media asset, the second authorization code being generated periodically as a function of time by a token mechanism remote from the user equipment; and means for receiving a second input of the second authorization code generated at a first time; means for transmitting the second authorization code generated at the first time to an authorization database; means for receiving, in response to transmitting the second authorization code generated at the first time to the authorization database, an indication granting authorization to perform the operation associated with the media asset based on the transmitted second authorization code matching a second identifier generated at the first time; means for performing the action associated with the media asset based on receiving the indication that the received second authorization code matches the stored second identifier; An apparatus comprising: (Item 23) The means for determining that the received first authorization code matches the first stored identifier granting access to view the media asset comprises: means for retrieving the first stored identifier from a field in the parental control database that includes a plurality of entries with stored identifiers associated with users; means for determining whether the first stored identifier matches the received authorization code by comparing characters of the first stored identifier with characters of the received authorization code; in response to determining that the first stored identifier matches the received authorization code; means for reading a value from a field associated with said first stored identifier; means for determining, based on the value, whether the user identified by the first stored identifier has access to the media asset; Item 23. The device according to item 22, comprising: (Item 24) The means for generating the media assets for display includes: means for generating instructions to grant access to view the media asset for a predetermined period of time; means for executing the instructions, the instructions storing a temporary indication in a field associated with the first stored identifier in the parental control database, granting access to view the media asset; and means for monitoring elapsed time in response to executing said instructions; means for removing the temporary indication to allow access to view the media asset in response to determining that the elapsed time exceeds the predetermined period of time; Item 23. The device according to item 22, comprising: (Item 25) means for receiving user input and scheduling the media assets for storage; means for generating, in response to receiving the user input, for displaying a user interface with a plurality of selectable options for restricting access to a corresponding plurality of actions; means for receiving a selection of a selectable option for restricting access to a corresponding action; means for storing, in response to receiving the selection, information in the parental control database that the action requires the second authorization code; 23. The device of item 22, further comprising: (Item 26) means for querying the parental control database to determine whether an alternative second authorization code is available to enable the operation in response to receiving an indication of denial of authorization to perform the operation associated with the media asset based on the transmitted second authorization code not matching the second identifier generated at the first time; means for generating, in response to determining that there is an alternative second authorization code for enabling the operation, an indication to input the alternative second authorization code for display; 23. The device of item 22, further comprising: (Item 27) means for accessing a user database containing identifiers of users who have accessed the media asset; means for retrieving device contact information associated with a user who accessed the media asset from a field in the user database associated with an identifier; means for transmitting a notification to the device based on the contact information to the user that the action associated with the media asset has been received; 23. The device of item 22, further comprising: (Item 28) the field is a first field, means for receiving an indication from the device to prevent the action; means for storing the indication in a second field of the parental control database associated with the media asset, the indication preventing the action from being performed; and Item 28. The device of item 27, further comprising: (Item 29) The user equipment is a first user equipment, and the means for performing the operation related to the media asset comprises: means for accessing a block of memory containing data corresponding to the media asset; means for copying the data contained in the block of memory corresponding to the media asset to a second user device; Item 23. The device according to item 22, comprising: (Item 30) means for storing, in response to copying the data, an indication that the media asset has been copied to the second user equipment in a field associated with the media asset in the parental control database; and means for receiving a third request to access the media asset on the first user equipment; means for preventing access to the media asset on the first user device while the media asset is being copied to the second user device; 30. The device of item 29, further comprising: (Item 31) The means for performing the action related to the media asset comprises: means for accessing a viewing progress data structure containing currently stored media assets; means for storing an indication in a field for the media asset that the media asset has been played to completion; Item 23. The device according to item 22, comprising: (Item 32) 1. A non-transitory machine-readable medium comprising: a memory with instructions encoded thereon for authorizing an action associated with a blocked media asset using two-factor authentication, the instructions comprising: instructions for receiving a first request to access a media asset for viewing on a user equipment, wherein access to the media asset is blocked; and instructions for receiving a first input of a first authorization code; instructions for determining that the received first authorization code matches a stored first identifier that grants access to view the media asset; based on determining that the received first authorization code matches the stored first identifier; instructions for generating the media asset for display; instructions for receiving a second request to perform an action associated with the media asset; based on receiving the second request; instructions for querying a parental control database for information regarding permissible behavior associated with the media asset; instructions for determining from the information that a second authorization code is required to perform the operation associated with the media asset, the second authorization code being generated periodically as a function of time by a token mechanism remote from the user equipment; and instructions for receiving a second input of the second authorization code generated at a first time; instructions for transmitting the second authorization code generated at the first time to an authorization database; instructions for receiving, in response to transmitting the second authorization code generated at the first time to the authorization database, an indication granting authorization to perform the operation associated with the media asset based on the transmitted second authorization code matching a second identifier generated at the first time; instructions for performing the action associated with the media asset based on receiving the indication that the received second authorization code matches the stored second identifier; and 1. A non-transitory machine-readable medium comprising: (Item 33) The instructions for determining that the received first authorization code matches the first stored identifier granting access to view the media asset include: instructions for retrieving the first stored identifier from a field in the parental control database that includes a plurality of entries with stored identifiers associated with users; instructions for determining whether the first stored identifier matches the received authorization code by comparing characters of the first stored identifier with characters of the received authorization code; in response to determining that the first stored identifier matches the received authorization code; instructions for reading a value from a field associated with the first stored identifier; instructions for determining, based on the value, whether the user identified by the first stored identifier has access to the media asset; and Item 33. The non-transitory machine-readable medium of item 32, comprising: (Item 34) The instructions for generating the media asset for display include: instructions for generating instructions to grant access to view the media asset for a predetermined period of time; instructions for executing the instructions to store a temporary indication in a field associated with the first stored identifier in the parental control database, allowing access to view the media asset; and instructions for monitoring elapsed time in response to executing the instructions; instructions for removing the temporary indication to allow access to view the media asset in response to determining that the elapsed time exceeds the predetermined period; and Item 33. The non-transitory machine-readable medium of item 32, comprising: (Item 35) The instructions further include: instructions for receiving user input and scheduling the media asset for storage; instructions for generating, in response to receiving the user input, for displaying a user interface with a plurality of selectable options for restricting access to a corresponding plurality of actions; instructions for receiving a selection of a selectable option for restricting access to a corresponding action; instructions for storing, in response to receiving the selection, information in the parental control database that the action requires the second authorization code; Item 33. The non-transitory machine-readable medium of item 32, comprising: (Item 36) The instructions further include: instructions for querying the parental control database in response to receiving an indication of denial of authorization to perform the operation associated with the media asset based on the transmitted second authorization code not matching the second identifier generated at the first time to determine whether an alternative second authorization code is available to enable the operation; instructions for generating, in response to determining that there is an alternative second authorization code for enabling the operation, a display indication for inputting the alternative second authorization code; Item 33. The non-transitory machine-readable medium of item 32, comprising: (Item 37) The instructions further include: instructions for accessing a user database containing identifiers of users who accessed the media asset; instructions for retrieving device contact information associated with a user who accessed the media asset from a field in the user database associated with an identifier; instructions for transmitting a notification to the device based on the contact information to the user that the action associated with the media asset has been received; Item 33. The non-transitory machine-readable medium of item 32, comprising: (Item 38) The field is a first field, and the instruction further comprises: instructions for receiving an indication from the device to prevent the action; instructions for storing the indication in a second field of the parental control database associated with the media asset, the indication preventing the action from being performed; and Item 38. The non-transitory machine-readable medium of item 37, comprising: (Item 39) The user equipment is a first user equipment, and the instructions for performing the operation related to the media asset include: instructions for accessing a block of memory containing data corresponding to the media asset; instructions for copying the data contained in the block of memory corresponding to the media asset to a second user device; Item 33. The non-transitory machine-readable medium of item 32, comprising: (Item 40) The instructions further include: instructions for storing, in response to copying the data, an indication that the media asset has been copied to the second user equipment in a field associated with the media asset in the parental control database; and instructions for receiving a third request to access the media asset on the first user equipment; instructions for preventing access to the media asset on the first user device while the media asset is being copied to the second user device; 40. The non-transitory machine-readable medium of item 39, comprising: (Item 41) The instructions for performing the action related to the media asset include: instructions for accessing a viewing progress data structure containing currently stored media assets; instructions for storing an indication that the media asset has been played to completion in a field for the media asset; Item 33. The non-transitory machine-readable medium of item 32, comprising: (Item 42) 1. A method for authorizing actions associated with a blocked media asset using two-factor authentication, the method comprising: receiving a first request to access a media asset for viewing on a user equipment, wherein access to the media asset is blocked; receiving a first input of a first authorization code; determining that the received first authorization code matches a stored first identifier that grants access to view the media asset; based on determining that the received first authorization code matches the stored first identifier; generating the media asset for display; receiving a second request to perform an action associated with the media asset; and based on receiving the second request; querying for information regarding permissible actions associated with the media asset; determining from the information that a second authorization code is required to perform the operation associated with the media asset, the second authorization code being generated periodically as a function of time by a token mechanism remote from the user equipment; receiving a second input of the second authorization code generated at a first time; transmitting the second authorization code generated at the first time to an authorization database; receiving, in response to transmitting the second authorization code generated at the first time to the authorization database, an indication granting authorization to perform the operation associated with the media asset based on the transmitted second authorization code matching a second identifier generated at the first time; performing the action associated with the media asset based on receiving the indication that the received second authorization code matches the stored second identifier; and A method comprising: (Item 43) Retrieving the first stored identifier from a field in a parental control database that includes a plurality of entries with stored identifiers associated with the user; determining whether the first stored identifier matches the received authorization code by comparing characters of the first stored identifier with characters of the received authorization code; in response to determining that the first stored identifier matches the received authorization code; reading a value from a field associated with the first stored identifier; determining whether the user identified by the first stored identifier has access to the media asset based on the value; and Item 43. The method of item 42, further comprising: (Item 44) generating instructions to grant access to view the media asset for a predetermined period of time; executing the instructions to store a temporary indication in a field associated with the first stored identifier in the parental control database to allow access to view the media asset; monitoring an elapsed time in response to executing the instructions; removing the temporary indication to allow access to view the media asset in response to determining that the elapsed time exceeds the predetermined period; and 44. The method according to any one of items 42-43, further comprising: (Item 45) receiving user input and scheduling the media asset for storage; generating, in response to receiving the user input, for displaying a user interface with a plurality of selectable options for restricting access to a corresponding plurality of actions; receiving a selection of a selectable option for restricting access to a corresponding action; in response to receiving the selection, storing information in a parental control database that the action requires the second authorization code; 45. The method of any of items 42-44, further comprising: (Item 46) In response to receiving an indication of denial of authorization to perform the operation associated with the media asset based on the transmitted second authorization code not matching the second identifier generated at the first time, querying a parental control database to determine whether there is an alternative second authorization code for enabling the operation; generating for display an indication to input the alternative second authorization code in response to determining that there is an alternative second authorization code to enable the operation; and 46. The method of any of items 42-45, further comprising: (Item 47) accessing a user database containing identifiers of users who have accessed the media asset; retrieving device contact information associated with the user who accessed the media asset from a field in the user database associated with an identifier; transmitting a notification to the user based on the contact information that the action associated with the media asset has been received; and 47. The method of any of items 42-46, further comprising: (Item 48) the field is a first field, receiving an indication from the device to prevent the action; storing the indication in a second field of the parental control database associated with the media asset, the indication preventing the action from being performed; and Item 48. The method of item 47, further comprising: (Item 49) accessing a block of memory containing data corresponding to the media asset; copying the data contained in the block of memory corresponding to the media asset to a second user device; 48. The method of any of items 42-47, further comprising: (Item 50) In response to copying the data, storing an indication that the media asset has been copied to the second user equipment in a field associated with the media asset in the parental control database; and receiving a third request to access the media asset on the first user equipment; Preventing access to the media asset on the first user device while the media asset is being copied to the second user device; Item 49. The method of item 49, further comprising: (Item 51) accessing a viewing progress data structure containing currently stored media assets; storing an indication that the media asset has been played to completion in a field for the media asset; 51. The method of any of items 42-50, further comprising: [Brief explanation of the drawings]
[0028] These and other objects and advantages of the present disclosure will become apparent from a review of the following detailed description taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout.
[0029] [Figure 1] FIG. 1 shows an illustrative example of a two-factor authentication approach for performing operations related to media assets, according to some embodiments of the present disclosure. [Figure 2] FIG. 2 is an illustrative example of a database structure for storing parental control information according to some embodiments of the present disclosure. [Figure 3]FIG. 3 is an illustrative display of a user interface for requiring two-factor authentication for an operation associated with a media asset, according to some embodiments of the present disclosure. [Figure 4] FIG. 4 is an illustrative display of a user interface for blocking actions associated with a media asset, according to some embodiments of the present disclosure. [Figure 5] FIG. 5 shows an illustrative example of a media guide display for navigating and selecting media assets according to some embodiments of the present disclosure. [Figure 6] FIG. 6 shows another illustrative example of a media guide display for navigating and selecting media assets according to some embodiments of the present disclosure. [Figure 7] FIG. 7 is a block diagram of an illustrative user equipment device according to some embodiments of the disclosure. [Figure 8] FIG. 8 is a block diagram of an illustrative media system according to some embodiments of the disclosure. [Figure 9-1] FIG. 9 is a flowchart of illustrative steps for authorizing an action associated with a blocked media asset using two-factor authentication, according to some embodiments of the disclosure. [Figure 9-2] FIG. 9 is a flowchart of illustrative steps for authorizing an action associated with a blocked media asset using two-factor authentication, according to some embodiments of the disclosure. [Figure 10] FIG. 10 is a flowchart of illustrative steps for determining whether a received authorization code permits access to a media asset, according to some embodiments of the disclosure. [Figure 11] FIG. 11 is a flowchart of illustrative steps for determining whether a requested operation requires a second authorization code, according to some embodiments of the present disclosure. [Figure 12]FIG. 12 is a flowchart of illustrative steps for performing operations on media assets according to some embodiments of the present disclosure. [Figure 13-1] FIG. 13 is another flowchart of illustrative steps for authorizing an operation associated with a blocked media asset using two-factor authentication, according to some embodiments of the present disclosure. [Figure 13-2] FIG. 13 is another flowchart of illustrative steps for authorizing an operation associated with a blocked media asset using two-factor authentication, according to some embodiments of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0030] Systems and methods are described herein for authorizing operations associated with blocked media assets using two-factor authentication. For example, a media guidance application (e.g., executed by a set-top box or other user equipment used to store and display media assets) prompts a user to enter a password (e.g., a PIN) to unlock the content for viewing. In response to receiving a second request from the user to perform an operation related to the media asset (e.g., delete), the media guidance application prompts the user to enter an additional factor that verifies their identity in accordance with a two-factor authentication protocol. If the user's identity is authenticated as a user authorized to perform an operation related to the media asset (e.g., delete the stored media asset), the media guidance application performs the operation related to the media asset (e.g., delete the media asset).
[0031] 1 shows an illustrative example of a two-factor authentication approach for performing an operation related to a media asset, according to some embodiments of the present disclosure. For example, display 102 may be coupled to user equipment 104 running a media guidance application to display media asset 106. After receiving a request to perform an operation associated with media asset 106, the media guidance application may generate and perform the operation to display prompt 110 for entry of an authorization code. Display 102 may appear on one or more user devices (e.g., any of the devices listed in FIGS. 7-8 below). The media guidance application may also use one or more of the processes described in FIGS. 9-13 to generate display 102 or any of the features described therein.
[0032] A media guidance application (e.g., running on user equipment 104) receives a first request to access a media asset for viewing on the user equipment, and access to the media asset is blocked. For example, the media guidance application may store multiple media assets in storage that is either local to the user device that generates the media assets for display (e.g., in memory of user equipment 104) or remote at a server. The media guidance application may generate a list of media assets (e.g., in a user interface displayed on display 102) from which a user may select for viewing. The media guidance application may set a flag indicating whether each media asset should be blocked for a given user based on metadata associated with each stored media asset. As a specific example, the media guidance application may set a flag based on metadata associated with a media asset (e.g., media asset 106) that indicates that it meets predetermined blocking criteria (e.g., a particular user cannot watch programs with ratings above TV-PG, and media asset 106 has a content rating of TV-MA above TV-PG).
[0033] The media guidance application then receives a first input of a first authorization code. The first authorization code may be any combination of alphanumeric characters that can be matched to a stored alphanumeric string. The media guidance application may receive the first identifier via user input using a user input interface, such as remote control 108. For example, the media guidance application may receive user input "1578" via remote control 108.
[0034] The media guidance application determines that the received first authorization code matches a stored first identifier that grants access to view the media asset. For example, the media guidance application determines whether the received input “1578” matches a value stored in memory for the first identifier, as described further below with respect to FIG. 2. As a specific example, the media guidance application may access a parental control database that includes multiple identifiers associated with permissions (i.e., whether each code may access the media asset). The media guidance application may compare the received first authorization code with the stored identifiers (e.g., by comparing the characters of the first authorization code with each character of the stored identifiers) and determine a match. After determining a match, the media guidance application reads data from a field in the database that corresponds to the matched identifier and determines whether the data indicates that the user has access to the media asset.
[0035] After determining that the received first authorization code matches the stored first identifier, the media guidance application generates the media asset for display. For example, the media guidance application may generate the media asset (e.g., media asset 106) for display on a display (e.g., display 102) connected to user equipment (e.g., user equipment 104). Alternatively, or in addition, the media guidance application may query a parental control database for an indication of whether a user identified by the first authorization code may view the media asset on a device not coupled to the user equipment (e.g., streamed to a mobile device such as mobile phone 112). As described further below with respect to FIG. 2, the media guidance application may store (e.g., in the parental control database) a temporary indication granting access to the media asset.
[0036] The media guidance application then receives a second request to perform an action associated with the media asset. The action may be any command or instruction that, when executed, modifies or copies stored audiovisual data for the media asset or any stored metadata about the media asset. For example, the media guidance application may receive a request via a user input interface (e.g., a touchscreen on mobile phone 112 or remote 108) to delete a media asset (e.g., media asset 106) from storage. As another example, the media guidance application may receive a request via a user input interface to copy the media asset to another device. As yet another example, the media guidance application may receive a request to update a user profile (e.g., with viewing progress or an indication that the user does not like the media asset) associated with the first authorization code.
[0037] Based on receiving the second request, the media guidance application queries a parental control database for information regarding allowable actions associated with the media asset. For example, the media guidance application may store, in a field of the parental control database for an identifier matching the first authorization code, a pointer to an array listing media assets on which a user is permitted to perform an action. The parental control database may include multiple fields, each with a pointer to an array indicating media assets for which a particular action can be performed without a second authorization code (e.g., delete, modify, etc.). Alternatively, or in addition, the media guidance application may store, with metadata stored with the media asset (e.g., media asset 106), an indication of actions that require a second authorization code (e.g., those that are not allowed with only the first authorization code). For example, the media guidance application may store the runtime, rating, first air date, and other metadata as a header in the stored audiovisual data for the media asset (e.g., media asset 106) and may additionally include an indication of actions that require a second authorization code.
[0038] The media guidance application determines from the information that a second authorization code is required to perform an operation associated with the media asset, and the second authorization code is generated periodically as a function of time by a token mechanism remote from the user equipment. For example, based on retrieving information from a parental control database as described above with respect to a stored media asset (e.g., media asset 106), the media guidance application determines whether a second factor is required to perform the function. The second authorization code may be generated by a token (e.g., a stand-alone token or an application running on a device such as mobile phone 112), which may then be entered into the media guidance application (e.g., via a user input interface). The token may generate the authorization code based on a mathematical function of clock time, similar to public key authentication. In some embodiments, other two-factor authentication methods, such as asymmetric (private-public key) authentication, may be used for the second authentication code.
[0039] The media guidance application receives a second input of a second authorization code generated at a first time. For example, the media guidance application may receive a second authorization code such as "45678" via a user input interface (e.g., entered into user equipment 104 using the user input interface). Based on the clock time when the input was received, the media guidance application may determine that the input was received at 10:23:30 (hours:minutes:seconds) on 05:31:16 (month:day:year). Alternatively, or in addition, the media guidance application may receive a clock time along with the entered second authorization code based on the clock time of the device (e.g., mobile phone 112) on which the code was generated.
[0040] The media guidance application may then transmit the second authorization code generated at the first time to an authorization database. For example, the media guidance application may transmit the second authorization code to a database that is located remotely from the user equipment (e.g., on a server) and accessible via a communications network, or that may be stored in memory at the user equipment (e.g., user equipment 104). In some embodiments, the media guidance application may preprocess the second authorization code. For example, the media guidance application may generate a data packet that includes the second authorization code and the time it was generated, as described above. In another example, the media guidance application may concatenate the time to the nearest second or minute before transmission, depending on how frequently new authorization codes are generated by the token mechanism.
[0041] In response to transmitting the second authorization code generated at the first time to the authorization database, the media guidance application receives an indication granting authorization to perform an operation associated with the media asset based on the transmitted second authorization code matching the second identifier generated at the first time. For example, the media guidance application may receive a data packet from the authorization package with a Boolean value set to “true” if the transmitted authorization code corresponds to the second identifier or “false” if it does not. The second identifier may be a second token mechanism with a mathematical function at a particular time that may compare its output (e.g., the second identifier) with the received second authorization code. The token may additionally be identified by the first authorization code, which would allow the authorization database to more efficiently determine whether the received second authorization code is correct. For example, the media guidance application may transmit to the authorization database that a user identified by the first authorization code “1234” entered the second authorization code “45678.” Instead of searching all token mechanisms stored in the authorization database, the authorization database only needs to search for tokens corresponding to user "1234" and determine whether "45678" was generated by that token at a particular time.
[0042] The media guidance application performs an action related to the media asset based on receiving an indication that the second authorization code matches the stored second identifier. For example, the media guidance application may execute instructions to erase or free a block of memory in which a particular media asset is stored (e.g., delete media asset 106 from storage).
[0043] In some embodiments, the operations may include a media guidance application accessing a block of memory containing data corresponding to a media asset. For example, the media guidance application may determine a particular segment of memory where audiovisual data for a media asset (e.g., media asset 106) is stored (e.g., locally in storage on user equipment 104 or remotely at a server). The media guidance application may then copy the data contained in the block of memory corresponding to the media asset to a second user equipment. For example, the media guidance application may retrieve the stored audiovisual data and transmit it to another device, such as a mobile phone (e.g., mobile phone 112), so that a user may access the media asset remotely from the user equipment (e.g., user equipment 104).
[0044] In some embodiments, in response to copying the data, the media guidance application stores an indication that the media asset has been copied to the second user equipment in a field associated with the media asset in a parental control database. For example, the media guidance application may store an indication that the media asset has been copied to the second user equipment (e.g., by adding an identifier for media asset 106 to the array) in an array of media assets copied to other user equipment indicated in a field of the parental control database (e.g., as described below with respect to FIG. 2). The media guidance application receives a third request to access the media asset on the first user equipment. For example, the media guidance application may receive, via a user input interface, a request to access the media asset (e.g., media asset 106) on the user equipment (e.g., user equipment 104) that originally scheduled it for storage. The media guidance application then prevents access to the media asset (e.g., media asset 106) on the first user equipment (e.g., user equipment 104) while the media asset is stored on the second user equipment (e.g., on mobile phone 112). For example, the media guidance application may query the array and determine that access is not permitted from the first user equipment because the media asset's identifier is stored in the array. In this manner, the media guidance application ensures that a media asset cannot be stored and viewed on multiple devices simultaneously by maintaining a "checked out" mechanism.
[0045] In other embodiments, the operations include the media guidance application accessing a viewing progress data structure that includes currently stored media assets. For example, the media guidance application may access the viewing progress data structure locally in a storage device (e.g., at user equipment 104) or remotely at a server via a communications network. The viewing progress data structure may be organized such that each media asset has an associated viewing progress, which may be expressed in terms of time or percentage viewed. The media guidance application then stores an indication in a field for the media asset that the media asset has been viewed to completion. For example, the media guidance application may update a field in the viewing progress data structure to reflect the current user's viewing progress of a media asset (e.g., media asset 106). As a specific example, the user may have completed a media asset, and therefore the media guidance application may set a "viewed to completion" flag to "true."
[0046] Alternatively, the media guidance application may determine that the requested second authorization code is the user's biometric signature. For example, the media guidance application may perform the same steps outlined above, but instead of receiving a code generated by a token mechanism (e.g., by an application on mobile phone 112), the media guidance application receives the biometric signature. As a specific example, the biometric signature may be the user's iris scan, fingerprint scan, or face map transmitted to the media guidance application as an image (e.g., captured by an integrated camera on user equipment 104 or mobile phone 112). The media guidance application may analyze the biometric signature (e.g., by analyzing key points / patterns in a pixel map of the received image) and compare it to a stored biometric signature, or may transmit the biometric signature to a remote server, which analyzes the biometric signature and determines whether it matches a second stored identifier, similarly as described above with respect to the authorization database and token mechanism.
[0047] 2 is an illustrative example of a database structure for storing parental control information according to some embodiments of the present disclosure. For example, parental control database 200 and stored metadata 250 may be stored either locally in a storage device (e.g., on any of the devices listed in FIGS. 7-8 below) or remotely on a server accessible via a communications network. Also, the media guidance application may use one or more of the processes described in FIGS. 9-13 to generate parental control database 200 and stored metadata 250, or any of the features described therein.
[0048] Parental control database 200 may be organized as a table with multiple identifiers (e.g., identifier 202) each with associated stored data. In some embodiments, the stored identifier may be a first authorization code (e.g., it is both a user's identifier and authorization code). In other embodiments, each identifier may have an associated username (e.g., additional field 210 includes a stored string for a username, such as "Dad") and / or a different associated authorization code.
[0049] For each identifier, the parental control database includes blocking criteria (e.g., blocking criteria 204) and an indication of the type of second factor (e.g., second factor 206) that may be used for two-factor authentication for the particular identifier, as well as any alternative second factors (e.g., alternative second factor 208). The blocking criteria fields may be a single field per blocking criteria (e.g., more stored in additional field 210) or may include a pointer to an array containing all blocking criteria associated with the user (e.g., including blocking criteria 204). Second element 206 and alternative second element 208 are standard strings that, when read by the media guidance application, instruct the media guidance application which program script to launch. For example, the media guidance application may read the string “token” from the parental control database and determine that a script needs to be executed to prompt the user to enter a second authorization code generated by a token mechanism to authenticate a particular identifier (e.g., corresponding to the user).
[0050] Additional fields 210 may include a separate field for each action that can be performed on a media asset. Specifically, the media guidance application may store a pointer to an array for media assets for which the user is authorized (or not authorized) to perform a particular action. As an example, identifier "1234" (e.g., identifier 202) may be authorized to delete the media assets "Game of Thrones" and "Westworld" because their identifiers are stored in an array pointed to from a parental control database for delete actions. Based on the identifiers in the array, the media guidance application may determine whether a second element is required to perform the requested action (e.g., as described above with respect to FIG. 1) and then determine a second element (e.g., second element 206) that can be used to authenticate the user and allow the user to perform the action (if applicable).
[0051] Stored metadata 250 may include metadata about stored media assets and may be stored in memory along with data for the media assets (e.g., as a header in an audiovisual file that includes data for the media assets). The stored metadata may include total running time 252, rating 254, and an indication of the operation that requires a second factor to perform. For example, the media guidance application may store a Boolean value that is set to “true” if two-factor authentication is required (e.g., delete second factor 256) or “false” if two-factor authentication is not required (e.g., copy second factor 258 and update viewing progress second factor 260). In some embodiments, the media guidance application may store (e.g., in additional field 262) the specific user for whom two-factor authentication is required to perform the operation.
[0052] In some embodiments, the media guidance application retrieves the first stored identifier from a field in a parental control database (e.g., parental control database 200) that contains multiple entries with stored identifiers (e.g., identifier 202) associated with the user. For example, the media guidance application may execute an SQL program script utilizing a declarative “select” statement to retrieve a value for the first stored identifier, such as “1234,” from a field in the database. The media guidance application may determine whether the first stored identifier (e.g., identifier 202) matches a received authorization code by comparing the characters of the first stored identifier with the characters of the received authorization code. For example, the media guidance application may compare each indexed character of the received string (i.e., the first authorization code) with each indexed character of the stored identifier and determine whether the two strings match. The media guidance application may determine a match if the number or percentage of matched characters exceeds a threshold. For example, the media guidance application may determine that "1234567891" matches "1224567891" if the 90% match exceeds a threshold percentage (e.g., 75%).
[0053] In response to determining that the first stored identifier matches the received authorization code, the media guidance application reads a value from a field associated with the first stored identifier. For example, the media guidance application may read blocking criteria (e.g., blocking criteria 204) (e.g., a user identified by the first stored identifier cannot access media assets with a rating above TV-PG) from a field associated with the first stored identifier. The media guidance application then determines whether the user identified by the first stored identifier has access to the media asset based on the value. For example, the media guidance application may compare the blocking criteria read from the field associated with the first stored identifier with metadata associated with the media asset (e.g., stored metadata 250) to determine whether the user identified by the first stored identifier has permission to access the media asset. As a specific example, if the blocking criteria is a rating of “TV-PG” and the media asset has a rating of “TV-MA” (e.g., as indicated by stored metadata 250), the media guidance application may determine that the user does not have permission to access the media asset because the media asset's rating exceeds the blocking criteria rating.
[0054] In some embodiments, the media guidance application generates instructions that grant access to view the media asset for a predetermined period of time. For example, after the media guidance application determines that a user identified by a first authorization code (which may be, for example, identifier 202 as described above) has access to the media asset, the media guidance application may generate instructions (e.g., by executing a program script) that grant access to the media asset for a period of time. The media guidance application may then execute the instructions, which store a temporary indication in a field associated with the first stored identifier in a parental control database (e.g., parental control database 200) granting access to view the media asset. For example, the media guidance application may execute the generated program script, which then stores an indication (e.g., a Boolean value set to “true”) in the parental control database (e.g., in additional field 210 of parental control database 200) that the user has access to the media asset. The media guidance application then monitors the elapsed time in response to executing the instructions. For example, a program script may store an end time in a parental control database (e.g., in parental control database 200) when access to a media asset expires, and the media guidance application may run another program script and remove the indication when the time reaches a value within the end time. Alternatively, the media guidance application may continue to run a program script that monitors the clock time and removes the indication after a predetermined period of time. In response to determining that the elapsed time exceeds the predetermined period of time, the media guidance application removes the temporary indication to allow access to view the media asset.For example, the media guidance application may reset the contents of the field in which the indication was stored (eg, one of additional fields 210 in parental control database 200).
[0055] In some embodiments, in response to receiving an indication denying authorization to perform an operation associated with the media asset based on a transmitted second authorization code that does not match a second identifier generated at a first time, the media guidance application queries a parental control database to determine whether there is an alternative second authorization code for enabling the operation. For example, the media guidance application may receive a data packet from an authorization package with a Boolean value that is set to “false” if the transmitted authorization code does not correspond to the second identifier. The media guidance application then accesses a parental control database (e.g., parental control database 200) to determine whether any other second factor authorization sources are associated with the first stored identifier (e.g., alternative second authorization factor 208). For example, the media guidance application may determine, based on data stored in the parental control database (e.g., alternative second authorization factor 208), that the user can also be identified via a biometric signature (e.g., iris scan or facial recognition) as the second authorization code. In response to determining that there is an alternative second authorization code to enable the operation, the media guidance application generates to display an indication to enter the alternative second authorization code. For example, the media guidance application may generate to display a prompt to use a camera (e.g., integrated into a mobile phone) and enter a biometric signature as the second authorization code.
[0056] In some embodiments, the media guidance application may prompt for input of an alternative second authorization code (from another source) only after a threshold number of failed matches to the second identifier for the initial second authorization code (e.g., second element 206). For example, if the media guidance application receives an indication from the authorization database that three consecutive transmitted second authorization codes failed to match the second stored identifier, the media guidance application may decide to prompt for input of an alternative second authorization code (e.g., alternative second authorization element 208).
[0057] 3 is an illustrative display of a user interface for requesting two-factor authentication for an operation associated with a media asset, according to some embodiments of the present disclosure. For example, a media guidance application may generate a permission menu 304 to display on display 302. Display 302 may appear on one or more user devices (e.g., any of the devices listed in FIGS. 7-8 below). The media guidance application may also use one or more of the processes described in FIGS. 9-13 to generate display 302 or any of the features described therein.
[0058] Permission menu 304 may include text indicating the identifier of the media asset the user is scheduling for storage (e.g., "Game of Thrones") and a prompt containing options to set permissions for actions that will require two-factor authentication. For example, the media guidance application may generate multiple options that, when selected, require two-factor authentication to perform the corresponding action, such as delete option 306, copy option 314, and update viewing progress option 316. In some embodiments, the selection of an option requiring two-factor authentication for a specific action (e.g., delete option 306 as indicated by indicator 308) may be further customized for a specific user (e.g., via selection of specific user 312) or set for all users (e.g., via selection of all users 310).
[0059] In some embodiments, the media guidance application receives user input and schedules media assets for storage. For example, the media guidance application may receive user input via a user input interface (e.g., a remote control) to schedule a media asset for storage. As a specific example, a user may select a particular media asset listing in a grid guide generated by the media guidance application, causing the media asset to be added to the scheduling database. In response to receiving the user input, the media guidance application generates to display a user interface (e.g., including permission menu 304) with multiple selectable options (e.g., options 306, 314, and / or 316) for restricting access to corresponding actions. For example, the media guidance application may generate a user interface with a button to require two-factor authentication for an action that may be performed on the media asset (e.g., delete option 306). The media guidance application receives a selection of a selectable option for restricting access to a corresponding action. For example, the media guidance application may receive a user selection via the user input interface to restrict access (e.g., require two-factor authentication) for a particular action (e.g., delete). In response to receiving the selection, the media guidance application stores information that the operation requires a second authorization code in a parental control database (e.g., as described above with respect to FIG. 2). For example, the media guidance application may add an identifier for the media asset to an array of pointers in the parental control database to which the pointers for the operation point, as described above. Alternatively, or in addition, the media guidance application may store an indication with the metadata of the stored media asset, as described above with respect to FIG. 2.
[0060] 4 is an illustrative display of a user interface for blocking an action associated with a media asset according to some embodiments of the disclosure. For example, a media guidance application may generate an alert 404 for display on a display 402 of a mobile device 400. The alert 404 may include text indicating that a request to perform a particular action (e.g., delete) has been received by the media guidance application. The alert 404 may additionally be generated to display a selectable option 406 to block the action and a selectable option 408 to allow it. The display 402 may appear on one or more user devices (e.g., any of the devices listed in FIGS. 7-8 below). The media guidance application may also use one or more of the processes described in FIGS. 9-13 to generate the display 402 or any of the features described therein.
[0061] In some embodiments, the media guidance application accesses a user database that includes identifiers of users who accessed a media asset. For example, the media guidance application may maintain a database or other suitable data structure and store the user's identifier in a field associated with the media asset's identifier after the user accesses the media asset. As a specific example, the user identifier may be a first authorization code, such as "1111." In some embodiments, the user database may be associated with the parental control database discussed above with respect to FIG. 2 (e.g., pointed to or linked through an index data structure). The media guidance application then retrieves device contact information associated with the user who accessed the media asset from the field in the user database associated with the identifier. For example, the media guidance application may determine that the user identified by authorization code "1111" previously viewed the same media asset that the user identified by first authorization code "1234" indicated they wanted to perform an action on, and retrieves the contact information (e.g., of mobile device 400) for the user identified by authorization code "1111." As a specific example, the media guidance application may retrieve the mobile phone number "123-456-7890" from a field in a user database corresponding to the user identified by the authorization code "1111." The media guidance application then transmits a notification to the user to a device (e.g., mobile device 400) based on the contact information that an action associated with the media asset has been received. For example, the media guidance application may transmit a message to the mobile phone based on the retrieved phone number. The transmitted message may include details of the action and / or the user attempting to perform the action. For example, the media guidance application may transmit the message, "User "Steve" is attempting to delete 'Game of Thrones, Season 6, Episode 5'."
[0062] In addition to transmitting a notification to the user that an action associated with the media asset has been received, in some embodiments, the media guidance application receives an indication from the device to prevent the action. For example, the media guidance application may receive an indication to block the action from the device to which the message was transmitted (e.g., via user input selecting block option 406). As a specific example, if the notification is transmitted to the user's mobile phone, the message may include text instructing the user to reply to the message if they want to block the action. In some embodiments, the media guidance application may determine whether the user has authority to block the action based on an indication stored in a user database associated with the user, and would include only text instructing the user to reply to the message if they have authority to block the action. The media guidance application then stores the indication in a second field of a parental control database associated with the media asset, and the indication prevents the action from being performed. For example, the media guidance application may remove the media asset from an array of media assets that the user has permission to delete (e.g., as indicated by a field in the parental control database, as described above with respect to FIG. 2) based on the received indication to block the action. Alternatively, or in addition, the media guidance application may add the media asset to an array in the parental control database for media assets that have been blocked by another user from allowing the user to perform an action.
[0063] The amount of content available to users in any given content delivery system can be staggering. As a result, many users desire a form of media guidance through an interface that allows them to efficiently navigate content selections and easily identify potentially desirable content. Applications that provide such guidance are referred to herein as interactive media guidance applications, but may also sometimes be referred to as media guidance applications or guidance applications.
[0064] Interactive media guidance applications may take various forms depending on the content for which they provide guidance. One typical type of media guidance application is an interactive television program guide. Interactive television program guides (sometimes referred to as electronic program guides) are well-known guidance applications that, among other things, allow users to navigate among and identify many types of content or media assets. Interactive media guidance applications may generate graphical user interface screens that allow users to navigate among, identify, and select content. As referred to herein, the terms “media assets” and “content” should be understood to mean television programs and electronically consumable user assets, such as pay programs, on-demand programs (as in video-on-demand (VOD) systems), Internet content (e.g., streaming content, downloadable content, webcasts, etc.), video clips, audio, content information, photos, rotating images, documents, playlists, websites, articles, books, e-books, blogs, chat sessions, social media, applications, games, and / or any other media or multimedia, and / or combinations thereof. Guidance applications also allow users to navigate among and identify content. As referred to herein, the term "multimedia" should be understood to mean content that utilizes at least two of the different content forms described above, e.g., text, audio, image, video, or interactive content forms. The content may be recorded, played, displayed, or accessed by a user equipment device, but may also be part of a live performance.
[0065] The media guidance application and / or any instructions for implementing any of the embodiments discussed herein may be encoded on a computer-readable medium. A computer-readable medium includes any medium capable of storing data. The computer-readable medium may be transient, including, but not limited to, propagating electrical or electromagnetic signals, or non-transitory, including, but not limited to, volatile and non-volatile computer memory or storage devices such as hard disks, floppy disks, USB drives, DVDs, CDs, media cards, register memory, processor cache, random access memory ("RAM"), etc.
[0066] With the advent of the Internet, mobile computing, and high-speed wireless networks, users are accessing media on user equipment devices that they had not previously used. As referred to herein, the terms “user equipment device,” “user equipment,” “user device,” “electronic device,” “electronic equipment,” “media equipment device,” or “media device” should be understood to mean any device for accessing the content described above, such as a television, smart TV, set-top box, integrated receiver decoder (IRD) for supporting satellite television, digital storage device, digital media receiver (DMR), digital media adapter (DMA), streaming media device, DVD player, DVD recorder, connectable DVD, local media server, BLU-RAY® player, BLU-RAY® recorder, personal computer (PC), laptop computer, tablet computer, Web TV box, personal computer television (PC / TV), PC media server, PC media center, handheld computer, landline telephone, personal digital assistant (PDA), mobile phone, portable video player, portable music player, portable game console, smartphone, or any other television equipment, computing equipment, or wireless device, and / or combinations thereof. In some embodiments, user equipment devices may have front and rear screens, multiple front screens, or multiple angled screens. In some embodiments, user equipment devices may have front and / or rear cameras. On these user equipment devices, users may be able to navigate among and identify the same content available through televisions. Consequently, media guides may also be available on these devices. The guides provided may be for content available only through televisions, content available only through one or more of the other types of user equipment devices, or content available through both televisions and one or more of the other types of user equipment devices.The media guidance application may be provided on a user equipment device, as an online application (i.e., provided on a website), or as a stand-alone application or client. Various devices and platforms on which the media guidance application may be implemented are described in more detail below.
[0067] One of the functions of a media guidance application is to provide media guidance data to a user. As referred to herein, the phrases “media guidance data” or “guide data” should be understood to mean any data related to content or data used in operating the guidance application. For example, the guide data may include program information, guidance application settings, user preferences, user profile information, media listings, media-related information (e.g., broadcast time, broadcast channel, title, content, rating information (e.g., parental control rating, critics' rating, etc.), genre or category information, actor information, logo data for broadcaster or provider logos, etc.), media format (e.g., standard definition, high definition, 3D, etc.), on-demand information, blogs, websites, and any other type of guide data that helps a user navigate among and identify desired content selections.
[0068] 5-6 show illustrative display screens that may be used to provide media guidance data. The display screens shown in FIGS. 5-6 may be implemented on any suitable user equipment device or platform. While the displays in FIGS. 5-6 are illustrated as full-screen displays, they may also be fully or partially overlaid on the displayed content. A user may indicate a desire to access content information by selecting a selectable option (e.g., a menu option, a list option, an icon, a hyperlink, etc.) provided on the display screen or by pressing a dedicated button (e.g., a “Guide” button) on a remote control or other user input interface or device. In response to a user indication, the media guidance application may provide the display screen with media guidance data organized in one of several ways, such as by time and channel in a grid, by time, by channel, by source, by content type, by category (e.g., movies, sports, news, kids, or other program categories), or other predetermined, user-defined, or other organization criteria.
[0069] FIG. 5 shows an illustrative grid of program listings display 500 arranged by time and channel, which also enables access to different types of content within a single display. Display 500 may include: (1) a column of channel / content type identifiers 504, where each channel / content type identifier (cell in the column) identifies a different available channel or type of content, and (2) a grid 502 with rows of time identifiers 506, where each time identifier (cell in the row) identifies a time slot for the program. Grid 502 also includes cells of program listings, such as program listing 508, where each listing provides the title of the program provided above the listing's associated channel and time. Using a user input device, a user can select a program listing by moving highlight region 510. Information about the program listing selected by highlight region 510 may be provided in program information region 512. Region 512 may include, for example, the program title, program content, the time the program is offered (if applicable), the channel on which the program is broadcast (if applicable), the program's rating, and other desired information.
[0070] In addition to providing access to linear programming (e.g., content scheduled for transmission to multiple user equipment devices at predetermined times and provided according to a schedule), the media guidance application also provides access to nonlinear programming (e.g., content accessible to user equipment devices at any time and not provided according to a schedule). Nonlinear programming may include content from different content sources, including on-demand content (e.g., VOD), Internet content (e.g., streaming media, downloadable media, etc.), locally stored content (e.g., content stored on any of the user equipment devices described above or other storage devices), or other content that is not time-sensitive. On-demand content may include movies or any other content provided by a particular content provider (e.g., HBO On Demand, which provides "The Sopranos" and "Curb Your Enthusiasm"). HBO ON DEMAND is a service mark owned by Time Warner Company LP et al., and THE SOPRANOS and CURB YOUR ENTHUSIASM are trademarks owned by Home Box Office, Inc. Internet content may include web events such as chat sessions or webcasts, or content available on demand as streaming or downloadable content through an Internet website or other Internet access (eg, FTP).
[0071] Grid 502 may provide media guide data for non-linear programming, including on-demand listings 514, recorded content listings 516, and Internet content listings 518. A display that combines media guidance data for content from different types of content sources is sometimes referred to as a “mixed-media” display. Various permutations of the types of media guidance data that may be displayed, different from display 500, may be based on user selection or guide application definition (e.g., displaying only recorded and broadcast listings, displaying only on-demand and broadcast listings, etc.). As illustrated, listings 514, 516, and 518 are shown as spanning the entire time slot displayed in grid 502 to indicate that selecting these listings may provide access to a dedicated view of on-demand listings, recorded listings, or Internet listings, respectively. In some embodiments, listings for these content types may be included directly in grid 502. In response to a user selecting one of navigation icons 520, additional media guidance data may be displayed (pressing arrow keys on a user input device may affect the display in a similar manner to selecting navigation icon 520).
[0072] Display 500 may also include video region 522 and options region 526. Video region 522 may allow a user to watch and / or preview programs that are currently available, will be available, or have been available to the user. The content of video region 522 may correspond to or be independent of one of the listings displayed in grid 502. Grid displays that include a video region are sometimes referred to as picture-in-guide (PIG) displays. PIG displays and their functionality are described in more detail in U.S. Pat. No. 6,564,378, issued May 13, 2003, to Satterfield et al., and U.S. Pat. No. 6,239,794, issued May 29, 2001, to Yuen et al., which are incorporated herein by reference in their entireties. PIG displays may also be included in other media guidance application display screens in embodiments described herein.
[0073] Options area 526 may allow a user to access different types of content, media guidance application views, and / or media guidance application features. Options area 526 may be part of display 500 (and other display screens described herein) or may be invoked by the user by selecting an on-screen option or pressing a dedicated or assignable button on a user input device. Selectable options in options area 526 may relate to features related to program listings in grid 502 or may include options available from a main menu display. Features related to program listings may include finding other broadcast times or reception methods for programs, recording programs, enabling continuous recording of programs, setting programs and / or channels as favorites, purchasing programs, or other features. Options available from a main menu display may include search options, VOD options, parental control options, internet options, cloud-based options, device sync options, second screen device options, options to access various types of media guidance data displays, options to subscribe to premium services, options to edit the user's profile, options to access a browser overlay, or other options.
[0074] The media guidance application may be personalized based on user preferences. A personalized media guidance application allows a user to customize the display and features to create a personalized “experience” with the media guidance application. This personalized experience may be created by allowing the user to input these customizations and / or by the media guidance application monitoring user activity to determine various user preferences. Users may access their personalized guidance application by logging in or otherwise identifying themselves to the guidance application. Customizations of the media guidance application may be created according to a user profile. Customizations may include changing the presentation style (e.g., display color scheme, text font size, etc.), aspects of the displayed content listings (e.g., HDTV programs only or 3D programs only, user-specified broadcast channels based on favorite channel selections, channel display sorting, recommended content, etc.), desired recording characteristics (e.g., recording or continuous recording for a particular user, recording quality, etc.), parental control settings, customized presentation of Internet content (e.g., presentation of social media content, email, electronically distributed articles, etc.), and other desired customizations.
[0075] The media guidance application may allow the user to provide user profile information or may automatically compile user profile information. The media guidance application may, for example, monitor the content the user accesses and / or other interactions the user may have with the guidance application. In addition, the media guidance application may obtain, in whole or in part, other user profiles associated with a particular user (e.g., from other websites on the Internet the user accesses, such as www.allrovi.com, from other media guidance applications the user accesses, from other interactive applications the user accesses, from another of the user's user equipment devices, etc.) and / or obtain information about the user from other sources the media guidance application may access. As a result, the user can be provided with a unified guidance application experience across the user's different user equipment devices. This type of user experience is described in more detail below in connection with FIG. 8. Additional personalized media guide application features are described in more detail in U.S. Patent Application Publication No. 2005 / 0251827 to Ellis et al., filed July 11, 2005, U.S. Patent No. 7,165,098 to Boyer et al., filed January 16, 2007, and U.S. Patent Application Publication No. 2002 / 0174430 to Ellis et al., filed February 21, 2002, which are incorporated by reference in their entireties.
[0076] Another display arrangement for providing a media guide is shown in FIG. 6. Video mosaic display 600 includes selectable options 602 for content information organized based on content type, genre, and / or other organization criteria. In display 600, television listings option 604 is selected, thus providing listings 606, 608, 610, and 612 as broadcast program listings. In display 600, the listings may provide graphical images including cover art, still images from the content, previews of video clips, live video from the content, or other types of content that indicate to the user the content described by the media guide data in the listing. Each graphical listing may also be accompanied by text to provide further information about the content associated with the listing. For example, listing 608 may include more than one portion, including media portion 614 and text portion 616. Media portion 614 and / or text portion 616 may be selectable to watch the content full screen or to view information related to the content displayed in media portion 614 (e.g., to view listings for the channel on which the video is displayed).
[0077] The listings in display 600 are of different sizes (i.e., listing 606 is larger than listings 608, 610, and 612), although all listings could be the same size if desired. The listings may be different sizes or graphically highlighted to indicate a degree of user interest or to highlight certain content, as desired by the content provider or based on user preferences. Various systems and methods for graphically highlighting content listings are discussed, for example, in U.S. Patent Application Publication No. 2010 / 0153885 to Yates, filed November 12, 2009, which is incorporated herein by reference in its entirety.
[0078] A user may access content and media guidance applications (and their display screens, described above and below) from one or more of their user equipment devices. FIG. 7 shows a generalized embodiment of an illustrative user equipment device 700. A more specific implementation of a user equipment device is discussed below in connection with FIG. 8. User equipment device 700 may receive content and data via input / output (hereinafter “I / O”) path 702. I / O path 702 may provide content (e.g., broadcast programs, on-demand programs, Internet content, content available over a local area network (LAN) or wide area network (WAN), and / or other content) and data to control circuitry 704, which includes processing circuitry 706 and storage device 708. Control circuitry 704 may be used to send and receive commands, requests, and other suitable data using I / O path 702. I / O path 702 may connect control circuitry 704 (specifically, processing circuitry 706) to one or more communication paths (described below). An I / O function may be provided by one or more of these communication paths, but is shown as a single path in FIG. 7 to avoid overcomplicating the drawing.
[0079] Control circuitry 704 may be based on any suitable processing circuitry, such as processing circuitry 706. As referred to herein, processing circuitry is understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include multi-core processors (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores) or supercomputers. In some embodiments, processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple processing units of the same type (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor). In some embodiments, control circuitry 704 executes instructions for a media guidance application stored in memory (i.e., storage device 708). Specifically, control circuitry 704 may be instructed by the media guidance application to perform the functions discussed above and below. For example, the media guidance application may provide control circuitry 704 with instructions to generate a media guidance display. In some implementations, any actions performed by control circuitry 704 may be based on instructions received from a media guidance application.
[0080] In client-server-based embodiments, control circuitry 704 may include suitable communications circuitry for communicating with a guidance application server or other network or server. Instructions for implementing the functionality described above may be stored on the guidance application server. The communications circuitry may include a cable modem, an Integrated Services Digital Network (ISDN) modem, a Digital Subscriber Line (DSL) modem, a telephone modem, an Ethernet card, a wireless modem for communicating with other equipment, or any other suitable communications circuitry. Such communications may involve the Internet or any other suitable communications network or path (described in more detail in connection with FIG. 8). Additionally, the communications circuitry may include circuitry that enables peer-to-peer communication of user equipment devices or communication of user equipment devices at locations remote from each other (described in more detail below).
[0081] The memory may be an electronic storage device provided as storage device 708 that is part of control circuitry 704. As referred to herein, the phrase “electronic storage device” or “storage device” should be understood to mean any device for storing electronic data, computer software, or firmware, such as random-access memory, read-only memory, hard drive, optical drive, digital video disc (DVD) recorder, compact disc (CD) recorder, BLU-RAY® Disc (BD) recorder, BLU-RAY® 3D Disc recorder, digital video recorder (DVR, or sometimes also called personal video recorder or PVR), solid-state device, quantum storage device, game console, game media, or any other suitable fixed or removable storage device, and / or any combination thereof. Storage device 708 may be used to store various types of content described herein and the media guidance data described above. Non-volatile memory may also be used (e.g., to run boot-up routines and other instructions). Cloud-based storage, as described in connection with FIG. 8, may be used to supplement or in place of storage 708.
[0082] The control circuitry 704 may include video generation and tuning circuitry, such as one or more analog tuners, one or more MPEG-2 decoders or other digital decoding circuitry, a high-definition tuner, or any other suitable tuning or video circuitry, or a combination of such circuitry. Encoding circuitry (e.g., for converting over-the-air, analog, or digital signals to MPEG signals for storage) may also be provided. The control circuitry 704 may also include scaling circuitry for upconverting and downconverting content to a preferred output format for the user equipment 700. The circuitry 704 may also include digital-to-analog and analog-to-digital conversion circuitry for converting between digital and analog signals. The tuning and encoding circuitry may be used by the user equipment device to receive and display, play, or record content. The tuning and encoding circuitry may also be used to receive guide data. For example, the circuitry described herein, including tuning, video generation, encoding, decoding, encryption, decryption, scaling, and analog-to-digital circuitry, may be implemented using software running on one or more general-purpose or specialized processors. Multiple tuners may be provided to accommodate simultaneous tuning functions (e.g., watch and record functions, picture-in-picture (PIP) functions, multi-tuner recording functions, etc.) If storage 708 is provided as a device separate from user equipment 700, tuning and encoding circuitry (including multiple tuners) may be associated with storage 708.
[0083] A user may send instructions to control circuitry 704 using user input interface 710. User input interface 710 may be any suitable user interface, such as a remote control, a mouse, a trackball, a keypad, a keyboard, a touchscreen, a touchpad, a stylus input, a joystick, a voice recognition interface, or other user input interface. Display 712 may be provided as a stand-alone device or may be integrated with other elements of user equipment device 700. For example, display 712 may be a touchscreen or a touch-sensitive display. In such situations, user input interface 710 may be integrated with or combined with display 712. Display 712 may be one or more of a monitor, television, mobile device liquid crystal display (LCD), amorphous silicon display, low-temperature polysilicon display, electronic ink display, electrophoretic display, active matrix display, electrowetting display, electrofluidic display, cathode ray tube display, light-emitting diode display, electroluminescent display, plasma display panel, high performance addressing display, thin film transistor display, organic light-emitting diode display, surface-conduction electron emitter display (SED), laser television, carbon nanotube, quantum dot display, interferometric modulator display, or any other suitable device for displaying visual images. In some embodiments, display 712 may be HDTV-compatible. In some embodiments, display 712 may be a 3D display, and the interactive media guide application and any suitable content may be displayed in 3D. A video card or graphics card may generate output to display 712. The video card may provide various features such as accelerated rendering of 3D scenes and 2D graphics, MPEG-2 / MPEG-4 decoding, TV output, or the ability to connect multiple monitors.The video card may be any of the processing circuitry described above in association with control circuitry 704. The video card may be integrated with control circuitry 704. Speakers 714 may be provided integrated with other elements of user equipment device 700 or may be a stand-alone unit. Audio components of video and other content displayed on display 712 may be played through speakers 714. In some embodiments, the audio may be distributed to a receiver (not shown), which processes and outputs the sound via speakers 714.
[0084] The guidance application may be implemented using any suitable architecture. For example, it may be a standalone application implemented entirely on user equipment device 700. In such an approach, the application's instructions are stored locally (e.g., in storage 708), and data for use by the application is periodically downloaded (e.g., from an out-of-band feed, from an Internet resource, or using another suitable approach). Control circuitry 704 may read the application's instructions from storage 708 and process the instructions to generate any of the displays discussed herein. Based on the processed instructions, control circuitry 704 may determine an action to perform when input is received from input interface 710. For example, moving a cursor up / down on a display may be indicated by the processed instructions when input interface 710 indicates that the up / down button has been selected.
[0085] In some embodiments, the media guidance application is a client-server-based application. Data for use by a thick or thin client implemented on user equipment device 700 is retrieved on demand by issuing requests to a server remote from user equipment device 700. In one example of a client-server-based guidance application, control circuitry 704 launches a web browser that interprets web pages provided by a remote server. For example, the remote server may store instructions for the application in a storage device. The remote server may use circuitry (e.g., control circuitry 704) to process the stored instructions and generate the displays discussed above and below. The client device may receive displays generated by the remote server and display the content of the displays locally on equipment device 700. In this manner, the processing of instructions is performed remotely by a server, while the resulting displays are provided locally on equipment device 700. Equipment device 700 may receive inputs from a user via input interface 710 and transmit those inputs to a remote server for processing and generating corresponding displays. For example, the appliance device 700 may transmit a communication to a remote server indicating that an up / down button has been selected via the input interface 710. The remote server may process instructions according to the input and generate a display of the application corresponding to the input (e.g., a display that moves a cursor up / down). The generated display is then transmitted to the appliance device 700 for presentation to the user.
[0086] In some embodiments, the media guidance application is downloaded and interpreted or otherwise invoked by an interpreter or virtual machine (invoked by control circuitry 704). In some embodiments, the guidance application may be encoded in ETV Binary Interchange Format (EBIF), received by control circuitry 704 as part of a suitable feed, and interpreted by a user agent running on control circuitry 704. For example, the guidance application may be an EBIF application. In some embodiments, the guidance application may be defined by a series of JAVA-based files that are received and invoked by a local virtual machine or other suitable middleware executed by control circuitry 704. In some such embodiments (e.g., those employing MPEG-2 or other digital media encoding schemes), the guidance application may be encoded and transmitted, for example, in an MPEG-2 object carousel with the program's MPEG audio and video packets.
[0087] User equipment device 700 of FIG. 7 may be implemented in system 800 of FIG. 8 as user television equipment 802, user computer equipment 804, wireless user communications device 806, or any other type of user equipment suitable for accessing content, such as a non-portable game console. For simplicity, these devices may be collectively referred to herein as user equipment or user equipment devices and may be substantially similar to the user equipment devices described above. User equipment devices on which a media guidance application may be implemented may function as stand-alone devices or may be part of a network of devices. Various network configurations of devices may be implemented and are discussed in more detail below.
[0088] User equipment devices utilizing at least some of the system features described above in connection with FIG. 7 may not be classified solely as user television equipment 802, user computing equipment 804, or wireless user communications device 806. For example, user television equipment 802 may be Internet-enabled, allowing access to Internet content, like some user computing equipment 804, while user computing equipment 804 may include a tuner, allowing access to television programs, like some television equipment 802. The media guidance application may also have the same layout on various different types of user equipment or may be tailored to the display capabilities of the user equipment. For example, on user computing equipment 804, the guidance application may be provided as a website accessed by a web browser. In another example, the guidance application may be scaled down for wireless user communications device 806.
[0089] In system 800, there is typically more than one user equipment device of each type, but to avoid overcomplicating the drawing, only one of each is shown in Figure 8. Additionally, each user may utilize more than one type of user equipment device and also more than one of each type of user equipment device.
[0090] In some embodiments, a user equipment device (e.g., user television equipment 802, user computer equipment 804, wireless user communications device 806) may be referred to as a “second screen device.” For example, the second screen device may complement the content presented on the first user equipment device. The content presented on the second screen device may be any suitable content that complements the content presented on the first device. In some embodiments, the second screen device provides an interface for adjusting settings and display preferences of the first device. In some embodiments, the second screen device is configured to interact with other second screen devices or interact with a social network. The second screen device may be located in the same room as the first device, in a different room from the first device but in the same home or building, or in a different building from the first device.
[0091] Users may also set various settings to maintain consistent media guidance application settings across in-home and remote devices. Settings include those described herein as well as favorite channels and programs, program preferences utilized by the guidance application to recommend programs, display preferences, and other desired guide settings. For example, if a user sets a channel as a favorite on their office personal computer, e.g., on the website www.allrovi.com, the same channel will appear as a favorite on the user's in-home devices (e.g., user television equipment and user computer equipment) and, if desired, on the user's mobile device. Thus, changes made on one user equipment device can change the guide experience on another user equipment device, whether the device is the same type or a different type. Additionally, changes made may be based on settings entered by the user and user activity monitored by the guidance application.
[0092] User equipment devices may be coupled to communications network 814. That is, user television equipment 802, user computer equipment 804, and wireless user communications device 806 are coupled to communications network 814 via communications paths 808, 810, and 812, respectively. Communications network 814 may be one or more networks including the Internet, a cellular network, a mobile voice or data network (e.g., a 4G or LTE network), a cable network, a public switched telephone network, or other types of communications networks, or combinations of communications networks. Paths 808, 810, and 812, separately or together, may include one or more communications paths, such as satellite paths, fiber optic paths, cable paths, paths supporting Internet communications (e.g., IPTV), free space connections (e.g., for broadcast or other wireless signals), or any other suitable wired or wireless communications paths, or combinations of such paths. Path 812 is depicted as a dashed line in the exemplary embodiment shown in Figure 8 to indicate that it is a wireless path, and paths 808 and 810 are depicted as solid lines to indicate that they are wired paths (although these paths may also be wireless paths, if desired). Communication with a user equipment device may be provided by one or more of these communication paths, but is shown as a single path in Figure 8 to avoid overcomplicating the drawing.
[0093] Although communication paths are not depicted between the user equipment devices, these devices may communicate directly with each other via communication paths such as those described above in connection with paths 808, 810, and 812, and other short-range point-to-point communication paths such as a USB cable, an IEEE 1394 cable, a wireless path (e.g., Bluetooth, infrared, IEEE 802-11x, etc.), or other short-range communication via a wired or wireless path. BLUETOOTH® is a certification mark owned by Bluetooth® SIG, INC. User equipment devices may also communicate directly with each other through an indirect path via communications network 814.
[0094] System 800 includes a content source 816 and a media guidance data source 818 coupled to communications network 814 via communications paths 820 and 822, respectively. Paths 820 and 822 may include any of the communications paths described above in connection with paths 808, 810, and 812. Communications with content source 816 and media guidance data source 818 may be exchanged via one or more communications paths, but are shown in FIG. 8 as a single path to avoid overcomplicating the diagram. Additionally, there may be more than one of each of content source 816 and media guidance data source 818, but only one of each is shown in FIG. 8 to avoid overcomplicating the diagram. (Different types of each of these sources are discussed below.) If desired, content source 816 and media guidance data source 818 may be integrated into one source device. Although communication between sources 816 and 818 and user equipment devices 802, 804, and 806 is shown as being through communications network 814, in some embodiments, sources 816 and 818 may communicate directly with user equipment devices 802, 804, and 806 via communications paths (not shown) such as those described above in connection with paths 808, 810, and 812.
[0095] Content sources 816 may include one or more types of content distribution equipment, including television distribution facilities, cable system headends, satellite distribution facilities, program sources (e.g., television broadcast companies such as NBC, ABC, HBO, etc.), intermediate distribution facilities and / or servers, Internet providers, on-demand media servers, and other content providers. NBC is a trademark owned by National Broadcasting Company, Inc., ABC is a trademark owned by American Broadcasting Company, INC., and HBO is a trademark owned by Home Box Office, Inc. Content sources 816 may be content originators (e.g., television broadcast companies, webcast providers, etc.) or non-content originators (e.g., on-demand content providers, Internet providers of broadcast program content for download, etc.). Content sources 816 may include cable sources, satellite providers, on-demand providers, Internet providers, over-the-top content providers, or other content providers. Content sources 816 may also include remote media servers used to store different types of content (including video content selected by users) at locations remote from any of the user equipment devices. Systems and methods for remotely storing content and for providing remotely stored content to user equipment are discussed in more detail in connection with U.S. Pat. No. 7,761,892 to Ellis et al., issued July 20, 2010, which is incorporated herein by reference in its entirety.
[0096] Media guidance data source 818 may provide media guidance data, such as the media guidance data described above. The media guidance data may be provided to user equipment devices using any suitable approach. In some embodiments, the guidance application may be a stand-alone interactive television program guide that receives program guide data via a data feed (e.g., a continuous feed or a trickle feed). Program schedule data and other guidance data may be provided to user equipment on a sideband of a television channel, using an in-band digital signal, using an out-of-band digital signal, or by any other suitable data transmission technique. Program schedule data and other media guidance data may be provided to user equipment on multiple analog or digital television channels.
[0097] In some embodiments, guidance data from media guidance data source 818 may be provided to user equipment using a client-server approach. For example, the user equipment device may pull media guidance data from a server, or the server may push media guidance data to the user equipment device. In some embodiments, a guidance application client resident on the user's equipment may initiate a session with source 818 and obtain guidance data as needed, for example, when the guidance data is out of date or when the user equipment device receives a request from the user to receive the data. Media guidance may be provided to the user equipment at any suitable frequency (e.g., continuously, daily, at a user-defined period, at a system-defined period, in response to a request from the user equipment, etc.). Media guidance data source 818 may provide the media guidance application itself or software updates for the media guidance application to user equipment devices 802, 804, and 806.
[0098] In some embodiments, media guidance data may include viewer data. For example, viewer data may include current and / or historical user activity information (e.g., the content a user typically watches, the time of day the user watches content, whether the user interacts with social networks, the time the user interacts with social networks and posts information, the type of content the user typically watches (e.g., pay TV or free TV), mood, brain activity information, etc.). Media guidance data may also include subscription data. For example, subscription data may identify sources or services to which a given user subscribes and / or sources or services to which a given user previously subscribed but later discontinued access (e.g., whether the user subscribed to premium channels, whether the user added premium level services, whether the user increased their internet speed). In some embodiments, viewer data and / or subscription data may identify a given user's patterns over a period of more than one year. Media guidance data may include a model (e.g., a survivor model) used to generate a score indicative of the likelihood that a given user will discontinue access to a service / source. For example, the media guidance application may process the viewer data along with the subscription data in conjunction with a model to generate a value or score that indicates the likelihood that a given user will terminate access to a particular service or source. In particular, a higher score may indicate a higher level of confidence that the user will terminate access to a particular service or source. Based on the score, the media guidance application may generate promotions that encourage the user to maintain the particular service or source that the score indicates the user will likely terminate access to.
[0099] The media guidance application may be, for example, a stand-alone application implemented on the user equipment device. For example, the media guidance application may be implemented as software or a set of executable instructions that may be stored in storage 708 and executed by control circuitry 704 of user equipment device 700. In some embodiments, the media guidance application may be a client-server application, in which only the client application resides on the user equipment device and the server application resides on a remote server. For example, the media guidance application may be implemented partially as a client application on control circuitry 704 of user equipment device 700 and partially on a remote server as a server application (e.g., media guidance data source 818) running on the remote server's control circuitry. When executed by the remote server's control circuitry (such as media guidance data source 818), the media guidance application may instruct the control circuitry to generate guidance application displays and transmit the generated displays to the user equipment device. The server application may instruct control circuitry of media guidance data source 818 to transmit data for storage on the user equipment. The client application may instruct control circuitry in the receiving user equipment to generate a guidance application display.
[0100] The content and / or media guidance data delivered to user equipment devices 802, 804, and 806 may be over-the-top (OTT) content. OTT content delivery allows internet-enabled user devices, including any of the user equipment devices described above, to receive content transmitted over the internet, including any of the content described above, in addition to content received via a cable or satellite connection. OTT content is distributed over an internet connection provided by an internet service provider (ISP), although third parties also distribute content. ISPs may not be responsible for viewing capabilities, copyright, or redistribution of content and may only transmit IP packets provided by OTT content providers. Examples of OTT content providers include YOUTUBE®, NETFLIX, and HULU, which provide audio and video over IP packets. Youtube is a trademark owned by Google Inc., Netflix is a trademark owned by Netflix, Inc., and Hulu is a trademark owned by Hulu, LLC. OTT content providers may additionally or alternatively provide the media guidance data described above. In addition to the content and / or media guidance data, the provider of the OTT content may distribute a media guidance application (e.g., a web-based application or a cloud-based application), or the content may be displayed by a media guidance application stored on the user equipment device.
[0101] Media guidance system 800 is intended to illustrate several approaches or network configurations whereby user equipment devices and sources of content and guidance data may communicate with each other for purposes of accessing content and providing media guidance. The embodiments described herein may be applied in any one or some of these approaches, or in systems employing other approaches for delivering content and providing media guidance. The following four approaches provide specific illustrations of the generalized example of FIG. 8:
[0102] In one approach, user equipment devices may communicate with each other within a home network. The user equipment devices can communicate with each other directly via the short-range point-to-point communication methods described above, via an indirect path through a hub or other similar device provided on the home network, or via communications network 814. Multiple individuals within a household may each operate different user equipment devices on the home network. As a result, it may be desirable for various media guidance information or settings to be communicated between different user equipment devices. For example, as described in more detail in U.S. Patent Publication No. 2005 / 0251827 to Ellis et al., filed July 11, 2005, it may be desirable for a user to maintain consistent media guidance application settings on different user equipment devices within a home network. Different types of user equipment devices within a home network may also communicate with each other and transfer content. For example, a user may transfer content from a user computer device to a portable video player or portable music player.
[0103] In the second approach, a user may have multiple types of user equipment through which they access content and obtain media guidance. For example, some users may have a home network accessed by in-home and mobile devices. The user may control their in-home devices through a media guidance application implemented on a remote device. For example, the user may access an online media guidance application on a website through their office personal computer or a mobile device such as a PDA or web-enabled cell phone. The user may set various settings (e.g., recording, reminders, or other settings) on the online guidance application to control the user's in-home devices. The online guide may control the user's devices directly or by communicating with the media guidance application on the user's in-home devices. Various systems and methods for communication of user equipment devices, where the user equipment devices are located remotely from one another, are discussed, for example, in U.S. Patent No. 8,046,801, issued October 25, 2011, to Ellis et al., which is incorporated herein by reference in its entirety.
[0104] In a third approach, users of user equipment devices both inside and outside the home can use their media guidance application to communicate directly with content source 816 and access content. Specifically, within the home, users of user television equipment 802 and user computer equipment 804 may access the media guidance application and navigate among and identify desired content. Users may also use wireless user communications devices 806 to access the media guidance application outside the home and navigate among and identify desired content.
[0105] In a fourth approach, user equipment devices may operate within a cloud computing environment and access cloud services. In a cloud computing environment, various types of computing services for content sharing, storage, or distribution (e.g., video sharing sites or social networking sites) are provided by a collection of network-accessible computing and storage resources referred to as the “cloud.” For example, a cloud may include a collection of server computing devices, which may be located in central or distributed locations, that provide cloud-based services to various types of users and devices connected through a network, such as the Internet via communications network 814. These cloud resources may include one or more content sources 816 and one or more media guidance data sources 818. Additionally or alternatively, the remote computing sites may include other user equipment devices, such as user television equipment 802, user computer equipment 804, and wireless user communications devices 806. For example, the other user equipment devices may provide access to stored copies of videos or streamed videos. In such an embodiment, the user equipment devices may operate in a peer-to-peer manner without communicating with a central server.
[0106] The cloud provides access to services such as content storage, content sharing, or social networking services, and any of the content described above, for user equipment devices, among other examples. Services can be provided in the cloud through a cloud computing service provider or through other providers of online services. For example, cloud-based services can include content storage services, content sharing sites, social networking sites, or other services through which user-supplied content is distributed for viewing by others on connected devices. These cloud-based services may enable user equipment devices to store content in and receive content from the cloud, rather than storing content locally and accessing the locally stored content.
[0107] Users may record content using a variety of content capture devices, such as camcorders, digital cameras with video modes, audio recorders, mobile phones, and handheld computing devices. Users can upload content to a content storage service on the cloud directly, for example, from user computing equipment 804 or from a wireless user communication device 806 with content capture features. Alternatively, users can first transfer content to a user equipment device, such as user computing equipment 804. The user equipment device that stores the content uploads the content to the cloud using a data transmission service over communications network 814. In some embodiments, the user equipment device itself is a cloud resource, and other user equipment devices can access the content directly from the user equipment device on which the user stored the content.
[0108] Cloud resources may be accessed by a user equipment device using, for example, a web browser, a media guidance application, a desktop application, a mobile application, and / or any combination of these access applications. The user equipment device may be a cloud client that relies on cloud computing for application delivery, or the user equipment device may have some functionality without accessing cloud resources. For example, some applications running on the user equipment device may be cloud applications, i.e., applications delivered as a service over the Internet, while other applications may be stored and launched on the user equipment device. In some embodiments, a user device may receive content from multiple cloud resources simultaneously. For example, a user device may stream audio from one cloud resource while downloading content from a second cloud resource. Or, a user device may download content from multiple cloud resources for more efficient downloads. In some embodiments, a user equipment device can use cloud resources for processing operations, such as the processing operations performed by the processing circuitry described in connection with FIG. 7.
[0109] As referenced herein, the term "in response to" refers to "initiated as a result of." For example, a first action being performed in response to a second action may include an intervening step between the first and second action. As referenced herein, the term "in direct response to" refers to "caused by." For example, a first action being performed in direct response to a second action may not include an intervening step between the first and second action.
[0110] 9 is a flowchart of illustrative steps for authorizing an operation associated with a blocked media asset using two-factor authentication, according to some embodiments of the present disclosure. For example, media guidance application implementation process 900 may be performed by control circuitry 704 (FIG. 7). Note that process 900, or any steps thereof, may be implemented on or provided by any of the devices or equipment shown in FIGS. 7-8.
[0111] Process 900 begins at 902, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) receives a first request to access a media asset for viewing on user equipment, and access to the media asset is blocked. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may store multiple media assets in storage that is either local to the user device that generates the media assets for display (e.g., storage device 708) or remote at a server (e.g., media guidance data source 818 accessible via communications network 814). The media guidance application may generate a list of media assets (e.g., within a user interface on display 712), from which the user may select for display. The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may set a flag indicating whether each media asset should be blocked for a given user based on metadata associated with each stored media asset. As a specific example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may set a flag based on metadata associated with a media asset to indicate that it meets certain blocking criteria (e.g., a particular user cannot watch programs with a rating above TV-PG).
[0112] Process 900 continues at 904, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) receives a first input of a first authorization code. The first authorization code may be any combination of alphanumeric characters that can be matched to a stored alphanumeric string. The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may receive the first identifier via user input using a user input interface (e.g., user input interface 710), such as a touchscreen or a remote control. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may receive user input “1578” via a remote control.
[0113] Process 900 continues at 906, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether the received first authorization code matches a stored first identifier (e.g., stored locally in storage 708 or remotely at a server (e.g., media guidance data source 818 accessible via communications network 814)) that grants access to view the media asset. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether the received input “1578” matches a value stored in memory for the first identifier. As a particular example, the media guidance application may access a parental control database (e.g., stored locally in storage 708 or remotely at a server (e.g., media guidance data source 818 accessible via communications network 814)) that includes multiple identifiers associated with permissions (i.e., whether each code may access the media asset). The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may compare the received first authorization code with the stored identifier (e.g., by comparing the characters of the first authorization code with each character of the stored identifier) and determine a match. After determining a match, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) reads data from the field in the database that corresponds to the matched identifier and determines whether the data indicates that the user has access to the media asset.
[0114] If the media guidance application determines that the received first authorization code does not match a stored first identifier that grants access to view the media asset, process 900 continues to 908, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) continues to prevent access to the media asset. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may determine that the received first authorization code does not match any identifier stored in a parental control database or that the particular user defined by the first authorization code does not have permission to access the media asset (e.g., via blocking criteria as described above with respect to FIG. 2).
[0115] If the media guidance application determines that the received first authorization code matches a stored first identifier that grants access to view the media asset, process 900 continues to 910, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) generates the media asset for display. For example, the media guidance application may generate the media asset for display (e.g., on display 712) on a display connected to user equipment (e.g., any of the user equipment described above in FIGS. 7-8). Alternatively, or in addition, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may query a parental control database for an indication of whether a user identified by the first authorization code may view the media asset on a device (e.g., streamed to a mobile device such as a mobile phone) that is not coupled to the user equipment that stores the media asset.
[0116] Process 900 continues at 912, where the media guidance application receives (e.g., via control circuitry 704 (FIG. 7)) a second request to perform an operation associated with the media asset. The operation may be any command or instruction that, when executed, modifies or copies stored audiovisual data for the media asset or any stored metadata about the media asset. For example, the media guidance application may receive (e.g., via control circuitry 704 (FIG. 7)) a request via a user input interface (e.g., a touchscreen) to delete a media asset. As another example, the media guidance application may receive (e.g., via control circuitry 704 (FIG. 7)) a request via a user input interface to copy a media asset to another device. As yet another example, the media guidance application may receive (e.g., via control circuitry 704 (FIG. 7)) a request to update a user profile (e.g., with viewing progress or an indication that the user does not like the media asset) associated with the first authorization code.
[0117] Process 900 continues at 914, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) queries a parental control database for information regarding allowable actions associated with the media asset. For example, the media guidance application may store (e.g., via control circuitry 704 (FIG. 7)) in a field of the parental control database for an identifier that matches the first authorization code a pointer to an array that lists media assets on which the user is permitted to perform the action. The parental control database may include multiple fields, each with a pointer to an array that indicates media assets for which a particular action can be performed without a second authorization code (e.g., delete, modify, etc.). Alternatively, or in addition, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may store an indication of actions that require a second authorization code (e.g., those that are not allowed with only the first authorization code) with metadata stored with the media asset. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may store the running time, rating, first air date, and other metadata as a header in the stored audiovisual data for the media asset, and may additionally include an indication of an action requiring a second authorization code.
[0118] Process 900 continues at 916, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines from the information whether a second authorization code is required to perform an operation associated with the media asset, and the second authorization code is generated periodically as a function of time by a token mechanism remote from the user equipment. For example, based on retrieving information from a parental control database as described above with respect to the stored media asset, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether a second factor is required to perform the function. The second authorization code may be generated by a token mechanism (e.g., a stand-alone token or an application running on a device such as a mobile phone), which may then be entered into the media guidance application (e.g., via a user input interface). The token may generate the authorization code based on a mathematical function of clock time, similar to public key authentication. In some embodiments, other two-factor methods, such as asymmetric (private-public key) authentication, may be used for the second authorization code.
[0119] If the media guidance application determines that a second authorization code is not required to perform the operation, process 900 continues at 924, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) performs the operation related to the media asset. For example, based on querying a parental control database and determining that identifiers of the media assets are stored in an array indicating that a particular user (e.g., identified by the first authorization code) may perform operations related to these media assets, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may perform the operation without further input (e.g., no second element required). As a particular example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may execute a program script to erase a block of memory in which a particular media asset is stored (e.g., delete the media asset), or any of the operations described above with respect to FIGS. 1-4.
[0120] If the media guidance application determines that a second authorization code is required to perform the operation, process 900 continues to 918, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) receives a second input of a second authorization code. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may receive a second authorization code, such as “45678,” via a user input interface (e.g., user input interface 710). The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may determine that the input was received at 10:23:30 (hours:minutes:seconds) on 05:31:16 (month:day:year) based on the clock time when the input was received. Alternatively, or in addition, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may receive a clock time along with the entered second authorization code based on the clock time of the device on which the code was generated.
[0121] Process 900 continues at 920, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) transmits the second authorization code generated at the first time to an authorization database. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may transmit the second authorization code to a database (e.g., stored locally in storage device 708 or remotely at a server (e.g., media guidance data source 818 accessible via communications network 814)). In some embodiments, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may pre-process the second authorization code. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may generate a data packet that includes the second authorization code and the time it was generated, as described above. In another example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may concatenate the time to the nearest second or minute before transmission, depending on how often new authorization codes are generated by the token mechanism.
[0122] Process 900 continues at 922, where the media guidance application receives (e.g., via control circuitry 704 (FIG. 7)) an indication granting authorization to perform an operation associated with the media asset based on a transmitted second authorization code that matches a second identifier generated at a first time. For example, the media guidance application may receive (e.g., via control circuitry 704 (FIG. 7)) a data packet from an authorization package with a Boolean value that is set to “true” if the transmitted authorization code corresponds to the second identifier or “false” if it does not. The second identifier may be a second token mechanism with a mathematical function at the same time that may compare its output (e.g., the second identifier) at a particular time with the received second authorization code. The token may additionally be identified by the first authorization code, which would allow the authorization database to more efficiently determine whether the received second authorization code is correct. For example, the media guidance application may transmit (e.g., via control circuitry 704 (FIG. 7)) to the authorization database that a user identified by a first authorization code "1234" entered a second authorization code "45678." Instead of searching all token mechanisms stored in the authorization database, the authorization database need only search for the token corresponding to user "1234" and determine whether "45678" was generated by that token at a particular time.
[0123] After receiving the indication, process 900 continues to 924, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) performs an operation related to the media asset, as described above. As a particular example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may execute a program script to erase the block of memory in which the particular media asset is stored (e.g., delete the media asset), or any of the operations described above with respect to FIGS. 1-4.
[0124] It is contemplated that the steps or descriptions of Figure 9 may be used in conjunction with any other embodiment of the present disclosure. Additionally, the steps and descriptions described in connection with Figure 9 may be performed in alternate orders or in parallel to further the objectives of the present disclosure. For example, each of these steps may be performed in any order, in parallel, or substantially simultaneously to reduce delay or increase the speed of the system or method. Furthermore, it should be noted that any of the devices or equipment discussed in connection with Figures 7-8 may be used to implement one or more of the processes of Figure 9.
[0125] FIG. 10 is a flowchart of illustrative steps for determining whether a received authorization code permits access to a media asset, according to some embodiments of the disclosure. For example, media guidance application implementation process 1000 may be performed by control circuitry 704 (FIG. 7). Note that process 1000, or any steps thereof, may be implemented on or provided by any of the devices or equipment shown in FIGS. 7-8. Process 1000 begins at 1002, where the media guidance application initiates a process for determining whether to permit access to a blocked media asset based on a received authorization code. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may execute program script initialization process 1000.
[0126] Process 1000 continues at 1004, where the media guidance application accesses the parental control database (e.g., via control circuitry 704 (FIG. 7)). For example, the media guidance application may access the parental control database locally in storage device 708 or remotely at a server (e.g., media guidance data source 818 accessible via communications network 814). The parental control database may be designed in a self-referential manner, where information about each user (e.g., defined by a first authorization code, as discussed above with respect to FIGS. 1 and 9), blocking criteria, allowed features, and whether a feature requires two-factor authentication may all be non-sequentially contained in a single table and linked to the appropriate field within the table via a pointer.
[0127] Process 1000 continues at 1006, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether the received authorization code matches a first stored authorization code based on comparing the characters of the received authorization code with characters of multiple authorization codes stored in an entry in a parental control database. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may execute a program script utilizing a for loop to iterate through multiple authorization codes stored in the parental control database. For each authorization code, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may read the authorization code value from a field and compare the read authorization code to the received authorization code. As a specific example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may read the code "14578" from an entry in the database and compare each character to the received code "12345" by indexing and comparing the characters in the string. In this particular example, the first index matches because both first-indexed characters are "1," but the second index fails because "4" is not the same character as "2." For this example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) would determine that the particular entry containing authorization code "14578" does not match the received code and would continue to check the next stored authorization code. In some embodiments, once all authorization codes in the plurality of authorization codes have been checked, the program script executed by the media guidance application terminates, and the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether a match was found. In some embodiments, the program script executed by the media guidance application terminates in response to determining a match.
[0128] If the media guidance application does not determine a match at 1006, process 1000 continues at 1014, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) does not allow access to the blocked media asset. For example, if the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines that no stored authorization code matches the received authorization code, the media guidance application may determine that access should not be allowed to the blocked media asset.
[0129] If the media guidance application determines a match at 1006, process 1000 continues at 1008, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) reads a value from the field associated with the first stored authorization code. For example, as described above with respect to FIG. 2, a parental control database may include blocking criteria associated with particular authorization codes, such as "TV-PG." The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may read the blocking criteria or any other value from the entry for the matched authorization code that can be used to determine whether access should be allowed.
[0130] Process 1000 continues at 1010, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether the value corresponds to allowing access to the blocked media asset. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may compare the retrieved value from the parental control database with metadata associated with the requested media asset, as described above with respect to FIG. 2. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may retrieve the media asset's rating from a field of stored metadata associated with the media asset. The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may then compare the rating with the blocking criteria for the rating associated with the matched authorization code. For example, the rating stored in the parental control database may be "TV-PG," and the metadata associated with the media asset may indicate that it is "TV-MA." The media guidance application may determine (e.g., via control circuitry 704 (FIG. 7)) that the value does not correspond to allowing access to the media asset because "TV-MA" exceeds "TV-PG" (i.e., is a higher rating). In some embodiments, the ratings may be assigned integer values for easier comparison by the media guidance application. For example, TV-PG may be assigned a "1" and TV-MA may be assigned a "5."
[0131] If the media guidance application determines at 1010 that the value does not correspond to allowing access to the blocked media asset, process 1000 continues at 1014, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) does not allow access to the blocked media asset, as described above. If the media guidance application determines at 1010 that the value does correspond to allowing access to the blocked media asset, process 1000 continues at 1016, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) allows access to the blocked media asset. For example, based on a rating of the media asset lower than the blocking criterion, the media guidance application may allow access to the media asset (e.g., allow the media asset to be generated for display).
[0132] It is contemplated that the steps or descriptions of Figure 10 may be used in conjunction with any other embodiment of the present disclosure. Additionally, the steps and descriptions described in connection with Figure 10 may be performed in alternate orders or in parallel to further the objectives of the present disclosure. For example, each of these steps may be performed in any order, in parallel, or substantially simultaneously to reduce delay or increase the speed of the system or method. Furthermore, it should be noted that any of the devices or apparatus discussed in connection with Figures 7-8 may be used to implement one or more of the processes of Figure 10.
[0133] FIG. 11 is a flowchart of illustrative steps for determining whether a requested operation requires a second authorization code, according to some embodiments of the disclosure. For example, media guidance application implementation process 1100 may be performed by control circuitry 704 (FIG. 7). Note that process 1100, or any steps thereof, may be implemented on or provided by any of the devices or equipment shown in FIGS. 7-8. Process 1100 begins at 1102, where the media guidance application initiates a process for determining whether a second authorization code is required to perform an operation associated with a stored media asset. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may execute program script initialization process 1100.
[0134] Process 1100 continues at 1104, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) reads a permission associated with the stored media asset. For example, as described above with respect to FIG. 2, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may store an indication of whether a second element is required to perform a particular action along with the metadata associated with the stored media asset. For example, the media guidance application may store a Boolean value that is set to "true" if a second element is required to perform a particular action. The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may read this value from a field of the stored metadata. In some embodiments, the permissions may be stored in a separate database, which may be stored locally in storage device 708 or remotely at a server (e.g., media guidance data source 818 accessible via communications network 814), listing all stored media assets and permissions, instead of or in addition to accompanying metadata associated with the stored media asset (e.g., in the header of a file containing audiovisual data for the stored media asset).
[0135] Process 1100 continues at 1106, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines from the retrieved permission whether the operation associated with the stored media asset requires authentication with a second factor. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may retrieve a Boolean value for a particular requested operation (e.g., delete) that indicates whether a second authorization factor is required to perform the requested operation. In some embodiments, the retrieved permission may be a string or other data type that may be parsed and analyzed by the media guidance application to determine whether another authorization factor is required. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may retrieve the string “Joe should not delete media assets without a second factor,” which may be stored based on a communication from another user. Based on analyzing the string, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may determine that the authorization code corresponding to Joe (e.g., “1234”) requires another authorization factor to delete the media asset.
[0136] If the media guidance application determines in step 1106 that the operation does not require authentication with a second factor, process 1100 continues to 1116, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) performs the operation associated with the media asset. For example, as described in detail below with respect to FIG. 12, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may perform the requested operation (e.g., to delete the media asset).
[0137] If the media guidance application determines in step 1106 that the operation requires authentication using a second factor, process 1100 continues at 1108, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) accesses a parental control database. For example, as described above in FIG. 10, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may access the parental control database locally in storage device 708 or remotely at a server (e.g., media guidance data source 818 accessible via communications network 814).
[0138] Process 1100 continues at 1110, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether a source of the second authorization code is stored from the entry for the first authorization code in the parental control database. For example, as described with respect to FIG. 2, the parental control database may include a field containing an indication of the source of the second factor. The source may be a token mechanism, a biometric signature, or other second factor that complements the first factor (e.g., the first factor is a knowledge factor and the second factor is a possession factor). The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may retrieve a string such as "token" from the parental control database and execute a program script to retrieve the appropriate second authorization factor based on the retrieved string.
[0139] If the media guidance application determines at 1110 that the source of the second authorization code is not stored, process 1100 continues to 1114, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) does not perform the operation associated with the media asset. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may determine that because an indication of the source of the second authorization code is not stored in the parental control database, the user cannot be authenticated and is therefore not entitled to perform the operation associated with the media asset.
[0140] If the media guidance application determines at 1110 that the source of the second authorization code is stored, process 1100 continues to 1112, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether the received authorization code is correct. In some embodiments, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may transmit the received second authorization code to a remote database (e.g., via communications network 814 (FIG. 8)) and receive an indication that the second authorization code is correct (e.g., a Boolean value set to true extracted from a data packet received from the remote database). In other embodiments, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may determine that the received second authorization code is correct by comparing the received code to multiple codes stored in a database, as outlined above with respect to FIGS. 10 and 11.
[0141] If the media guidance application determines that the received second authorization code at 1112 is correct, process 1100 continues at 1116, where the media guidance application performs the operation associated with the media asset. For example, as described in detail below with respect to FIG. 12, the media guidance application may (e.g., via control circuitry 704 (FIG. 7)) perform the requested operation (e.g., to delete the media asset). If the media guidance application determines that the received second authorization code at 1112 is incorrect, process 1100 continues at 1114, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) does not perform the operation associated with the media asset. For example, the media guidance application may determine (e.g., via control circuitry 704 (FIG. 7)) that an incorrect second authorization code was received and therefore no operation should be performed.
[0142] It is contemplated that the steps or descriptions of Figure 11 may be used in conjunction with any other embodiment of the present disclosure. Additionally, the steps and descriptions described in connection with Figure 11 may be performed in alternate orders or in parallel to further the objectives of the present disclosure. For example, each of these steps may be performed in any order, in parallel, or substantially simultaneously to reduce delay or increase the speed of the system or method. Furthermore, it should be noted that any of the devices or equipment discussed in connection with Figures 7-8 may be used to implement one or more of the processes of Figure 11.
[0143] 12 is a flowchart of illustrative steps for performing operations related to a media asset according to some embodiments of the disclosure. For example, media guidance application implementation process 1200 may be performed by control circuitry 704 (FIG. 7). Note that process 1200, or any steps thereof, may be implemented on or provided by any of the devices or equipment shown in FIGS. 7-8. Process 1200 begins at 1202, where the media guidance application initiates a process for performing operations related to a media asset. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may execute program script initialization process 1200.
[0144] Process 1200 continues at 1204, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) fetches instructions from memory for performing operations related to the media asset. For example, the instructions may be an executable script, such as a script in an object-oriented programming language (e.g., C++). The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may fetch a script from a database that includes operations related to the media asset (e.g., any of the operations described above with respect to FIGS. 1-9).
[0145] Process 1200 continues at 1206, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) decodes the instructions. For example, if the instructions are in an object-oriented script in a language such as C++, control circuitry 1204 (e.g., via control circuitry 704 (FIG. 7)) may compile the code so that it can be executed.
[0146] Process 1200 continues at 1208, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) executes the instructions. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may perform an action based on the decoded instructions. For example, the decoded instructions (e.g., via control circuitry 704 (FIG. 7)) may instruct the media guidance application to erase the contents of a block of memory that stores a media asset.
[0147] Process 1200 may continue to 1210, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether the operation is complete. For example, the executed instructions may be to erase the contents of one particular block of memory, in which case, after the block of memory is erased, new instructions may need to be fetched to erase another block of memory (e.g., to erase all blocks of memory that store media assets when deleting a media asset). If the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines that the operation is not complete, process 1200 may return to 1204. For example, if the operation requires multiple loops through a script, the media guidance application may determine that the operation is not complete and return to step 1204. If the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines that the operation is complete, process 1200 continues to 1212, where the media guidance application terminates the operation.
[0148] It is contemplated that the steps or descriptions of Figure 12 may be used in conjunction with any other embodiment of the present disclosure. Additionally, the steps and descriptions described in connection with Figure 12 may be performed in alternate orders or in parallel to further the objectives of the present disclosure. For example, each of these steps may be performed in any order, in parallel, or substantially simultaneously to reduce delay or increase the speed of the system or method. Furthermore, it should be noted that any of the devices or equipment discussed in connection with Figures 7-8 may be used to implement one or more of the processes of Figure 12.
[0149] 13 is another flowchart of illustrative steps for authorizing an operation associated with a blocked media asset using two-factor authentication, according to some embodiments of the present disclosure. For example, media guidance application implementation process 1300 may be performed by control circuitry 704 (FIG. 7). Note that process 1300, or any steps thereof, may be implemented on or provided by any of the devices or equipment shown in FIGS. 7-8.
[0150] Process 1300 begins at 1302, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) receives a first request to access a media asset for viewing on user equipment, and access to the media asset is blocked. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may store multiple media assets in storage that is either local to the user device that generates the media assets for display (e.g., storage device 708) or remote at a server (e.g., media guidance data source 818 accessible via communications network 814). The media guidance application may generate a list of media assets (e.g., within a user interface on display 712), from which the user may select for display. The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may set a flag indicating whether each media asset should be blocked for a given user based on metadata associated with each stored media asset. As a specific example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may set a flag based on metadata associated with a media asset to indicate that it meets certain blocking criteria (e.g., a particular user cannot watch programs with a rating above TV-PG).
[0151] Process 1300 continues at 1304, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) receives a first input of a first authorization code. The first authorization code may be any combination of alphanumeric characters that can be matched to a stored alphanumeric string. The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may receive the first identifier via user input using a user input interface (e.g., user input interface 710), such as a touchscreen or a remote control. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may receive user input “1578” via a remote control.
[0152] Process 1300 continues at 1306, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether the received first authorization code matches a stored first identifier (e.g., stored locally in storage 708 or remotely at a server (e.g., media guidance data source 818 accessible via communications network 814)) that grants access to view the media asset. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether the received input “1578” matches a value stored in memory for the first identifier. As a particular example, the media guidance application may access a parental control database (e.g., stored locally in storage 708 or remotely at a server (e.g., media guidance data source 818 accessible via communications network 814)) that includes multiple identifiers associated with permissions (i.e., whether each code may access the media asset). The media guidance application (e.g., via control circuitry 704 (FIG. 7)) may compare the received first authorization code with the stored identifier (e.g., by comparing the characters of the first authorization code with each character of the stored identifier) and determine a match. After determining a match, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) reads data from the field in the database that corresponds to the matched identifier and determines whether the data indicates that the user has access to the media asset.
[0153] If the media guidance application determines that the received first authorization code does not match a stored first identifier that grants access to view the media asset, process 1300 continues at 1308, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) continues to prevent access to the media asset. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may determine that the received first authorization code does not match any identifier stored in a parental control database or that the particular user defined by the first authorization code does not have permission to access the media asset (e.g., via blocking criteria as described above with respect to FIG. 2).
[0154] If the media guidance application determines that the received first authorization code matches a stored first identifier that grants access to view the media asset, process 1300 continues to 1310, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) generates the media asset for display. For example, the media guidance application may generate the media asset for display (e.g., on display 712) on a display connected to user equipment (e.g., any of the user equipment described above in FIGS. 7-8). Alternatively, or in addition, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may query a parental control database for an indication of whether a user identified by the first authorization code may view the media asset on a device (e.g., streamed to a mobile device such as a mobile phone) that is not coupled to the user equipment that stores the media asset.
[0155] Process 1300 continues at 1312, where the media guidance application receives (e.g., via control circuitry 704 (FIG. 7)) a second request to perform an operation associated with the media asset. The operation may be any command or instruction that, when executed, modifies or copies stored audiovisual data for the media asset or any stored metadata about the media asset. For example, the media guidance application may receive (e.g., via control circuitry 704 (FIG. 7)) a request via a user input interface (e.g., a touchscreen) to delete a media asset. As another example, the media guidance application may receive (e.g., via control circuitry 704 (FIG. 7)) a request via a user input interface to copy a media asset to another device. As yet another example, the media guidance application may receive (e.g., via control circuitry 704 (FIG. 7)) a request to update a user profile (e.g., with viewing progress or an indication that the user does not like the media asset) associated with the first authorization code.
[0156] Process 1300 continues at 1314, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) queries a parental control database for information regarding allowed actions associated with the media asset. For example, the media guidance application may store (e.g., via control circuitry 704 (FIG. 7)) in a field of the parental control database for an identifier that matches the first authorization code a pointer to an array that lists media assets on which the user is permitted to perform the action. The parental control database may include multiple fields, each with a pointer to an array that indicates media assets for which a particular action can be performed without a second authorization code (e.g., delete, modify, etc.). Alternatively, or in addition, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may store an indication of actions that require a second authorization code (e.g., those that are not allowed with only the first authorization code) with metadata stored with the media asset. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may store the runtime, rating, first air date, and other metadata as a header in the stored audiovisual data for the media asset, and may additionally include an indication of an action requiring a second authorization code.
[0157] Process 1300 continues at 1316, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines from the information whether a second authorization code is required to perform the operation associated with the media asset, where the second authorization code is a biometric signature. For example, based on retrieving information from a parental control database as described above with respect to the stored media asset, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) determines whether a second factor is required to perform the function. A biometric signature may be any characteristic associated with a user that can be used to distinguish and therefore authenticate the user. In some embodiments, the biometric signature may be an iris scan. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may analyze the unique color patterns on the user's iris, map them to a mathematical structure, and compare it to stored iris scans in a database. In another embodiment, the biometric signature may be a retinal scan. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may analyze the pattern of blood vessels on the user's retina and identify the user (e.g., by comparing it to patterns stored in a database). In yet another embodiment, the biometric signature may be a face scan. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may determine the proximity of critical points (e.g., features such as the corners of the mouth, the centers of the eyes, etc.) and other features of a scan of the user's face and compare them to stored critical points in a database. In yet another embodiment, the biometric signature may be a fingerprint scan. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may analyze the pattern of the user's fingerprint and compare it to stored patterns in a database.
[0158] If the media guidance application determines that a second authorization code is not required to perform the operation, process 1300 continues at 1324, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) performs the operation related to the media asset. For example, based on querying a parental control database and determining that identifiers of the media assets are stored in an array indicating that a particular user (e.g., identified by the first authorization code) may perform operations related to these media assets, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may perform the operation without further input (e.g., no second element required). As a particular example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may execute a program script to erase a block of memory in which a particular media asset is stored (e.g., delete the media asset), or any of the operations described above with respect to FIGS. 1-4.
[0159] If the media guidance application determines that a second authorization code is required to perform the operation, process 1300 continues at 1318, where the media guidance application receives a second input of a second authorization code (e.g., via control circuitry 704 (FIG. 7)). For example, the media guidance application may receive the second authorization code (e.g., via control circuitry 704 (FIG. 7)) via a user input interface (e.g., user input interface 710). For example, the media guidance application may receive an image of a biometric signature (e.g., an iris scan, a retina scan, etc.) from an integrated camera of a user equipment device (e.g., any of the user equipment discussed above with respect to FIGS. 7-8).
[0160] Process 1300 continues at 1320, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) transmits the second authorization code to an authorization database. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may transmit the second authorization code (e.g., biometric signature) to a database (e.g., stored locally in storage device 708 or remotely at a server (e.g., media guidance data source 818 accessible via communications network 814)). In some embodiments, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may preprocess the second authorization code. For example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may generate a data packet including a data file including the second authorization code and an analysis of the biometric signature (e.g., critical points based on pattern recognition of pixels in the received image), which is then transmitted to the authorization database.
[0161] Process 1300 continues at 1322, where the media guidance application receives (e.g., via control circuitry 704 (FIG. 7)) an indication granting authorization to perform an action associated with the media asset based on the transmitted second authorization code matching the stored biometric signature. For example, the media guidance application may receive (e.g., via control circuitry 704 (FIG. 7)) a data packet from an authorization package with a Boolean value that is set to “true” if the transmitted authorization code corresponds to the second identifier, or “false” if it does not. The second identifier may be a stored table or other data structure that defines critical points for a particular biometric signature. For example, the second identifier may be a table containing distances between various points on the user's face. As another example, the second identifier may be one or a series of mathematical (e.g., fractal dimension) representations of the user's iris.
[0162] After receiving the indication, process 1300 continues to 1324, where the media guidance application (e.g., via control circuitry 704 (FIG. 7)) performs an operation related to the media asset, as described above. As a particular example, the media guidance application (e.g., via control circuitry 704 (FIG. 7)) may execute a program script to erase a block of memory in which a particular media asset is stored (e.g., delete the media asset), or any of the operations described above with respect to FIGS. 1-4.
[0163] It is contemplated that the steps or descriptions of Figure 13 may be used in conjunction with any other embodiment of the present disclosure. Additionally, the steps and descriptions described in connection with Figure 13 may be performed in alternate orders or in parallel to further the objectives of the present disclosure. For example, each of these steps may be performed in any order, in parallel, or substantially simultaneously to reduce delay or increase the speed of the system or method. Furthermore, it should be noted that any of the devices or equipment discussed in connection with Figures 7-8 may be used to implement one or more of the processes of Figure 13.
[0164] The above-described embodiments of the present disclosure are presented for purposes of illustration, not limitation, and the present disclosure is limited only by the following claims. Furthermore, it should be noted that features and limitations described in any one embodiment may be applied to any other embodiment herein, and that flowcharts or examples relating to one embodiment may be combined with any other embodiment in a suitable manner, performed in a different order, or performed in parallel. In addition, the systems and methods described herein may be implemented in real time. It should also be noted that the systems and / or methods described above may be applied to or used in accordance with other systems and / or methods.
Claims
1. A method, the method comprising: providing access to the media asset based on receiving the first authorization code; receiving, while the media asset is being played, a user interface command to perform an action related to the playing of the media asset; (a) receiving the user interface command to perform the action related to the playback of the media asset while the media asset is being played; and (b) requesting biometric data based on determining that additional authorization is required for the user interface command; executing the user interface command based on determining that the received biometric data matches the stored biometric data; A method comprising:
2. The method of claim 1, wherein the biometric data includes one or more of the user's iris scan, retina scan, fingerprint scan, or face map.
3. The method of claim 1, wherein the biometric data includes an image of a biometric signature.
4. The method comprises: generating instructions to grant access to view the media asset for a predetermined period of time; executing the instructions, the instructions storing a temporary indication to grant access to view the media asset; monitoring elapsed time based on executing the instructions; removing the temporary indication to allow access to view the media asset based on determining that the elapsed time exceeds the predetermined period; and The method of claim 1 further comprising:
5. The method of claim 1, wherein providing access to the media asset includes providing a temporary indication to allow access to the media asset, and wherein the user interface command to perform the operation related to playing the media asset includes removing the temporary indication to allow access to the media asset.
6. The user interface command for performing the action related to playing the media asset, comprising: accessing a block of memory containing data corresponding to the media asset; copying the data contained in the block of memory corresponding to the media asset to a first user device; The method of claim 1 , comprising:
7. The method comprises: Based on determining that the received biometric data does not match the stored biometric data, querying to determine whether there is an alternative second authorization code for allowing the user interface command to be executed; generating, for display, an indication to input the alternative second authorization code based on determining that there is an alternative second authorization code for authorizing the user interface command to be executed; and The method of claim 1 further comprising:
8. The method comprises: accessing a user database containing identifiers of users who have accessed the media asset; retrieving contact information for a device associated with a user that accessed the media asset from a field in the user database associated with an identifier; transmitting a notification to the device to the user that the user interface command to perform the action related to playing the media asset has been received based on the contact information; and The method of claim 1 further comprising:
9. The method of claim 1, wherein the media asset is blocked from being played prior to receiving the first authorization code.
10. A system, comprising: an input / output (I / O) circuit configured to receive an authorization code; a control circuit configured to provide access to a media asset based on the I / O circuit receiving the first authorization code; Equipped with The I / O circuit receiving a command to perform an action related to the playback of the media asset while the media asset is being played; (a) receiving the user interface command to perform the action related to the playback of the media asset while the media asset is being played; and (b) requesting biometric data based on determining that additional authorization is required for the user interface command. and further configured to: The control circuit Executing the user interface command based on determining that the received biometric data matches the stored biometric data. The system is further configured to:
11. The system of claim 10, wherein the biometric data includes one or more of the user's iris scan, retina scan, fingerprint scan, or face map.
12. The system of claim 10, wherein the biometric data includes an image of a biometric signature.
13. The control circuit generating instructions to grant access to view the media asset for a predetermined period of time; executing the instructions, the instructions storing a temporary indication to grant access to view the media asset; monitoring elapsed time based on executing the instructions; removing the temporary indication to allow access to view the media asset based on determining that the elapsed time exceeds the predetermined period; and The system of claim 10 , further configured to:
14. The system of claim 10, wherein the control circuitry is further configured to provide access to the media asset by providing a temporary indication to allow access to the media asset, and the user interface command to perform the operation related to playing the media asset includes removing the temporary indication to allow access to the media asset.
15. The user interface command for performing the action related to playing the media asset comprises: accessing a block of memory containing data corresponding to the media asset; copying the data contained in the block of memory corresponding to the media asset to a first user device; The system of claim 10, comprising:
16. The control circuit Based on determining that the received biometric data does not match stored biometric data, querying to determine whether there is an alternative second authorization code for allowing the user interface command to be executed; generating, for display, an indication to input the alternative second authorization code based on determining that there is an alternative second authorization code for authorizing the user interface command to be executed; and The system of claim 10 , further configured to:
17. The control circuit accessing a user database containing identifiers of users who have accessed the media asset; retrieving contact information for a device associated with a user that accessed the media asset from a field in the user database associated with an identifier; and further configured to: The I / O circuit transmitting a notification to the device to the user that the user interface command to perform the action related to playing the media asset has been received based on the contact information. The system of claim 10 , further configured to:
18. The system of claim 10, wherein the control circuitry is further configured to block the media asset from being played prior to receiving the first authorization code.
19. A non-transitory computer-readable memory having instructions stored therein that, when executed by a processor, perform the following: providing access to the media asset based on receiving the first authorization code; receiving a command to perform an action related to the playback of the media asset while the media asset is being played; (a) receiving the command to perform the action associated with the media asset while the media asset is being played; and (b) requesting biometric data based on determining that additional authorization is required for the user interface command. executing the user interface command based on determining that the received biometric data matches the stored biometric data; and a non-transitory computer-readable memory configured to cause a set of actions to be performed, the set of actions including:
20. The non-transitory computer-readable memory of claim 19, wherein the biometric data includes one or more of the user's iris scan, retina scan, fingerprint scan, or face map.
Citation Information
Patent Citations
User interface navigational system with parental control for video on demand system
EP1186172A1
Data distribution system
JP2002297555A
Mass storage devices using automated credential loading
JP2009500756A
Authentication Key Device Having Media Content Storage and Rendering Capabilities
US20080162925A1
Method and apparatus for managing viewing of media content
US20150067709A1