SqueezeEventConfig
Summary
SqueezeEventConfig defines event-specific squeezeback configuration for individual live streaming events. It inherits defaults from the associated SqueezeBrandConfig - if a parameter is not set (0 or empty), it automatically inherits the value from the brand configuration.
Use Cases
- Configure squeezeback for specific live events
- Override brand defaults for special events
- Define source URIs and DRM settings per event
- Schedule events with specific start times
- Control event lifecycle (SCHEDULED → ACTIVE → COMPLETED)
Model Definition
Includes all fields from SqueezeBrandConfig plus:
| Field | Type | Description |
|---|---|---|
id | integer | Unique event identifier (auto-generated) |
brand_config_id | integer | Reference to parent brand config (foreign key) |
event_name | string | Human-readable event name |
description | string | Event description |
asset_id | string | Unique asset identifier for streaming (used in URL) |
event_stream_url | string | Generated streaming URL (computed, not persisted) |
scheduled_start_time | timestamp | ISO 8601 formatted event start time with timezone |
source_uri | string | HLS source manifest URL |
source_dash_uri | string | DASH source manifest URL |
banner_sources | string | Event-specific banner sources (overrides brand) |
ad_tag_override | jsonb | JSON object for ad tag configuration overrides |
windows_segs | integer | Number of segments in sliding window |
manifest_polling | integer | Manifest polling interval (inherits from brand if 0) |
max_concurrents | integer | Max concurrent streams (inherits from brand if 0) |
drm_key_jwt | string | JWT token for DRM key retrieval |
event_state | string | Event lifecycle state (SCHEDULED, ACTIVE, COMPLETED, CANCELLED) |
Inherited Squeeze Parameters
All squeeze box parameters from SqueezeBrandConfig:
content_sqz_box_ratio,ad_sqz_box_ratiocontent_box_vertical_pos,content_box_horizontal_posad_box_vertical_pos,ad_box_horizontal_posin_animation_dur,out_animation_durcontent_frame,ad_framecontent_frame_thickness,ad_frame_thicknesscontent_frame_color,ad_frame_color
Inheritance Behavior: If any squeeze parameter is set to 0 (for numbers) or empty (for strings), the corresponding value from SqueezeBrandConfig is used instead.
REST Operations
GET /api/v1/squeeze-event-config?asset_id={assetId}
Return event configuration by asset ID. Includes computed event_stream_url.
Query Parameters:
asset_id(query, required): Asset identifier
Response: 200 OK
{
"id": 42,
"brand_config_id": 1,
"event_name": "Super Bowl LVII",
"description": "Championship game with squeezeback ads",
"asset_id": "superbowl-2025",
"event_stream_url": "https://bakery.vtg.paramount.tech/squeezeback/superbowl-2025/master.m3u8",
"scheduled_start_time": "2025-02-09T18:30:00Z",
"source_uri": "https://origin.example.com/superbowl/master.m3u8",
"source_dash_uri": "https://origin.example.com/superbowl/manifest.mpd",
"drm_key_jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"event_state": "ACTIVE",
"content_sqz_box_ratio": 0.65,
"ad_sqz_box_ratio": 0.5,
"max_concurrents": 500,
"ad_tag_override": {
"network_id": "520311",
"profile": "GoogleDAISSAI_v01"
}
}
GET /api/v1/squeeze-event-config?event_id={eventId}
Return event configuration by numeric event ID.
Query Parameters:
event_id(query, required): Event identifier
Response: 200 OK (same structure as above)
POST /api/v1/squeeze-event-config
Create new event configuration. Brand inheritance is applied automatically for unset values.
Request Body:
{
"brand_config_id": 1,
"event_name": "Super Bowl LVII",
"description": "Championship game with squeezeback ads",
"asset_id": "superbowl-2025",
"scheduled_start_time": "2025-02-09T18:30:00Z",
"source_uri": "https://origin.example.com/superbowl/master.m3u8",
"source_dash_uri": "https://origin.example.com/superbowl/manifest.mpd",
"event_state": "SCHEDULED",
"content_sqz_box_ratio": 0.65,
"max_concurrents": 500
}
Note: Fields not specified (like ad_sqz_box_ratio, positions, animations) will inherit from the brand config.
Response: 201 Created with created event config including event_stream_url
PUT /api/v1/squeeze-event-config/{eventId}
Update existing event configuration.
Parameters:
eventId(path, required): Event identifier
Request Body: Same as POST (all fields optional for update)
Response: 200 OK with updated event config
DELETE /api/v1/squeeze-event-config/{eventId}
Delete event configuration.
Parameters:
eventId(path, required): Event identifier
Response: 204 No Content
Event States
| State | Description |
|---|---|
SCHEDULED | Event configured but not yet started |
ACTIVE | Event currently running and accepting streams |
COMPLETED | Event finished successfully |
CANCELLED | Event cancelled before or during execution |
Streaming URL
The event_stream_url field is computed dynamically based on the request context:
{scheme}://{host}/squeezeback/{asset_id}/master.m3u8
Example:
- Development:
http://localhost:8083/squeezeback/my-event/master.m3u8 - Production:
https://bakery.vtg.paramount.tech/squeezeback/my-event/master.m3u8
This URL is not persisted in the database and is generated on each GET request.
Inheritance Example
Brand Config:
{
"brand_id": 1,
"content_sqz_box_ratio": 0.6,
"ad_sqz_box_ratio": 0.5,
"content_frame": true,
"content_frame_color": "blue@0.9"
}
Event Config (as stored):
{
"id": 10,
"brand_config_id": 1,
"content_sqz_box_ratio": 0.7,
"ad_sqz_box_ratio": 0,
"content_frame": false,
"content_frame_color": ""
}
Effective Event Config (after inheritance):
{
"id": 10,
"brand_config_id": 1,
"content_sqz_box_ratio": 0.7, // Event override
"ad_sqz_box_ratio": 0.5, // Inherited from brand
"content_frame": false, // Event override
"content_frame_color": "blue@0.9" // Inherited from brand
}
Notes
asset_idmust be unique across all eventsevent_stream_urlis read-only (computed field)- Setting squeeze parameters to 0 triggers brand inheritance
- DRM JWT tokens should be generated per-event for security
- Update
event_stateto control event lifecycle ad_tag_overrideallows per-event ad targeting customization