Getting Started with Schedule Service
Schedule Service is an open-source, modular service that automatically populates schedules for FAST Engine channels. It pulls content metadata and assembles program schedules stored in AWS DynamoDB, which FAST Engine then reads to drive linear channel playout. Available as a managed service in Eyevinn Open Source Cloud.
Prerequisites
- An Eyevinn OSC account (free trial or paid plan)
- An AWS account with DynamoDB access (you will need an IAM user with
dynamodb:*permissions) - A running FAST Channel Engine instance that reads from the same DynamoDB table
Step 1: Create AWS DynamoDB credentials
In your AWS account:
- Create an IAM user with programmatic access
- Attach the
AmazonDynamoDBFullAccessmanaged policy (or a least-privilege policy withdynamodb:GetItem,dynamodb:PutItem,dynamodb:Scan,dynamodb:Query,dynamodb:UpdateItem,dynamodb:DeleteItem) - Note the Access Key ID and Secret Access Key
- Choose or create an AWS Region where your DynamoDB tables will live (e.g.
eu-north-1)
Step 2: Create a Schedule Service instance
Navigate to the Schedule Service in the OSC web console. Click Create schedule-service and fill in:
| Field | Description |
|---|---|
| Name | A unique name for this instance |
| TablePrefix | Prefix applied to all DynamoDB table names (e.g. mychannels) |
| AwsAccessKeyId | IAM Access Key ID |
| AwsSecretAccessKey | IAM Secret Access Key |
| AwsRegion | AWS Region (e.g. eu-north-1, us-east-1) |
Click Create. Once the instance is running, the service exposes a REST API for managing channel schedules.
Step 3: Configure schedules via the API
The Schedule Service exposes a REST API at your instance URL. Use it to add VOD assets to the channel schedule:
SCHEDULE_URL=https://myschedule.eyevinn-schedule-service.auto.prod.osaas.io
# Add a VOD asset to a channel's schedule
curl -X POST "${SCHEDULE_URL}/api/v1/schedules/mychannel" \
-H "Content-Type: application/json" \
-d '{
"title": "Big Buck Bunny",
"start_time": "2026-04-19T10:00:00.000Z",
"end_time": "2026-04-19T10:10:00.000Z",
"duration": 596000,
"asset_url": "https://example.com/vod/bbb.m3u8"
}'
Step 4: Connect to FAST Channel Engine
Point your FAST Engine instance at the Schedule Service API so it reads the populated schedules:
SCHEDULE_URL=https://myschedule.eyevinn-schedule-service.auto.prod.osaas.io
osc create eyevinn-fast-engine myfastchannel \
-o ChannelsConfigUrl="${SCHEDULE_URL}/api/v1/channels" \
-o ScheduleServiceUrl="${SCHEDULE_URL}"
The FAST Engine polls the schedule on each playlist request and stitches VOD content into a continuous linear HLS stream.
CLI usage
osc create eyevinn-schedule-service myschedule \
-o name="myschedule" \
-o tablePrefix="mychannels" \
-o awsAccessKeyId="AKIAIOSFODNN7EXAMPLE" \
-o awsSecretAccessKey="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
-o awsRegion="eu-north-1"