You're offline — showing cached data

Home Radio Live — hourly bucket swap on rolling playlist

home-radio-live
2026-06-13 06:15:46 SAST
← Back to Tasks

OVERRIDES runtime profile: uses Spotify Web API directly, does not invoke the claude CLI.

Hourly at HH:01 SAST. Rebuilds the contents of the single public Spotify playlist "Home Radio - Live" (owned by econ, made public so HEOS conrelma can play it without playlist-modify scope) with the tracks from whichever day-part bucket is active right now.

Bucket selection (SAST hour → bucket): | 00–05 | late | | 05–11 | morning | | 11–14 | midday | | 14–18 | afternoon | | 18–22 | evening | | 22–24 | night |

Day group = weekday/sat/sun by current SAST date.

Spotify Connect tolerates content swaps mid-playback: the currently-playing track finishes, the rebuilt lookahead queue takes over within ~30s. Speaker keeps playing through bucket boundaries without a stop/restart, like a real radio station rotation.

Operator log entries written under live.<day_group>.<day_part> for visibility into freshness across rebuilds.

Phase 3 of the Home Radio project. The HA automation home_radio_live_morning_kick (in /config/automations.yaml) starts playback of "Home Radio - Live" on Kitchen Heos every morning; from there the hourly content swap handles the rest.

Playback guard: hourly refresh may update playlist contents at any hour, but it must not auto-replay Kitchen/House during quiet hours (21:00-04:59 SAST) or while HA input_boolean.presence is off. This prevents the scheduler from restarting music after the 20:00/no-presence night-off automation intentionally stopped it.

Every hour at :011 * * * *
Yes
shell
300s
No
in 45m (2026-06-13 07:01)

Task Definition

tasks/home-radio-live.md
shell
set
No
No
cd /home/lucienne/workspace/projects/home-radio && python3 live_playlist.py refresh 2>&1 | tail -20

Edit Schedule

Result:
175
Runs (7d)
175
Completed
0
Failed
0
Timeout
100%
Success (7d)
57s
Avg Duration
home-radio spotify live hourly

Run History (50)

