Michael
|
69c23a9c35
|
fix(desktop): fix playlist selection not updating provider and navigation issue
|
2026-03-10 08:26:51 +01:00 |
|
Michael
|
a256ca87b6
|
fix(player): resolve Safari infinite loading by refining play overlay and loading logic
|
2026-03-09 23:05:10 +01:00 |
|
Michael
|
dbb6559640
|
fix(player): restore missing stream variables in player_mobile.html to fix infinite loading
|
2026-03-09 22:56:27 +01:00 |
|
Michael
|
3ef4884336
|
feat(player): remove non-functional fullscreen button as requested
|
2026-03-09 22:52:05 +01:00 |
|
Michael
|
0ae4946816
|
feat(player): standardize Safari compatibility fixes across all player versions
|
2026-03-09 22:43:51 +01:00 |
|
Michael
|
105496d243
|
feat(player): improve Safari/iOS compatibility with manual play overlay and robust loading
|
2026-03-09 22:40:58 +01:00 |
|
Michael
|
7a338db981
|
fix(player): remove duplicate declarations causing build failure
|
2026-03-09 22:34:26 +01:00 |
|
Michael
|
19a0755e01
|
feat(mobile): dedicated mobile player and responsive UI improvements
|
2026-03-09 22:14:33 +01:00 |
|
Michael
|
29a0d04b21
|
fix(mobile): apply responsive LayoutBuilder to player bottom bar
|
2026-03-09 22:01:57 +01:00 |
|
Michael
|
b69e9d1812
|
fix(mobile): optimize player UI for mobile portrait and tune HLS buffering
|
2026-03-09 21:56:56 +01:00 |
|
Michael
|
441597354e
|
fix(mobile): fix orientation reset with IndexedStack, support HLS in Lite player, and optimize fullscreen
|
2026-03-09 21:35:00 +01:00 |
|
Michael
|
39f4205d68
|
fix(mobile): fix XtreamService cache/URL logic and add tab error handling
|
2026-03-09 18:18:20 +01:00 |
|
Michael
|
e4f8ebcf8f
|
fix(mobile): stabilize router and add loading timeout/retry on playlists screen
|
2026-03-09 17:35:09 +01:00 |
|
Michael
|
180b57e1b7
|
fix(router): add missing import for MobileLoginScreen
|
2026-03-09 17:09:07 +01:00 |
|
Michael
|
13647a35da
|
feat: Implement TV recording management with API endpoints, a data model, and a scheduling service that uses FFmpeg to record streams.
|
2026-03-09 16:46:45 +01:00 |
|
Michael
|
33c6385d7e
|
feat: introduce mobile player screen and lite player view with channel zapping functionality
|
2026-03-09 14:52:41 +01:00 |
|
Michael
|
4d1e08148b
|
feat: implement mobile live TV tab with channel browsing, search, and a dedicated player screen supporting channel zapping.
|
2026-03-09 14:32:41 +01:00 |
|
Michael
|
12b799a7fd
|
feat: introduce LitePlayerView for video playback with custom zapping controls and mobile fullscreen support.
|
2026-03-09 14:18:51 +01:00 |
|
Michael
|
c57273be2c
|
feat: Implement GPU-accelerated live HLS streaming with FFmpeg, including iOS optimizations and IPTV redirect resolution.
|
2026-03-09 14:10:13 +01:00 |
|
Michael
|
d0a2a1ee6a
|
feat: Implement Xtream proxy handler with SSRF protection and M3U8 URL rewriting, resolving 502 proxy errors.
|
2026-03-09 14:00:28 +01:00 |
|
Michael
|
c9a212ec4f
|
feat: implement live HLS streaming with FFmpeg transcoding, GPU acceleration, and HLS segment serving.
|
2026-03-09 13:52:46 +01:00 |
|
Michael
|
0b5aa3f9e4
|
feat: Implement initial streaming handler for live and VOD content using FFmpeg HLS transcoding with GPU acceleration support.
|
2026-03-09 13:46:56 +01:00 |
|
Michael
|
bd7645922d
|
feat: add Xtream API proxy with SSRF protection and streaming handler with FFmpeg integration.
|
2026-03-09 13:41:56 +01:00 |
|
Michael
|
7eb483fc07
|
feat: introduce IPTV settings management with a dedicated mobile tab, providers, and service.
|
2026-03-09 13:31:01 +01:00 |
|
Michael
|
7ea12511a0
|
feat: implement mobile series tab with pagination, search, and filtering for IPTV series.
|
2026-03-09 13:20:00 +01:00 |
|
Michael
|
829c5751ca
|
feat: implement initial mobile IPTV feature with player screen, live TV, movies, and series tabs, along with the Xtream API service.
|
2026-03-09 13:16:29 +01:00 |
|
Michael
|
b1f887af69
|
feat: Implement EPG API with caching and Xtream get_epg to get_short_epg fallback for program data.
|
2026-03-09 11:36:40 +01:00 |
|
Michael
|
3232a3a226
|
feat: introduce EPG API with caching and TV & Recordings UI with EPG Guide, Recordings, and Season Passes tabs.
|
2026-03-09 10:47:30 +01:00 |
|
Michael
|
fa88746db6
|
feat: introduce IPTV data models and initial Live TV UI, including EPG overlay.
|
2026-03-09 10:12:55 +01:00 |
|
Michael
|
37945b513e
|
fix(epg): use /api/epg/ backend for full guide (48h), fix _ProgrammeCard for Map format, remove stale EpgEntry code
|
2026-03-09 09:07:04 +01:00 |
|
Michael
|
1e1687e160
|
fix(epg): complete rewrite of recordings_tab (XtreamService direct), fix epg_api action (get_epg), add keepAlive
|
2026-03-09 08:54:45 +01:00 |
|
Michael
|
104159e8da
|
fix(epg): pass playlist as parameter to RecordingsTab/_EpgGuideView — was null from selectedPlaylistProvider
|
2026-03-09 08:44:44 +01:00 |
|
Michael
|
1c38b62516
|
fix: remove literal newline in Dart string causing build_runner syntax error
|
2026-03-09 08:40:22 +01:00 |
|
Michael
|
3e0088ecf8
|
fix(epg): load filtered channels from playlist provider instead of manual channel ID input
|
2026-03-09 08:36:41 +01:00 |
|
Michael
|
47fff742e0
|
fix(epg): use playlist.dns directly (PlaylistConfig has no serverUrl field)
|
2026-03-09 08:26:16 +01:00 |
|
Michael
|
50a6998c09
|
feat: add EPG TV guide, season passes (auto-recording) and unified recordings/EPG tab with 3 sub-tabs
|
2026-03-09 08:21:48 +01:00 |
|
Michael
|
4762b4edf8
|
feat(recordings): switch output format from mp4 to mkv for better IPTV stream compatibility
|
2026-03-08 23:56:43 +01:00 |
|
Michael
|
bbf462ae05
|
fix(recordings): DELETE now kills FFmpeg process before removing from DB to properly stop active recordings
|
2026-03-08 23:54:37 +01:00 |
|
Michael
|
4c2e3ce600
|
feat: add stop recording button and POST /api/recordings/stop/<id> endpoint to kill FFmpeg process
|
2026-03-08 23:53:32 +01:00 |
|
Michael
|
0d2ad322fe
|
fix(entrypoint): add chmod 777 on /app/recordings for Unraid nobody:users shares + update default recordings path
|
2026-03-08 23:46:11 +01:00 |
|
Michael
|
424019d01a
|
fix(scheduler): wrap _startRecording in single try/catch to prevent server crash, fix localhost port 8080→8089
|
2026-03-08 23:38:57 +01:00 |
|
Michael
|
93cecfc6d3
|
fix(docker): move CACHEBUST ARG before COPY to properly invalidate Flutter web build cache
|
2026-03-08 23:28:16 +01:00 |
|
Michael
|
9107eadc73
|
fix(recordings): send start_time and end_time in UTC to avoid +1h timezone offset with Docker server
|
2026-03-08 23:19:20 +01:00 |
|
Michael
|
c04acc2fab
|
debug(scheduler): add verbose logging every 10s and force UTC datetime comparisons
|
2026-03-08 23:11:22 +01:00 |
|
Michael
|
60bb10fe4d
|
fix(recordings): correct stream_url to use real live stream, resolve to absolute URL for FFmpeg, use copy mode, speed up scheduler to 10s
|
2026-03-08 22:43:42 +01:00 |
|
Michael
|
7e0837374e
|
refactor(recordings): eliminate Router/mount, expose direct handler methods to avoid shelf_router path collision
|
2026-03-08 22:10:59 +01:00 |
|
Michael
|
d91be43f27
|
fix(backend): move GET /recordings/logs/<id> to main router to avoid shelf_router collision with DELETE /<id>
|
2026-03-08 21:42:53 +01:00 |
|
Michael
|
989303db77
|
fix(ui): gracefully handle json parse error when showLogs receives 404 text string
|
2026-03-08 21:36:21 +01:00 |
|
Michael
|
9d670c0625
|
fix(ui): handle 404 router errors gracefully instead of crashing on json parse
|
2026-03-08 21:30:55 +01:00 |
|
Michael
|
238cb8f407
|
feat(recording): add immediate record button to recording modal
|
2026-03-08 21:28:47 +01:00 |
|