Patent ID: 12250427

DETAILED DESCRIPTION

FIG.1shows a generalized embodiment of a first content platform on which a recommendation engine may be employed and a second content platform from which the first content platform may retrieve content, in accordance with some embodiments of the disclosure. First content platform100is available to the user in his or her home or on his or her mobile device. First content platform100provides content recommendations102a-102hfor content items available on content platform100which may be of interest to the user. For example, first content platform100may compare characteristics or attributes (e.g., genre, actors) of content items previously watched by the user with characteristics or attributes of other available content items to identify content items with matching (i.e., similar) characteristics or attributes. First content platform100may also access calendar data104associated with a profile of the user. Calendar data104may include travel information106, such as a scheduled airline flight. Upon detecting the travel information, first content platform100identifies a second content platform108that will be available to the user during travel. First content platform100retrieves content identifiers of content items110a-110davailable on the second content platform108. In some embodiments, first content platform100compares the content items available on second content platform108with content items available on the first content platform100and retrieves content identifiers only for content items that are available only on second content platform108. A visual indicator112may be overlaid over an image or link (e.g., content identifier102d) corresponding to content items available on the second content platform108. Content identifier102dmay also include the duration114of the corresponding content item. If the user selects a content identifier corresponding to a content item available only on second content platform108(e.g., content identifier102d), first content platform100determines whether the user has a sufficiently long access duration to consume the content item by comparing the length of the content item114to the access duration. If so, first content platform100retrieves or streams the content item from second content platform108and generates the content item for display to the user. First content platform100also updates an access duration corresponding to the period of time during which the user will have access to second content platform108, reducing the length of content the user will be allowed to access (i.e., the access duration) by the duration114of the selected content item, or the length of a portion of the selected content item actually consumed by the user.

To allow access to the second content platform, the first content platform retrieves an access token from the second content platform.FIG.2shows an example of an access token200containing a token ID202, an initial duration204, a consumption counter206for the length of content consumed by the user, and a remaining duration208. For example, travel information106indicates a flight from JFK to Dubai with a scheduled flight time of twelve hours and fifteen minutes. Initial duration204reflects this amount of time. As the user consumes content from second content platform108, first content platform100updates the consumption counter206. First content platform100recalculates the remaining duration by subtracting the value of the consumption counter from the initial duration to obtain a new remaining duration. First content platform100updates the remaining duration to reflect the new remaining duration.

In some embodiments, the access duration is divided into portions for different types of content items. For example,FIG.3shows an access token300in which the total duration302is split among three categories304,306, and308based on a genre of content. The proportion by which the total duration302is assigned to each respective category is based on the average amount of content in each category consumed by users of the second content platform. Each category tracked in access token300has a respective initial duration (304a,306a,308a), consumption counter (304b,306b,308b), and remaining duration (304c,306c,308c). The total duration may also be split among categories based on content quality (e.g., video resolution). As another example,FIG.4shows an access token400having categories for 1080p video402, 4K video404, and 720p video406. Similar to access token300, each category has a respective initial duration, consumption counter, and remaining duration. The first content platform identifies the category into which the selected content item falls and updates the respective consumption counter and remaining balance for that category using the same method described above.

FIG.5is a block diagram representing control circuitry and data flow within a user device500having access to the first content platform100in accordance with some embodiments of the disclosure. User device500includes input circuitry502, control circuitry504, and display circuitry506. Input circuitry502may include a microphone and voice processing circuitry for receiving voice commands, infrared receiving circuitry for receiving commands from a remote control device, a touchscreen interface for receiving user interaction with graphical user interface elements, or any combination thereof or any other suitable input circuitry for receiving any other suitable user input. Control circuitry504may be based on any suitable processing circuitry and comprises control circuits and memory circuits, which may be disposed on a single integrated circuit or may be discrete components. As referred to herein, processing circuitry should be 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 a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores). In some embodiments, processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor). Input circuitry502may be integrated with control circuitry504.

