IP Library Granted Patent US 11,638,054
Granted Patent B2
US 11,638,054 · App. 16/842,650 · Granted Apr 25, 2023

Distributed scheduling of media channel playout

Inventor: Christopher Colby (Piedmont, CA)
Assignee: TIVO CORPORATION
H04N21/26258G06Q30/0264H04N5/782H04N7/165H04N21/26291H04N21/458H04N21/812H04N21/814H04N21/8146H04N5/765H04N9/8205
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,638,054
App. No.
16/842,650
Granted
Apr 25, 2023
Kind
B2
Abstract

Multiple scheduling producers such as content management systems, advertisement systems, and emergency broadcast systems can independently send scheduling events to scheduling consumers such as streaming servers, guide generators, and playlogs. The scheduling consumers maintain state machines with persistent storage to process scheduling events from scheduling producers and output media channel playlists, channel guides, and/or content. Scheduling producers can contribute independently to define a channel playout while information at scheduling consumers remains synchronized.

Claims (35)

1. A method for distributed scheduling, the method comprising:

receiving, at a scheduling event messaging middleware, a plurality of scheduling events and their associated time-stamps from a plurality of scheduling producers, wherein the plurality of scheduling producers are separate devices connected to the scheduling event messaging middleware over a network and the scheduling event messaging middleware is configured to receive scheduling events from any number of different scheduling producers over the network;

dynamically prioritizing the scheduling events in a prioritized order as they are received at the scheduling event messaging middleware, wherein the priority is based on the context of the scheduling event;

sending, from the scheduling event messaging middleware, the plurality of scheduling events and their associated time-stamps in the prioritized order, that were received from the plurality of scheduling producers to a plurality of scheduling consumers, wherein the scheduling event messaging middleware is further configured to send scheduling events and their associated time-stamps to any number of different scheduling consumers;

wherein each of the plurality of scheduling consumers includes a state machine that turns the plurality of scheduling events into playouts for each channel in a plurality of channels, wherein each time-stamp identifies a time for a specific channel, from the plurality of channels, at which the specific channel is to play one or more of the plurality of scheduling events.

2. The method of claim 1 , wherein a playout comprises a timestamped sequence of clips to be played out for a particular channel.

3. The method of claim 1 , wherein each state machine maintains a variety of data structures in persistent storage, the variety of data structures maintaining one or more of the following information about: playlists, when/how each playlist is scheduled to play, and the availability interval of each clip in a playlist.

4. The method of claim 1 , wherein the plurality of scheduling events include one or more of the following: playlists, content identifiers, timing information, and actions.

5. The method of claim 1 , wherein the plurality of scheduling producers includes one or more of the following: content providers, content management systems, advertising systems, and emergency broadcast systems.

6. The method of claim 1 , wherein the plurality of scheduling consumers includes one or more of the following: guide generators that create continuously updated channel guides, playlogs that maintain a database of entire clip sequences played out for each channel, content provider management systems that allow content providers to analyze playout of content and advertisements, and streaming servers that use scheduling events to send clips to individual client devices.

7. The method of claim 1 , wherein each state machine is synchronized with other state machines.

8. A system, comprising:

processor;

memory; and

scheduling event messaging middleware configured for:

receiving a plurality of scheduling events and their associated time-stamps from a plurality of scheduling producers, wherein the plurality of scheduling producers are separate devices connected to the scheduling event messaging middleware over a network and the scheduling event messaging middleware is configured to receive scheduling events from any number of different scheduling producers over the network;

dynamically prioritizing the scheduling events in a prioritized order as they are received, wherein the priority is based on the context of the scheduling event;

sending the plurality of scheduling events and their associated time-stamps in the prioritized order, that were received from the plurality of scheduling producers to a plurality of scheduling consumers, wherein the scheduling event messaging middleware is further configured to send scheduling events and their associated time-stamps to any number of different scheduling consumers;

wherein each of the plurality of scheduling consumers includes a state machine that turns the plurality of scheduling events into playouts for each channel in a plurality of channels, wherein each time-stamps identifies a time for a specific channel, from the plurality of channels, at which the specific channel is to play one or more of the plurality of scheduling events.

