IP Library Granted Patent US 11,388,477
Granted Patent B2
US 11,388,477 · App. 17/017,052 · Granted Jul 12, 2022

Client-side dynamic presentation of programming content in an indexed disparate live media output stream

Inventors: Donald Jude Loheide (Mableton, GA); Nishith Kumar Sinha (Mableton, GA); Nicolas Paul Webb (McDonough, GA)
Assignee: Turner Broadcasting System, Inc.
H04N21/458H04N21/433H04N21/8547
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,388,477
App. No.
17/017,052
Granted
Jul 12, 2022
Kind
B2
Abstract

A system is provided for client-side dynamic presentation of programming content in indexed disparate live media output stream. Client request is generated based on user input when indexed first disparate live media output stream is played back or to be played back at client interface of first client device. The client request comprises at least a program identifier referenced in published first programming schedule with respect to playback position in published first programming schedule that comprises one or more functionalities enabled via one or more constraints and rights associated with at least indexed first disparate live media output stream. Based on insertion of manifest data and indexed metadata associated with program identifier, at least one of the first disparate live media output stream is altered or second disparate live media output stream is generated, which comprises manifest data, indexed metadata and updated playback position, is presented at client interface based on client request.

Claims (85)

1. A system, comprising:

one or more processors in a first client device, wherein the one or more processors are configured to:

generate a client request based on a user input when an indexed first disparate live media output stream is played back or to be played back at a client interface of the first client device,

wherein the client request comprises at least a program identifier referenced in a published first programming schedule with respect to a playback position in the published first programming schedule, and

wherein the published first programming schedule comprises one or more functionalities enabled via one or more constraints and rights associated with at least the indexed first disparate live media output stream; and

present at least one of an altered first disparate live media output stream or a generated second disparate live media output stream at the client interface based on the generated client request,

wherein the alteration of the first disparate live media output stream or the generation of the second disparate live media output stream is based on an insertion of manifest data and indexed metadata associated with the program identifier, associated with a programming content, referenced in the published first programming schedule, and

wherein the altered first disparate live media output stream or the generated second disparate live media output stream comprises the manifest data, the indexed metadata and an updated playback position.

2. The system according to claim 1 , wherein the manifest data corresponds to one or both of an encoded live input stream and a pre-encoded media asset associated with the program identifier,

wherein the manifest data defines at least an associated media content, one or more programming indicators, timing metadata, one or more media content identifiers, and one or more contextual event identifiers, and

wherein the timing metadata corresponds to the playback position in the published first programming schedule.

3. The system according to claim 1 , wherein the one or more functionalities enabled via the one or more constraints and rights include a first functionality to restart the programming content in the first disparate live media output stream that is presented on at least the first client device.

4. The system according to claim 3 , wherein the one or more processors are further configured to determine the program identifier based on a request for a list of programming content associated with the first disparate live media output stream from a repository of schedules, rights, and user preferences database, and

wherein the list of programming content comprises additional metadata that controls the first functionality of a current programming content and each of past programming content as enabled via the one or more constraints and rights in the published first programming schedule.

5. The system according to claim 3 , wherein the client request is generated by the first client device based on a user input provided to restart the programming content that is currently or recently played back in the first disparate live media output stream in accordance with the first functionality defined in the published first programming schedule.

6. The system according to claim 1 , wherein the one or more functionalities enabled via the one or more constraints and rights include a second functionality to skip to a future scheduled programming content in the first disparate live media output stream, and

wherein the second functionality is allowed for a first set of pre-encoded media content or a live input stream that comprises a second set of pre-encoded media content.

7. The system according to claim 6 , wherein the one or more processors are further configured to request a list of programming content associated with the first disparate live media output stream from a repository of schedules, rights, and user preferences database, and

wherein the list of programming content comprises additional metadata that controls the second functionality of the future scheduled programming content as enabled via the one or more constraints and rights in the published first programming schedule.

8. The system according to claim 7 , wherein the client request is generated by the first client device based on the user input that corresponds to a selection of the future scheduled programming content from the list of programming content, and

wherein the program identifier referenced in the published first programming schedule corresponds to the selected future scheduled programming content that is scheduled to be played out during a future timestamp after a live point in a playback buffer of the first disparate live media output stream.