User device500may present content recommendations to the user. For example, control circuitry504may transmit a query508to a database510of the first content platform to identify available content items. Control circuitry504receives, in response to the query508, a plurality of content identifiers512from the database510corresponding to available content items. Each of the plurality of content identifiers512may be displayed to the user using display circuitry506. Control circuitry504also transmits a second query514to a profile database516for profile data associated with the user. In response to the second query514, control circuitry504receives, from the profile database516, user profile data518which may include calendar data (e.g., calendar data104). If calendar data104indicates the user will be travelling in the near future, control circuitry504identifies from calendar data104a transportation carrier associated with the travel, such as an airline, and determines whether the transportation carrier provides access to a second content platform. If so, control circuitry504transmits a third query520to a database522of the second content platform108to identify content items available on the second content platform108. In response to the third query520, control circuitry504receives a second plurality of content identifiers524. Like the first plurality of content identifiers512, each of the second plurality of content identifiers524may be displayed to the user using display circuitry506. In some embodiments, control circuitry504may compare the second plurality of content identifiers524to the first plurality of content identifiers512to determine which of the second plurality of content identifiers524is not also included in the first plurality of content identifiers512. Control circuitry504then displays only those content identifiers of the second plurality of content identifiers524that are not also included in the first plurality of content identifiers512. Control circuitry504may also overlay an icon or other visual indicator over content identifiers of the second plurality of content identifiers524to indicate that the corresponding content item is available only on the second content platform108.

In addition to receiving the second plurality of content identifiers524, control circuitry504also receives access token526. Access token526, which may be any one of access token200,300, or400, includes an access duration, a consumption counter, which tracks the length of content from the second content platform108that the user has consumed, and a remaining duration, which reflects the difference between the access duration and the consumption counter.

User device500may receive, using input circuitry502, input528selecting a content identifier. Input circuitry502processes input528to determine a command associated with input528. The command530is then transmitted to control circuitry504. In response to the command530, control circuitry504determines whether the selected content identifier corresponds to a content item available on the second content platform108. If the selected content identifier corresponds to a content item available on the second content platform108, control circuitry transmits a request532to database522of the second content platform108to begin streaming the selected content item. Control circuitry also updates the remaining duration in access token526and transmits the updated access token534for storage in the database522of the second content platform108. In response to request532, control circuitry504receives selected content item536from database522. Control circuitry504processes selected content item536and transmits538media data of selected content item536to display circuitry506, which in turn outputs540the media data to a display.

FIG.6is a flowchart representing an illustrative process600for controlling and tracking, at a first content platform, access to content from a second content platform, in accordance with some embodiments of the disclosure. Process600may be implemented on control circuitry504. In addition, one or more actions of process600may be incorporated into or combined with one or more actions of any other process or embodiment described herein.

At602, control circuitry504identifies a period of time during which the user will have access to the second content platform108and, at604, control circuitry504determines an access duration of the period of time. These actions may be accomplished using methods described below in connection withFIG.12.

At606, control circuitry504retrieves a plurality of content identifiers of content items that will be available on the second content platform108during the period of time. Control circuitry504may transmit a query (e.g., query520) to a database of the second content platform108such as database522. The query may be, for example, an SQL “SELECT” command or any other suitable type of database query. Control circuitry504receives, in response to the query, the plurality of content identifiers.

At608, control circuitry504receives, via input circuitry502, a selection of a content identifier of the plurality of content identifiers. For example, a command may be received from a remote control device or a touch interface device selecting a particular content identifier. Input circuitry502receives the command and relays it to control circuitry504. Alternatively, input circuitry502may translate the received command into a machine-level command that can be recognized by control circuitry504. Control circuitry504determines whether the selected content identifier corresponds to a content item available on the second content platform108. For example, upon receiving the plurality of content identifiers, control circuitry504may tag each of the content identifiers of the plurality of content identifiers with a tag, such as a metadata field, indicating that the content into which the content identifier corresponds is available on the second content platform108. Upon receiving the selection of a content identifier, control circuitry504may check this tag to determine whether the content item to which the selected content identifier corresponds is available on the second content platform108or the first content platform100.

