Skip to content

feat(player): add local timeshift buffer for live HLS streams (#359) - #383

Open
Kimlimp wants to merge 3 commits into
bilipp:mainfrom
Kimlimp:feat/live-timeshift
Open

Kimlimp wants to merge 3 commits into
bilipp:mainfrom
Kimlimp:feat/live-timeshift

Conversation

@Kimlimp

@Kimlimp Kimlimp commented Nov 6, 2026

Copy link
Copy Markdown

Summary

Closes #359

Introduces an opt-in, experimental local timeshift buffer for live HLS streams on macOS, allowing users to pause, rewind, and scrub live broadcasts without requiring server-side catchup support.

What this does:

  • Ingests rolling live HLS segments into a managed local cache directory (TimeshiftCache).
  • Serves synthetic playlists to the player via a loopback HTTP server on 127.0.0.1 (TimeshiftServer).
  • Adds a macOS timeshift timeline with -M:SS delay indicator and "Jump to Live" button.
  • Adds user-configurable buffer limits and storage safety caps in Settings > Player.
  • Improves EPG programme duration tracking and scrubber clamping for all platforms.

Type of change

  • feat — new feature

Platforms verified

  • iOS / iPadOS
  • macOS
  • tvOS
  • visionOS

Checklist

  • I opened an issue first (for features / non-trivial changes) and linked it above.
  • My commits follow the Conventional Commits format.
  • Pre-commit hooks pass (SwiftFormat, SwiftLint --strict, String Catalog normalization).
  • The test suite passes (LumeTests + LumeUITests on at least the iOS simulator).
  • New/changed user-facing text is localized in both en and de.
  • I added or updated tests covering my change where it makes sense.
  • My change contains no credentials, stream URLs, or other content.

…#359)

- Add TimeshiftCache and TimeshiftWindow to buffer rolling live HLS segments
- Serve synthetic M3U8 playlists over loopback HTTP with TimeshiftServer
- Introduce TimeshiftPlayerAdapter and timeline controls for live pause/rewind
- Add user-configurable timeshift buffer settings and safety limits
- Support EPG programme duration for catch-up and timeline scrubbing
- Add unit tests for timeshift cache, playlist parsing, and preferences
@Kimlimp
Kimlimp marked this pull request as draft November 6, 2026 01:12
@Kimlimp
Kimlimp marked this pull request as ready for review November 6, 2026 02:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Pause, rewind and fast-forward live TV (timeshift buffer)

1 participant