9. The system according to claim 1 , wherein the one or more functionalities enabled via the one or more constraints and rights include a third functionality to time-shift within the programming content in the first disparate live media output stream,

wherein the first disparate live media output stream manifest associated with the first disparate live media output stream presented at the first client device comprises timing metadata, and

wherein the timing metadata comprises embedded time-based identifiers corresponding to media segments in the first disparate live media output stream.

10. The system according to claim 9 , wherein the one or more processors are further configured to:

present a client interface at the first client device in accordance with the third functionality which corresponds to each programming content as enabled via the one or more constraints and rights; and

enable a seeking option within the programming content in the first disparate live media output stream at the client interface of at least the first client device,

wherein the client request further comprises a seeking position to which playback is to be time-shifted to, and

wherein the seeking position comprises a time-based identifier which corresponds to an embedded time-based identifier within the first disparate live media output stream.

11. The system according to claim 1 , wherein the one or more functionalities enabled via the one or more constraints and rights include a fourth functionality to resume playback within the programming content in the first disparate live media output stream,

wherein the first disparate live media output stream manifest associated with the first disparate live media output stream presented on the first client device comprises timing metadata, and

wherein the timing metadata comprises embedded time-based identifiers.

12. The system according to claim 11 , wherein the one or more processors are further configured to:

pause or terminate the playback of the first disparate live media output stream upon a first user selection;

capture a stream identifier of the first disparate live media output stream, the program identifier of the programming content that is currently playing back, and timing metadata within the first disparate live media output stream,

wherein the client request further comprises the stream identifier and the timing metadata in addition to the program identifier; and

resume playback of the first disparate live media output stream on at least one of the first client device or a second client device upon a second user selection based on the captured stream identifier of the first disparate live media output stream, the program identifier of the programming content that is currently playing back, and the timing metadata,

wherein a user identifier of the first client device is further associated with the second client device, and

wherein the client request further comprises the stream identifier and the timing metadata in addition to the program identifier.

13. A method, comprising:

by one or more processors in a first client device:

generating a client request based on a user input when an indexed first disparate live media output stream is played back or to be played back at a client interface of the first client device,

wherein the client request comprises at least a program identifier referenced in a published first programming schedule with respect to a playback position in the published first programming schedule, and

wherein the published first programming schedule comprises one or more functionalities enabled via one or more constraints and rights associated with at least the indexed first disparate live media output stream; and

presenting at least one of an altered first disparate live media output stream or a generated second disparate live media output stream at the client interface based on the generated client request,

wherein the alteration of the first disparate live media output stream or the generation of the second disparate live media output stream is based on an insertion of manifest data and indexed metadata associated with the program identifier, associated with a programming content, referenced in the published first programming schedule, and

wherein the altered first disparate live media output stream or the generated second disparate live media output stream comprises the manifest data, the indexed metadata and an updated playback position.

14. The method according to claim 13 , wherein the manifest data corresponds to one or both of an encoded live input stream and a pre-encoded media asset associated with the program identifier,

wherein the manifest data defines at least an associated media content, one or more programming indicators, timing metadata, one or more media content identifiers, and one or more contextual event identifiers, and

wherein the timing metadata corresponds to the playback position in the published first programming schedule.

15. The method according to claim 13 , wherein the one or more functionalities enabled via the one or more constraints and rights include a first functionality to restart the programming content in the first disparate live media output stream that is presented on at least the first client device.

16. The method according to claim 15 , further comprising determining, by the one or more processors, the program identifier based on a request for a list of programming content associated with the first disparate live media output stream from a repository of schedules, rights, and user preferences database, and

wherein the list of programming content comprises additional metadata that controls the first functionality of a current programming content and each of past programming content as enabled via the one or more constraints and rights in the published first programming schedule.

17. The method according to claim 15 , wherein the client request is generated by the first client device based on a user input provided to restart the programming content that is currently or recently played back in the first disparate live media output stream in accordance with the first functionality defined in the published first programming schedule.

18. The method according to claim 13 , wherein the one or more functionalities enabled via the one or more constraints and rights include a second functionality to skip to a future scheduled programming content in the first disparate live media output stream, and

wherein the second functionality is allowed for a first set of pre-encoded media content or a live input stream that comprises a second set of pre-encoded media content.

19. The method according to claim 18 , further comprising requesting, by the one or more processors, a list of programming content associated with the first disparate live media output stream from a repository of schedules, rights, and user preferences database, and

