feat: auto-vod-download — per-streamer VOD toggle + background poller
Adds the second half of the live-archive flow. AUTO catches a stream as it happens; VOD catches the recently published archive. Both together close the gap a Twitch viewer-side archivist cares about. Streamer list grows a third per-streamer toggle (blue "VOD") next to AUTO and REC. When enabled, the main-process auto-VOD poller periodically scans that streamer's VOD list and queues anything that is (a) within the rolling age window, (b) not already in downloaded_vod_ids, and (c) not already in the active queue. The age window keeps freshly-enabled streamers from suddenly dumping their entire historical backlog into the queue — when a user flips VOD on, only VODs published in the last N hours (default 24, capped at 720) get auto-pulled. Polling cadence is in minutes, not seconds — VOD-listing scans are heavier than live-status checks and new VODs only appear after a stream ends, so minute-level lag is fine. Default 15 min, clamped [5, 360]. Independent timer from the auto-record poller because their cadences shouldn't be coupled. UI: - Streamer item: blue "VOD" pill next to AUTO/REC, identical interaction. - Settings card "Auto-VOD download": poll interval + max age fields. - Discord card: optional "Notify when a VOD gets auto-queued" checkbox. Wires through save-config so toggling triggers restartAutoVodPoller without a full app restart, and through shutdownCleanup so the timer is killed on quit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
2f1e5f4a9e
commit
1ab6f01e07
@@ -686,6 +686,21 @@
|
||||
<input type="checkbox" id="discordNotifyVodCompleteToggle">
|
||||
<span id="discordNotifyVodCompleteLabel">Bei abgeschlossenem VOD-Download benachrichtigen</span>
|
||||
</label>
|
||||
<label style="display:flex; align-items:center; gap:8px; margin-top: 8px;">
|
||||
<input type="checkbox" id="discordNotifyVodAutoQueuedToggle">
|
||||
<span id="discordNotifyVodAutoQueuedLabel">Bei automatisch eingereihten VODs benachrichtigen</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="settings-card">
|
||||
<h3 id="autoVodCardTitle">Auto-VOD-Download</h3>
|
||||
<p id="autoVodCardIntro" style="color: var(--text-secondary); font-size:13px; margin-bottom:12px; line-height:1.5;">Streamer mit aktiviertem VOD-Toggle werden in dem hier festgelegten Intervall auf neue Twitch-VODs geprueft. Neue VODs innerhalb des Alters-Fensters werden automatisch zur Download-Queue hinzugefuegt.</p>
|
||||
<div class="form-row" style="margin-bottom: 10px; align-items: center;">
|
||||
<span id="autoVodPollMinutesLabel" style="font-size:12px; color:var(--text-secondary);">Poll-Intervall (Minuten)</span>
|
||||
<input type="number" id="autoVodPollMinutes" min="5" max="360" value="15" style="width:90px;">
|
||||
<span id="autoVodMaxAgeHoursLabel" style="font-size:12px; color:var(--text-secondary); margin-left:12px;">Max. Alter (Stunden)</span>
|
||||
<input type="number" id="autoVodMaxAgeHours" min="1" max="720" value="24" style="width:90px;">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user