9. The system of claim 8 , wherein a playout comprises a timestamped sequence of clips to be played out for a particular channel.

10. The system of claim 8 , wherein each state machine maintains a variety of data structures in persistent storage, the variety of data structures maintaining one or more of the following information about: playlists, when/how each playlist is scheduled to play, and the availability interval of each clip in a playlist.

11. The system of claim 8 , wherein the plurality of scheduling events include one or more of the following: playlists, content identifiers, timing information, and actions.

12. The system of claim 8 , wherein the plurality of scheduling producers includes one or more of the following: content providers, content management systems, advertising systems, and emergency broadcast systems.

13. The system of claim 8 , wherein the plurality of scheduling consumers includes one or more of the following: guide generators that create continuously updated channel guides, playlogs that maintain a database of entire clip sequences played out for each channel, content provider management systems that allow content providers to analyze playout of content and advertisements, and streaming servers that use scheduling events to send clips to individual client devices.

14. The system of claim 8 , wherein each state machine is synchronized with other state machines.

15. A non-transitory computer readable storage medium comprising instructions for executing a method, the method comprising:

receiving, at a scheduling event messaging middleware, a plurality of scheduling events and their associated time-stamps from a plurality of scheduling producers, wherein the plurality of scheduling producers are separate devices connected to the scheduling event messaging middleware over a network and the scheduling event messaging middleware is configured to receive scheduling events from any number of different scheduling producers over the network;

dynamically prioritizing the scheduling events in a prioritized order as they are received at the scheduling event messaging middleware, wherein the priority is based on the context of the scheduling event;

sending, from the scheduling event messaging middleware, the plurality of scheduling events and their associated time-stamps in the prioritized order, that were received from the plurality of scheduling producers to a plurality of scheduling consumers, wherein the scheduling event messaging middleware is further configured to send scheduling events and their associated time-stamps to any number of different scheduling consumers;

wherein each of the plurality of scheduling consumers includes a state machine that turns the plurality of scheduling events into playouts for each channel in a plurality of channels, wherein each time-stamp identifies a time for a specific channel, from the plurality of channels, at which the specific channel is to play one or more of the plurality of scheduling events.

16. The non-transitory computer readable storage medium of claim 15 , wherein a playout comprises a timestamped sequence of clips to be played out for a particular channel.

17. The non-transitory computer readable storage medium of claim 15 , wherein each state machine maintains a variety of data structures in persistent storage, the variety of data structures maintaining one or more of the following information about: playlists, when/how each playlist is scheduled to play, and the availability interval of each clip in a playlist.

18. The non-transitory computer readable storage medium of claim 15 , wherein the plurality of scheduling events include one or more of the following: playlists, content identifiers, timing information, and actions.

19. The non-transitory computer readable storage medium of claim 15 , wherein the plurality of scheduling producers includes one or more of the following: content providers, content management systems, advertising systems, and emergency broadcast systems.

20. The non-transitory computer readable storage medium of claim 15 , wherein the plurality of scheduling consumers includes one or more of the following: guide generators that create continuously updated channel guides, playlogs that maintain a database of entire clip sequences played out for each channel, content provider management systems that allow content providers to analyze playout of content and advertisements, and streaming servers that use scheduling events to send clips to individual client devices.

Assignments (7)
CHANGE OF NAME Recorded Mar 31, 2026
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 075304/0001 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO LLC
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 069083/0325 →
CHANGE OF NAME Recorded Oct 1, 2024
From: TIVO CORPORATION
To: TIVO LLC
Reel/Frame 069083/0250 →
SECURITY INTEREST Recorded May 19, 2023
From: ADEIA GUIDES INC.; ADEIA MEDIA HOLDINGS LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 063707/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2021
From: COLBY, CHRISTOPHER
To: MOBITV, INC.
Reel/Frame 056420/0010 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2021
From: MOBITV, INC.; MOBITV SERVICES, INC.
To: TIVO CORPORATION
Reel/Frame 056444/0076 →
SECURITY INTEREST Recorded Oct 21, 2020
From: MOBITV, INC.
To: ALLY BANK
Reel/Frame 054128/0963 →