FieldStation42 gives you two tools for controlling when content is eligible to play. The first is folder-based hints: names you give to subfolders that FieldStation42 reads at catalog-build time to determine availability windows. The second is meta_hints: a block in your station config that expresses the same rules as JSON, without touching your folder structure.
Both work on the same principle. Content that is outside its availability window is simply not added to the eligible pool when the scheduler runs. No config changes are needed at schedule-build time; you set the rules once and they apply automatically.
Folder-Based Hints
Folder hints are the simplest option. Name a subfolder with a month, quarter, date range, time of day, or day of the week, and FieldStation42 restricts that folder's contents to the matching window automatically.
Monthly
Name a subfolder after a month and its contents only play during that month:
catalog/retro_tv/
└── cartoons/
├── October/ <- Only plays in October
│ ├── halloween_special1.mp4
│ └── halloween_special2.mp4
└── December/ <- Only plays in December
├── xmas_special1.mp4
└── xmas_special2.mp4
Use the full month name (January, February, March, etc.). Abbreviations are not recognized.
Quarterly
Use Q1, Q2, Q3, or Q4 to restrict content to a three-month window:
catalog/retro_tv/
└── commercial/
└── Q4/ <- Only plays Oct through Dec
├── holiday_sale.mp4
└── winter_promo.mp4
| Name | Months |
|---|---|
| Q1 | January through March |
| Q2 | April through June |
| Q3 | July through September |
| Q4 | October through December |
Date Range
For more specific windows, name a folder with a date range:
catalog/retro_tv/
└── sitcoms/
└── December 1 - December 25/ <- Only plays Dec 1 through 25
├── xmas_ep1.mp4
└── xmas_ep2.mp4
Ranges wrap around the year boundary, so a winter season can be expressed as a single folder name:
November 15 - April 10/ <- Plays Nov 15 through Apr 10
Time of Day
Name subfolders after parts of the day to control what plays when. This is especially useful for commercials and bumps:
catalog/retro_tv/
└── commercial/
├── morning/ <- Only plays 6am to 10am
│ ├── breakfast_ad.mp4
│ └── coffee_ad.mp4
├── daytime/ <- Only plays 10am to 5pm
│ └── soap_ad.mp4
├── prime/ <- Only plays 5pm to 11pm
│ └── beer_ad.mp4
├── late/ <- Only plays 11pm to 2am
│ └── late_night_ad.mp4
└── overnight/ <- Only plays 2am to 6am
└── insomnia_ad.mp4
| Name | Hours |
|---|---|
morning |
6am to 10am |
daytime |
10am to 5pm |
prime |
5pm to 11pm |
late |
11pm to 2am |
overnight |
2am to 6am |
You can change these ranges in confs/main_config.json. The change applies across all channels. See Main Config Reference for details.
Day of Week
Name a subfolder after a day of the week and its content only plays on that day. Use all lowercase: monday, tuesday, wednesday, thursday, friday, saturday, sunday.
Combining Folder Hints
Folder hints stack by nesting. A commercial folder might have a morning subfolder, and inside that a December subfolder:
commercial/
└── morning/
└── December/
└── holiday_breakfast_ad.mp4
That ad only plays during December mornings. Here is how a fully hinted channel might look:
FieldStation42/
└── catalog/
└── family_channel/
├── cartoons/
│ ├── regular_toons/
│ ├── October/ <- Halloween specials
│ └── December/ <- Christmas specials
├── sitcoms/
│ ├── family_friendly/
│ └── November 15 - April 10/ <- Winter season content
├── commercial/
│ ├── morning/ <- 6am to 10am only
│ ├── daytime/ <- 10am to 5pm only
│ └── prime/ <- 5pm to 11pm only
└── bump/
├── pre/
└── post/
The regular and seasonal content coexist in the same tag folders. No schedule changes are needed; the scheduler filters automatically based on the current date and time.
Meta Hints
meta_hints lets you express the same availability rules inside your station config instead of in folder names. It is useful when:
- Your folders are already organized by show or type and you don't want to restructure them
- You want all of a channel's rules visible in one place
- You need to apply the same rule to multiple tags without creating matching folders for each
meta_hints is a top-level array inside station_conf:
{
"station_conf": {
"network_name": "Classic TV",
"channel_number": 4,
"content_dir": "catalog/classic",
"meta_hints": [
{ "tags": "holiday/halloween", "date_range": "October 15 - November 1"}
]
}
}
Each entry has a tags field and one or more conditions. Content in those tags is only eligible during the matching window.
Date Range
"meta_hints": [
{ "tags": "holiday/halloween", "date_range": "October 15 - November 1"}
]
The date range format is the same as for folder names. Ranges wrap around the year boundary:
{ "tags": "holiday/winter", "date_range": "December 1 - January 10"}
Time of Day
"meta_hints": [
{ "tags": "bumps/kids", "day_part": "morning"}
]
Day part names match the ones defined in your main config: morning, daytime, prime, late, overnight by default.
Combining Conditions
Specify both date_range and day_part in one entry to require both conditions simultaneously:
"meta_hints": [
{ "tags": "holiday/halloween", "date_range": "October 15 - November 1", "day_part": "late"}
]
Halloween content is only eligible during late-night hours within the October window. Outside that date range, or outside late hours, the tag is ignored.
Multiple Entries
Each entry in the array is evaluated independently. A tag that appears in multiple entries is eligible whenever any of its entries match:
"meta_hints": [
{ "tags": "bumps/kids", "day_part": "morning"},
{ "tags": "bumps/kids", "day_part": "daytime"}
]
Kids bumps are now available during both morning and daytime hours.
Tags as a List
A single entry can apply to multiple tags at once by passing an array:
"meta_hints": [
{ "tags": ["holiday/halloween", "seasons/autumn"], "date_range": "October 15 - November 1"}
]
Both folders enter the eligible pool under the same window. This is equivalent to two separate entries, one per tag.
The exclusive Flag
By default, a matching entry adds its content to the eligible pool alongside anything else that would normally be available. Setting "exclusive": true changes that: when the conditions match, only the hinted content is eligible for that content type. Everything else is excluded for that window.
"meta_hints": [
{ "tags": "bumps/kids", "day_part": "morning", "exclusive": true}
]
During morning hours, the scheduler pulls bumps exclusively from bumps/kids. The general bump pool is set aside until morning ends.
exclusive is most useful for themed blocks. A December holiday bump set with exclusive ensures nothing from the general bump folder surfaces in December. A late-night block with exclusive ensures daytime-style commercials never leak in after hours.
Choosing an Approach
Both approaches restrict eligibility using the same underlying mechanism. The choice comes down to how your content is organized and where you prefer to keep configuration:
| Folder hints | meta_hints |
|
|---|---|---|
| Setup | Rename or organize folders | Edit station config |
| Best for | Content organized by season or time | Content organized by show or type |
| Multiple tags | Each folder gets its own name | One entry can cover several tags |
| Rules visible in config | No | Yes |
| Requires catalog rebuild | Yes, when folders change | Yes, when tags change |
The two approaches can be combined freely. A folder hint handles one set of seasonal content; meta_hints handles another. The scheduler applies both sets of rules at the same time.
Complete Example
A channel that uses folder hints for its commercial library and meta_hints for show content and bumps:
{
"station_conf": {
"network_name": "Classic TV",
"channel_number": 4,
"content_dir": "catalog/classic",
"commercial_dir": "commercial",
"bump_dir": "bump",
"schedule_increment": 30,
"meta_hints": [
{ "tags": "holiday/halloween", "date_range": "October 15 - November 1"},
{ "tags": "holiday/christmas", "date_range": "December 1 - December 26"},
{ "tags": "bumps/morning", "day_part": "morning", "exclusive": true},
{ "tags": "bumps/primetime", "day_part": "prime", "exclusive": true},
{ "tags": ["bumps/kids", "commercial/kids"], "day_part": "morning", "date_range": "September 1 - June 15"}
],
"day_templates": {
"weekday": {
"7": {"tags": "cartoons"},
"12": {"tags": "movies"},
"20": {"tags": "sitcoms"}
}
},
"monday": "weekday",
"tuesday": "weekday",
"wednesday": "weekday",
"thursday": "weekday",
"friday": "weekday",
"saturday": "weekday",
"sunday": "weekday"
}
}
The commercial/ folder uses folder-based time-of-day hints internally:
catalog/classic/
└── commercial/
├── morning/ <- folder hint: 6am to 10am
├── prime/ <- folder hint: 5pm to 11pm
└── general/ <- no hint: available at all times
The meta_hints block then adds holiday show content during its respective windows, time-specific bumps with exclusive so the general bump pool does not bleed in, and school-year kids content during mornings from September through mid-June.