Stream Music Schedule

Replace music schedule

PUT
https://api.tunio.ai/v1/stream-music-schedule/{stream_id}

Replaces every music slot of the stream with the given set, atomically. Every playlist and jingle bundle must belong to the caller's library, and no two slots of the set may overlap on the same day (the rule of the single-slot endpoint, applied to the whole set). With dry_run=true nothing is written: the response says whether the set is valid, lists the conflicts and the diff against the current schedule. With dry_run=false a conflicting set is refused with 409 and nothing is written. A valid set is applied after the stream's current schedule (music and content) is saved as a private schedule profile, returned as snapshot_profile_id; apply it with POST /v1/schedule-profiles/{profile_id}/apply to roll back. The last 20 automatic snapshots per stream are kept. Slots that do not change keep their slot_id.

路径参数

名称类型说明
stream_idRequiredstringStream ID

请求体

Complete new schedule

名称类型说明
dry_runboolean
DryRun validates and reports the diff without writing anything.
slotsarray
Slots is the complete new schedule; an empty array clears it.
[item]Requiredobject
-
请求示例
01{
02 "dry_run": true,
03 "slots": [
04 {
05 "day_of_week": 1,
06 "duration_min": 180,
07 "end_time": "12:00",
08 "jingle_playlist_id": "string",
09 "jingles_tracks_interval": 2,
10 "let_static_finish": false,
11 "playlist_id": "6f1d1d4c-8c47-4b9f-a1f4-7c1f0b2f9a11",
12 "start_at": "2026-10-12T09:00:00+03:00",
13 "start_time": "09:00",
14 "transition": "string",
15 "volume": 1
16 }
17 ]
18}

响应

名称类型说明
conflictsarray
Conflicts lists every overlapping pair of requested slots.
[item]Requiredobject
-
diffobject
Diff compares the request with the current schedule.
addedarray
Added lists the slots that are not in the current schedule.
removedarray
Removed lists the current slots that the request does not keep.
unchanged_countinteger
UnchangedCount is how many current slots stay as they are (and keep their slot_id).
dry_runboolean
DryRun echoes the request.
messagestring
Message is schedule_conflict on a 409.
snapshot_profile_idstring
SnapshotProfileID is the private schedule profile holding the stream's schedule (music and content) as it was before this write; apply it with POST /v1/schedule-profiles/{profile_id}/apply to roll back. Null on dry runs.
successboolean
-
validboolean
Valid is false when slots of the request overlap each other.
名称类型说明
messagestring
Message contains human readable error details.
successboolean
Success is always false for error payloads.
名称类型说明
messagestring
Message contains human readable error details.
successboolean
Success is always false for error payloads.
名称类型说明
messagestring
Message contains human readable error details.
successboolean
Success is always false for error payloads.
名称类型说明
messagestring
Message contains human readable error details.
successboolean
Success is always false for error payloads.
名称类型说明
conflictsarray
Conflicts lists every overlapping pair of requested slots.
[item]Requiredobject
-
diffobject
Diff compares the request with the current schedule.
addedarray
Added lists the slots that are not in the current schedule.
removedarray
Removed lists the current slots that the request does not keep.
unchanged_countinteger
UnchangedCount is how many current slots stay as they are (and keep their slot_id).
dry_runboolean
DryRun echoes the request.
messagestring
Message is schedule_conflict on a 409.
snapshot_profile_idstring
SnapshotProfileID is the private schedule profile holding the stream's schedule (music and content) as it was before this write; apply it with POST /v1/schedule-profiles/{profile_id}/apply to roll back. Null on dry runs.
successboolean
-
validboolean
Valid is false when slots of the request overlap each other.
名称类型说明
messagestring
Message contains human readable error details.
successboolean
Success is always false for error payloads.