wherein the list of programming content comprises additional metadata that controls the second functionality of the future scheduled programming content as enabled via the one or more constraints and rights in the published first programming schedule.

20. The method according to claim 19 , wherein the client request is generated by the first client device based on the user input that corresponds to a selection of the future scheduled programming content from the list of programming content, and

wherein the program identifier referenced in the published first programming schedule corresponds to the selected future scheduled programming content that is scheduled to be played out during a future timestamp after a live point in a playback buffer of the first disparate live media output stream.

21. The method according to claim 13 , wherein the one or more functionalities enabled via the one or more constraints and rights include a third functionality to time-shift within the programming content in the first disparate live media output stream,

wherein the first disparate live media output stream manifest associated with the first disparate live media output stream presented at the first client device comprises timing metadata, and

wherein the timing metadata comprises embedded time-based identifiers corresponding to media segments in the first disparate live media output stream.

22. The method according to claim 21 , further comprising:

presenting, by the one or more processors, a client interface at the first client device in accordance with the third functionality which corresponds to each programming content as enabled via the one or more constraints and rights; and

enabling, by the one or more processors, a seeking option within the programming content in the first disparate live media output stream at the client interface of at least the first client device,

wherein the client request further comprises a seeking position to which playback is to be time-shifted to, and

wherein the seeking position comprises a time-based identifier which corresponds to an embedded time-based identifier within the first disparate live media output stream.

23. The method according to claim 13 , wherein the one or more functionalities enabled via the one or more constraints and rights include a fourth functionality to resume playback within the programming content in the first disparate live media output stream,

wherein the first disparate live media output stream manifest associated with the first disparate live media output stream presented on the first client device comprises timing metadata, and

wherein the timing metadata comprises embedded time-based identifiers.

24. The method according to claim 23 , further comprising:

pausing or terminating, by the one or more processors, the playback of the first disparate live media output stream upon a first user selection; and

capturing, by the one or more processors, a stream identifier of the first disparate live media output stream, the program identifier of the programming content that is currently playing back, and timing metadata within the first disparate live media output stream,

wherein the client request further comprises the stream identifier and the timing metadata in addition to the program identifier; and

resuming, by the one or more processors, playback of the first disparate live media output stream on at least one of the first client device or a second client device upon a second user selection based on the captured stream identifier of the first disparate live media output stream, the program identifier of the programming content that is currently playing back, and the timing metadata,

wherein a user identifier of the first client device is further associated with the second client device, and

wherein the client request further comprises the stream identifier and the timing metadata in addition to the program identifier.

25. A non-transitory computer-readable medium having stored thereon, computer implemented instruction that when executed by a processor in a computer, causes the computer to execute operations, the operations comprising:

generating a client request based on a user input when an indexed first disparate live media output stream is played back or to be played back at a client interface of a first client device,

wherein the client request comprises at least a program identifier referenced in a published first programming schedule with respect to a playback position in the published first programming schedule, and

wherein the published first programming schedule comprises one or more functionalities enabled via one or more constraints and rights associated with at least the indexed first disparate live media output stream; and

presenting at least one of an altered first disparate live media output stream or a generated second disparate live media output stream at the client interface based on the generated client request,

wherein the alteration of the first disparate live media output stream or the generation of the second disparate live media output stream is based on an insertion of manifest data and indexed metadata associated with the program identifier, associated with a programming content, referenced in the published first programming schedule, and

wherein the altered first disparate live media output stream or the generated second disparate live media output stream comprises the manifest data, the indexed metadata and an updated playback position.

Assignments (2)
SECURITY INTEREST Recorded Oct 1, 2025
From: WARNER BROS. DISCOVERY, INC.; WARNER MEDIA, LLC; TURNER BROADCASTING SYSTEM, INC.; HOME BOX OFFICE, INC.; DISCOVERY COMMUNICATIONS, LLC; WARNERMEDIA DIRECT LLC; DISCOVERY.COM LLC; WARNER BROS. ENTERTAINMENT INC.; CNN INTERACTIVE GROUP, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 072995/0858 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2020
From: LOHEIDE, DONALD JUDE; SINHA, NISHITH KUMAR; WEBB, NICOLAS PAUL
To: TURNER BROADCASTING SYSTEM, INC.
Reel/Frame 054601/0912 →