At610, control circuitry504determines the duration of the content item corresponding to the selected content identifier. The content identifier may include metadata describing the corresponding content item and may include duration information. Alternatively, control circuitry504may transmit a query to database522requesting duration information for the content item corresponding to the selected content identifier.

At612, control circuitry504determines whether the access duration exceeds the duration of the content item. For example, control circuitry compares the duration of the content item with the access duration or the remaining duration indicated in the access token. Control circuitry504may convert the time units in which the duration of the content item and/or the access duration or remaining duration are measured into a common time unit. For example, the access duration and/or remaining duration may be represented as a number of minutes, while the duration of the content item may be represented as a number of hours and a number of minutes. Control circuitry504converts the hours and minutes representing the duration of the content item to an equivalent number of minutes to facilitate the comparison. If the access duration exceeds the duration of the content item, then, at614, control circuitry504generates the content item for display and, at616, reduces the access duration or remaining duration by an amount of time equal to the duration of the content item. This may be accomplished using methods described below in connection withFIG.8. If the access duration does not exceed the duration of the content item, then, at618, control circuitry504generates an alert that the duration of the content item exceeds the access duration. Control circuitry504does not generate the content item for display.

The actions or descriptions ofFIG.6may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation toFIG.6may be done in suitable alternative orders or in parallel to further the purposes of this disclosure.

FIG.7is a flowchart representing an illustrative process for controlling and tracking access to types of content, in accordance with some embodiments of the disclosure. Process700may be implemented on control circuitry504. In addition, one or more actions of process700may be incorporated into or combined with one or more actions of any other process or embodiment described herein.

At702, control circuitry504identifies a content type of the content item corresponding to the selected content identifier. The content type may be a genre (e.g., action, drama, comedy), rating (e.g., PG, PG-13, R, TV-Y, TV-MA), or quality level (e.g., 702p, 1080p, 4K). At704, control circuitry504determines whether a portion of the access duration corresponding to the identified type exceeds the duration of the content item. As described above in connection withFIGS.3and4, the access duration may be divided into portions associated with different types of content. The user may be authorized by the second content platform108to view only a certain length of content in each category, with the total length of content in all categories equaling the access duration. If the portion of the access duration corresponding to the identified content type exceeds the duration of the content item, then, at706, control circuitry504generates for display the content item and, at708, reduces the portion of the access duration by an amount equal to the duration of the content item. This may be accomplished using methods described below in connection withFIG.8. If the portion of the access duration corresponding to the identified content type does not exceed the duration of the content item, then, at710, control circuitry504generates an alert that that duration of the content item exceeds the portion of the access duration corresponding to the identified content type.

The actions or descriptions ofFIG.7may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation toFIG.7may be done in suitable alternative orders or in parallel to further the purposes of this disclosure.

FIG.8is a flowchart representing an illustrative process800for updating a remaining amount of an access duration, in accordance with some embodiments of the disclosure.

Process800may be implemented on control circuitry504. In addition, one or more actions of process800may be incorporated into or combined with one or more actions of any other process or embodiment described herein.

At802, control circuitry504retrieves, from the second content platform108, an access token comprising the access duration, a length of content consumed by the user, and a remaining duration. Control circuitry504may retrieve the access token before, concurrently with, or after retrieving the plurality of content identifiers from database522of the second content platform108.

