Skip to content

Advanced Scheduling Options

Shane C Mason edited this page Jun 7, 2025 · 28 revisions

About the Scheduler:

FieldStation42s scheduler was code-named Liquid Scheduler due to the conceptual way it works to fill the schedule. The first scheduler only allowed for fixed duration of either 30, 60 or 120 minutes per show to keep schedules aligned. This was a very rigid approach that only supported network style television. Liquid Scheduler lets you make fluid schedules.

Flexible Schedule Increments

Liquid Scheduler keeps schedules aligned by introducing the configuration concept of schedule_increment=N where N is the number of minutes in duration. Meaning, schedules will be generated to always end on those increments. For example, traditional networks tend to use 30 minute blocks, meaning most shows are 30, 60, 90 or 120 minutes in length, but may occasionally go to longer, but always tend to end on an even increment of 30 minutes. A movie channel may only have 5 minute increments with a few short bumps in between. Other channels may have no buffering, breaks or station identifications at all.

  • By default shows are set to end in 30 minute increments
    • A 22 minute show will be buffered to 30 minutes in length
    • A 47 minute show will be buffered to 60 minutes in length
    • A 78 minute show will be buffered to 90 minutes in length and so on
  • Set schedule_increment=N and shows will be be buffered to end in N minute increments
    • If N=5 a 22 minute show will be 25 min and a 47 min show will be 50
    • If N=0, the schedule will not be buffered with commercials or bumps
  • Works with existing configurations - no updates required for default.

Its all relative

There are a couple of important concepts to remember when working with scheduler configurations:

  • tags are really just a relative directory path
  • All paths are relative to the station's content_dir

Configurable Time Slots

The FS42 scheduler allows for a broad set of optional time slot configurations, and understand what they do is key to using FS42s most powerful features. The following figure shows a time slot using all the parameters at once.

"20": {
    "tags": "myshow",
    "start_bump": "extra/pre-myshow.mp4",
    "end_bump": "extra/post-myshow.mp4",
    "bump_dir": "extra/myshow_bumps",
    "commercial_dir": "extra/myshow_commercials",
    "sequence": "prime",
    "sequence_start": 0.0,
    "sequence_end": 
},

Time slot start_bump and end_bump

These parameters allow you to set specific bumps to play at the start or end of a time slot. For start_bump, the specified bump will be played once at the start of the time slot and wont be repeated (unless its also part of the general bump pool). The same is true for end_bump, except it will only be played once at the end of the time slot.

The following will play a start and end bump in the same slot:

"20": {"tags" : "adult_swim", "start_bump": "caps/sb.mp4", "end_bump": "caps/eb.mp4"},

The following will play a start bump in one time slot and an end bump in a different time slot. This pattern wraps a time block in start and end bumps - allowing you to simulate programming blocks like Toonami and Adult Swim.

"20": {"tags" : "adult_swim", "start_bump": "caps/sb.mp4"},
"22": {"tags" : "adult_swim"},
"22": {"tags" : "adult_swim", "end_bump": "caps/eb.mp4"},

To use this, file paths are relative to the stations content_dir. So, in this case, I have a folder named caps inside of this stations content folder. Use a different folder than your standard bump folder and don't use the folder as a tag, or else your start and end bumps could be used in normal programming.

Time slot commercial_dir and bump_dir

These parameters allow you to set directories to use for break content for a time slot. When used, the station commercial_dir or break_dir will be overridden and break content will only be pulled from the specified directories.

You can use one, or both on a time slot, as in this Saturday morning cartoons example:

"8": {"tags" : "saturday_cartoons", "commercial_dir" : "kids_commercials", "bump_dir": "sat_morning_bumps"},

Time slot sequence

This parameter enables playing series in a sequence, based on the alpha-numeric ordering of the video files on disk. Sequences are named, so that you can have multiple sequences with the same name. Sequences are declared in time slots in your station's configuration file, like so:

"21": {"tags" : "my_show", "sequence": "my_sequence"},

In this example, we have declared that the videos in my_show folder are a series made up of episodes that are in alpha-numeric order on disk. Only files that are considered part of the series should be included in this folder. The folder my_show will be read recursively to build out the sequence episode list.

#### Sequence start and end points

In this use case, you want to run multiple sequences of a show, but want them to be on different intervals and playing different parts of the series. Consider the case above, where you want new episodes to play in primetime while old episodes are playing on syndication.

If we want to restrict the daily to older episodes, use the sequence_start and sequence_end properties.

"17": {"tags" : "xfiles", "sequence": "daily", "sequence_start": 0.0, "sequence_end": 0.75},

then, on Friday's, we have this entry:

"21": {"tags" : "xfiles", "sequence": "prime", "sequence_start": 0.75, "sequence_end": 1.0},

In this case, the xfiles-daily sequence will start on the first episode and play up-to 75% in the series. The 'xiles-prime` will start at the episode that is 75% of the way through the series and play to the end.

Values are expressed as a percentage of the overall count of episodes in the series. Series sequences loop after they reach the sequence_end back to sequence_start and then play again to sequence_end.

You can do a lot with sequences, so they are documented in detail on this page.

Clone this wiki locally