StartedFinishedStatusDurationOutputLog
15m ago 13m ago completed 1.4m
[live] active bucket: sat.morning [live] 870 candidates [live] recently-played cache: 27 URIs [live] wrote 80 (+80 -80 = ...
View log
1h ago 1h ago completed 1.4m
[live] active bucket: sat.morning [live] 870 candidates [live] recently-played cache: 42 URIs [live] wrote 80 (+80 -80 = ...
View log
2h ago 2h ago completed 37s
[live] active bucket: sat.late [live] 619 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -80 =0) ...
View log
3h ago 3h ago completed 38s
[live] active bucket: sat.late [live] 619 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -80 =0) ...
View log
4h ago 4h ago completed 38s
[live] active bucket: sat.late [live] 619 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -80 =0) ...
View log
5h ago 5h ago completed 36s
[live] active bucket: sat.late [live] 618 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -80 =0) ...
View log
6h ago 6h ago completed 37s
[live] active bucket: sat.late [live] 618 candidates [live] recently-played cache: 51 URIs [live] wrote 80 (+80 -80 =0) ...
View log
7h ago 7h ago completed 42s
[live] active bucket: weekday.night [live] 1851 candidates [live] recently-played cache: 51 URIs [live] wrote 80 (+80 -8 ...
View log
8h ago 8h ago completed 43s
[live] active bucket: weekday.night [live] 1851 candidates [live] recently-played cache: 51 URIs [live] wrote 80 (+80 -8 ...
View log
9h ago 9h ago completed 1.3m
[live] active bucket: weekday.evening [live] 2444 candidates [live] recently-played cache: 51 URIs [live] wrote 80 (+80 ...
View log
10h ago 10h ago completed 1.2m
[live] active bucket: weekday.evening [live] 2444 candidates [live] recently-played cache: 51 URIs [live] wrote 80 (+80 ...
View log
11h ago 11h ago completed 1.2m
[live] active bucket: weekday.evening [live] 2444 candidates [live] recently-played cache: 51 URIs [live] wrote 80 (+80 ...
View log
12h ago 12h ago completed 1.3m
[live] active bucket: weekday.evening [live] 2444 candidates [live] recently-played cache: 51 URIs [live] wrote 80 (+80 ...
View log
13h ago 13h ago completed 1.3m
[live] active bucket: weekday.afternoon [live] 1362 candidates [live] recently-played cache: 51 URIs [live] wrote 80 (+8 ...
View log
14h ago 14h ago completed 1.3m
[live] active bucket: weekday.afternoon [live] 1362 candidates [live] recently-played cache: 51 URIs [live] wrote 80 (+8 ...
View log
15h ago 15h ago completed 1.3m
[live] active bucket: weekday.afternoon [live] 1362 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+8 ...
View log
16h ago 16h ago completed 1.3m
[live] active bucket: weekday.afternoon [live] 1362 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+8 ...
View log
17h ago 17h ago completed 39s
[live] active bucket: weekday.midday [live] 896 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -8 ...
View log
18h ago 18h ago completed 38s
[live] active bucket: weekday.midday [live] 896 candidates [live] recently-played cache: 47 URIs [live] wrote 80 (+80 -8 ...
View log
19h ago 19h ago completed 39s
[live] active bucket: weekday.midday [live] 896 candidates [live] recently-played cache: 31 URIs [live] wrote 80 (+80 -8 ...
View log
20h ago 20h ago completed 1.4m
[live] active bucket: weekday.morning [live] 869 candidates [live] recently-played cache: 16 URIs [live] wrote 80 (+80 - ...
View log
21h ago 21h ago completed 1.4m
[live] active bucket: weekday.morning [live] 869 candidates [live] recently-played cache: 0 URIs [live] wrote 80 (+80 -8 ...
View log
22h ago 22h ago completed 1.4m
[live] active bucket: weekday.morning [live] 869 candidates [live] recently-played cache: 1 URIs [live] wrote 80 (+80 -8 ...
View log
23h ago 23h ago completed 1.4m
[live] active bucket: weekday.morning [live] 869 candidates [live] recently-played cache: 14 URIs [live] wrote 80 (+80 - ...
View log
1d ago 1d ago completed 1.3m
[live] active bucket: weekday.morning [live] 869 candidates [live] recently-played cache: 28 URIs [live] wrote 80 (+80 - ...
View log
1d ago 1d ago completed 1.4m
[live] active bucket: weekday.morning [live] 869 candidates [live] recently-played cache: 41 URIs [live] wrote 80 (+80 - ...
View log
1d ago 1d ago completed 1.2m
[live] active bucket: weekday.late [live] 1974 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -80 ...
View log
1d ago 1d ago completed 1.2m
[live] active bucket: weekday.late [live] 1974 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -80 ...
View log
1d ago 1d ago completed 1.2m
[live] active bucket: weekday.late [live] 1974 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -80 ...
View log
1d ago 1d ago completed 1.2m
[live] active bucket: weekday.late [live] 1969 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -80 ...
View log
1d ago 1d ago completed 1.2m
[live] active bucket: weekday.late [live] 1969 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -80 ...
View log
1d ago 1d ago completed 41s
[live] active bucket: weekday.night [live] 1841 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -8 ...
View log
1d ago 1d ago completed 41s
[live] active bucket: weekday.night [live] 1841 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -8 ...
View log
1d ago 1d ago completed 1.4m
[live] active bucket: weekday.evening [live] 2429 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 ...
View log
1d ago 1d ago completed 1.2m
[live] active bucket: weekday.evening [live] 2429 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 ...
View log
1d ago 1d ago completed 1.2m
[live] active bucket: weekday.evening [live] 2429 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 ...
View log
2d ago 2d ago completed 1.2m
[live] active bucket: weekday.evening [live] 2429 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 ...
View log
2d ago 2d ago completed 1.3m
[live] active bucket: weekday.afternoon [live] 1357 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+8 ...
View log
2d ago 2d ago completed 1.3m
[live] active bucket: weekday.afternoon [live] 1357 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+8 ...
View log
2d ago 2d ago completed 1.2m
[live] active bucket: weekday.afternoon [live] 1357 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+8 ...
View log
2d ago 2d ago completed 1.3m
[live] active bucket: weekday.afternoon [live] 1357 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+8 ...
View log
2d ago 2d ago completed 36s
[live] active bucket: weekday.midday [live] 893 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -8 ...
View log
2d ago 2d ago completed 36s
[live] active bucket: weekday.midday [live] 893 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -8 ...
View log
2d ago 2d ago completed 39s
[live] active bucket: weekday.midday [live] 893 candidates [live] recently-played cache: 50 URIs [live] wrote 80 (+80 -8 ...
View log
2d ago 2d ago completed 1.3m
[live] active bucket: weekday.morning [live] 866 candidates [live] recently-played cache: 48 URIs [live] wrote 80 (+80 - ...
View log
2d ago 2d ago completed 1.3m
[live] active bucket: weekday.morning [live] 866 candidates [live] recently-played cache: 32 URIs [live] wrote 80 (+80 - ...
View log
2d ago 2d ago completed 1.3m
[live] active bucket: weekday.morning [live] 866 candidates [live] recently-played cache: 19 URIs [live] wrote 80 (+80 - ...
View log
2d ago 2d ago completed 1.3m
[live] active bucket: weekday.morning [live] 866 candidates [live] recently-played cache: 17 URIs [live] wrote 80 (+80 - ...
View log
2d ago 2d ago completed 1.3m
[live] active bucket: weekday.morning [live] 866 candidates [live] recently-played cache: 31 URIs [live] wrote 80 (+80 - ...
View log
2d ago 2d ago completed 1.3m
[live] active bucket: weekday.morning [live] 866 candidates [live] recently-played cache: 43 URIs [live] wrote 80 (+80 - ...
View log

Comments (0)

No comments yet — add instructions for Luci
Help