At804, control circuitry504adds the duration of the content item to the length of content consumed by the user. As described above, control circuitry504may convert the access duration of the content item and/or the consumption counter to the same time units, such as minutes, so that the two values can be added together. At806, control circuitry504calculates a new remaining duration representing the difference between the access duration and the length of content consumed by the user. Control circuitry504subtracts the value of the consumption counter from the value of the access duration to obtain a new remaining duration. Alternatively, control circuitry504may subtract the duration of the content item from the remaining duration and assign the resulting difference as the new remaining duration. At808, control circuitry504replaces the remaining duration with the new remaining duration. Control circuitry504updates the access token and may transmit the updated access token to the second content platform108.

The actions and descriptions ofFIG.8may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation toFIG.8may be done in suitable alternative orders or in parallel to further the purposes of this disclosure.

FIG.9is a flowchart representing an illustrative process900for determining an amount by which to reduce a remaining amount of an access duration, in accordance with some embodiments of the disclosure. Process900may be implemented on control circuitry504. In addition, one or more actions of process900may be incorporated into or combined with one or more actions of any other process or embodiment described herein.

In some embodiments, the access duration is reduced by the length of content actually consumed by the user, rather than by the entire duration of a selected content item. At902, control circuitry504begins generating for display the content item. At904, control circuitry504determines whether playback of the content item has stopped. Control circuitry504may check for receipt of a stop command, or whether playback has ended automatically after reaching the end of the content item. If playback has stopped, then. at906, control circuitry504determines a length of the content item actually consumed by the user. Control circuitry504identifies a playback position at which playback of the content item ended. Control circuitry504then determines a length of content consumed between the start of the content item and the identified playback position. For example, control circuitry504may determine a time stamp of the content item corresponding to the identified playback position. Alternatively, control circuitry504may identify a frame number corresponding to the identified playback position and calculate, based on a known frame rate of the content item, the number seconds that have elapsed between the start of the content item and the identified playback position. At908, control circuitry504reduces the access duration by an amount of time equal to the length of the content actually consumed by the user using methods described above in connection withFIG.8.

The actions and descriptions ofFIG.9may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation toFIG.9may be done in suitable alternative orders or in parallel to further the purposes of this disclosure.

FIG.10is a flowchart representing an illustrative process1000for retrieving, by a first content platform, content identifiers from a second content platform, in accordance with some embodiments of the disclosure. Process1000may be implemented on control circuitry504. In addition, one or more actions of process1000may be incorporated into or combined with one or more actions of any other process or embodiment described herein.

In some embodiments, content identifiers for only those content items available on the second content platform108and not also available on the first content platform100are retrieved. At1002, control circuitry504identifies a plurality of content items that will be available on the second content platform during108the period of time. Control circuitry504may transmit a query to database522of the second content platform108such as an SQL “SELECT” command. At1004, control circuitry504initializes a variable N and a variable T. N is a counter variable and control circuitry504sets its value to zero. T represents the total number of content items available on the second content platform108and control circuitry504sets its value accordingly by retrieving the total number of content items from database522.

At1006, control circuitry504determines whether the Nthcontent item is currently available on the first content platform100. Control circuitry504may compare metadata or other identifying information in the content identifier of the Nthcontent item with a plurality of content identifiers corresponding to content items currently available on the first content platform100. If the Nthcontent item is not currently available on the first content platform100, then, at1008, control circuitry504retrieves the content identifier of the Nthcontent item from database522of the second content platform108. After retrieving the content identifier, or after determining that the Nthcontent item is currently available on the first content platform100, at1010, control circuitry504compares the value of N with the value of T to determine if there are additional content items available on the second content platform108. If N is not yet equal to T, then, at1012, control circuitry504increments the value of N by one and processing returns to step1006. This process repeats until N is equal to T, indicating that all content items available on the second content platform108have been compared with available content on the first content platform100.

The actions and descriptions ofFIG.10may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation toFIG.10may be done in suitable alternative orders or in parallel to further the purposes of this disclosure.

FIG.11is a flowchart representing an illustrative process1100for determining whether to reduce a remaining amount of an access duration in response to selection of a content item, in accordance with some embodiments of the disclosure. Process1100may be implemented on control circuitry504. In addition, one or more actions of process1100may be incorporated into or combined with one or more actions of any other process or embodiment described herein.

