Twitch-VOD-Manager/src
xRangerDE 029b2bd407 feat: auto-record polling — set-and-forget live archival
Building on the manual REC button from 4.6.0: each streamer now also
has an AUTO toggle. When enabled, a background poller in the main
process checks the streamers live status every 90s (configurable
30-1800s via config.auto_record_poll_seconds). On an offline -> live
transition, a live recording is queued automatically without the
user having to be at the keyboard.

Server:
- config.auto_record_streamers: string[] holds the watched logins
  (deduped + normalized via normalizeAutoRecordList). Empty list
  stops the poller entirely so users who don't use the feature pay
  zero CPU.
- runAutoRecordPoll iterates the list, hits getLiveStreamInfo
  (existing helper from 4.6.0 — Helix when authed, public GQL
  otherwise), tracks per-streamer last-known live state in
  autoRecordLastLiveState, and only triggers on the offline->live
  edge. If a live item already exists for that streamer (manual
  REC click + auto-poll racing), the auto-trigger backs off.
- restartAutoRecordPoller is wired into save-config so toggling AUTO
  on/off or changing the interval takes effect without a restart;
  state for de-watched streamers is dropped so re-enabling them
  later doesn't suppress an immediate first-poll trigger.
- Wired into app.whenReady (start) and shutdownCleanup (stop).
- Initial poll fires ~1.5s after restart so a streamer that's
  already live when the user enables AUTO gets picked up
  immediately instead of after a full interval.

Renderer:
- AUTO pill next to REC. Off = grey outline, on = green outline +
  green text + faint green background. Click toggles via saveConfig
  with the updated auto_record_streamers array; toast confirms.
- Per-streamer state survives reload (it's in the config file).

DE + EN locale strings for the toggle title + on/off toasts.

Why this matters: VODs vanish from Twitch within 7-60 days. Manual
REC requires the user to be present when the stream starts. AUTO
closes that gap — the app watches in the background and captures
without supervision.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 20:35:19 +02:00
..
index.html feat: stats-bar pause-on-hidden + bulk-mark downloaded + title tooltip 2026-05-10 20:20:42 +02:00
main.ts feat: auto-record polling — set-and-forget live archival 2026-05-10 20:35:19 +02:00
preload.ts feat: live stream recording — record streamers as they go live 2026-05-10 20:30:08 +02:00
renderer-globals.d.ts feat: auto-record polling — set-and-forget live archival 2026-05-10 20:35:19 +02:00
renderer-locale-de.ts feat: auto-record polling — set-and-forget live archival 2026-05-10 20:35:19 +02:00
renderer-locale-en.ts feat: auto-record polling — set-and-forget live archival 2026-05-10 20:35:19 +02:00
renderer-queue.ts feat: live stream recording — record streamers as they go live 2026-05-10 20:30:08 +02:00
renderer-settings.ts release: 4.5.27 disable-ads + queue context menu + cleanup 2026-05-10 20:11:41 +02:00
renderer-shared.ts fix: persist expanded details across re-renders, guard drag-drop init against duplicates 2026-03-21 15:03:20 +01:00
renderer-streamers.ts feat: auto-record polling — set-and-forget live archival 2026-05-10 20:35:19 +02:00
renderer-texts.ts feat: stats-bar pause-on-hidden + bulk-mark downloaded + title tooltip 2026-05-10 20:20:42 +02:00
renderer-updates.ts feat: skip-version + addStreamer validation + smart-scheduler tooltip 2026-05-10 12:14:13 +02:00
renderer.ts feat: stats-bar pause-on-hidden + bulk-mark downloaded + title tooltip 2026-05-10 20:20:42 +02:00
styles.css feat: auto-record polling — set-and-forget live archival 2026-05-10 20:35:19 +02:00
tools.ts refactor: extract tool discovery functions to src/tools.ts 2026-03-20 10:00:51 +01:00
types.ts feat: live stream recording — record streamers as they go live 2026-05-10 20:30:08 +02:00
update-version-utils.ts chore: migrate repository to Codeberg, bump version to 4.2.0, update update logic 2026-03-01 20:23:21 +01:00