In some cases, a selected content identifier may correspond to a content item that is available on both the first content platform100and the second content platform108. At1102, control circuitry504determines whether the content item corresponding to the selected content identifier is available on the first content platform100. For example, as described above, control circuitry504may tag content identifiers with an indication that the corresponding content item is available on the second content platform108. Control circuitry504may, upon receiving selection of a content identifier, determine, based on the tag, that the corresponding content item is available on the second content platform and compare the content identifier with content identifiers corresponding to content items available on the first content platform100. Control circuitry504may query database510for an entry matching the selected content identifier.

If control circuitry504determines that the content item is available only on the second content platform108, then, at1104, control circuitry504reduces the access duration by an amount of time equal to the duration of the content item. The may be accomplished using methods described above in connection withFIG.8. At1106, control circuitry504generates for display the content item from the second content platform. If control circuitry504determines that the content item is available only on the first content platform100, or on both the first content platform100and the second content platform108, then, at1108, control circuitry504generates for display the content item from the first content platform100, and does not reduce the access duration.

The actions and descriptions ofFIG.11may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation toFIG.11may be done in suitable alternative orders or in parallel to further the purposes of this disclosure.

FIG.12is a flowchart representing an illustrative process1200for determining whether a second content platform will be available to a user in the near future, in accordance with some embodiments of the disclosure. Process1200may be implemented on control circuitry504. In addition, one or more actions of process1200may be incorporated into or combined with one or more actions of any other process or embodiment described herein. At1202, control circuitry504accesses calendar data associated with a profile of the user for an amount of time in the future. For example, control circuitry504may access calendar data for the next seven days. Control circuitry504may transmit a query to the profile database516for calendar data for the next seven days. At1204, control circuitry504determines whether the calendar data indicates travel. Control circuitry504processes calendar data to identify travel-related entries such as flights and hotel reservations.

If the calendar data indicates travel, then, at1206, control circuitry504identifies a departure time from a first location associated with the profile and an arrival time at a second location associated with the travel. Control circuitry504determines from the travel-related entries a time at which the user will begin travelling, such as a flight departure time. Control circuitry504also determines when the user will arrive at his or her destination, such as a flight arrival time or a hotel check-in time.

At1208, control circuitry504identifies, from the calendar data, a transportation carrier associated with the calendar data. Control circuitry504may identify an airline from the calendar data by performing a keyword search for known airline names such as “United Airlines,” “JetBlue,” “Lufthansa.” Alternatively, control circuitry504may identify an airline from a carrier code included as part of a flight number. For example, flight number “B61701” corresponds to JetBlue flight1701. Control circuitry504may access a database of known carrier codes based upon which control circuitry504may identify the carrier.

At1210, control circuitry504determines whether a content platform other than the first content platform100will be available during the period of time. Control circuitry504transmits a query to, or otherwise accesses, a server associated with the identified carrier to determine whether a content platform will be available to the user during transit. If another content platform (i.e., second content platform108) will be available during the period of time, then processing proceeds to step604(FIG.6), where control circuitry504determines a duration of the period of time.

The actions and descriptions ofFIG.12may be user with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation toFIG.12may be done in suitable alternative orders or in parallel to further the purposes of this disclosure.

The processes described above are intended to be illustrative and not limiting. One skilled in the art would appreciate that the steps of the processes discussed herein may be omitted, modified, combined, and/or rearranged, and any additional steps may be performed without departing from the scope of the invention. More generally, the above disclosure is meant to be exemplary and not limiting. Only the claims that follow are meant to set bounds as to what the present invention includes. Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any other embodiment herein, and flowcharts or examples relating to one embodiment may be combined with any other embodiment in a suitable manner, done in different orders, or done in parallel. In addition, the systems and methods described herein may be performed 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.