Kevin Napoli
1ef5a9ca13
Fix: Continue GET request if HEAD fails with the peer closing the connection without returning a response
2025-12-26 15:27:51 +01:00
SergeantPanda
31b9868bfd
Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into pr/sethwv/757
2025-12-24 16:04:04 -06:00
SergeantPanda
daa919c764
Refactor logging messages in StreamManager for clarity and consistency. Also removed redundant parsing.
2025-12-23 15:52:56 -06:00
SergeantPanda
ff7298a93e
Enhance StreamManager for efficient log parsing and update VLC stream profile naming
2025-12-23 15:07:25 -06:00
SergeantPanda
904500906c
Bug Fix: Update stream validation to return original URL instead of redirected URL when using redirect profile.
2025-12-23 09:51:02 -06:00
Seth Van Niekerk
aa5db6c3f4
Squash: Log Parsing Refactor & Enhancing
2025-12-22 15:14:46 -05:00
SergeantPanda
de31826137
refactor: externalize Redis and Celery configuration via environment variables
...
Replace hardcoded localhost:6379 values throughout codebase with environment-based configuration. Add REDIS_PORT support and allow REDIS_URL override for external Redis services. Configure Celery broker/result backend to use Redis settings with environment variable overrides.
Closes #762
2025-12-18 16:54:59 -06:00
SergeantPanda
2558ea0b0b
Enhancement: Add VOD client stop functionality to Stats page
2025-12-17 16:54:10 -06:00
Seth Van Niekerk
bc72b2d4a3
Add VLC and streamlink codec parsing support
2025-12-15 20:09:54 -05:00
Seth Van Niekerk
88c10e85c3
Add VLC TS demux output detection for codec parsing
2025-12-15 20:09:54 -05:00
SergeantPanda
13ad62d3e1
Bug Fix: Fix bug where previewing a stream would always select the default m3u profile regardless of utilization.
2025-11-25 13:07:49 -06:00
SergeantPanda
89a23164ff
Enhancement: Add system event logging and viewer with M3U/EPG endpoint caching
...
System Event Logging:
- Add SystemEvent model with 15 event types tracking channel operations, client connections, M3U/EPG activities, and buffering events
- Log detailed metrics for M3U/EPG refresh operations (streams/programs created/updated/deleted)
- Track M3U/EPG downloads with client information (IP address, user agent, profile, channel count)
- Record channel lifecycle events (start, stop, reconnect) with stream and client details
- Monitor client connections/disconnections and buffering events with stream metadata
Event Viewer UI:
- Add SystemEvents component with real-time updates via WebSocket
- Implement pagination, filtering by event type, and configurable auto-refresh
- Display events with color-coded badges and type-specific icons
- Integrate event viewer into Stats page with modal display
- Add event management settings (retention period, refresh rate)
M3U/EPG Endpoint Optimizations:
- Implement content caching with 5-minute TTL to reduce duplicate processing
- Add client-based event deduplication (2-second window) using IP and user agent hashing
- Support HEAD requests for efficient preflight checks
- Cache streamed EPG responses while maintaining streaming behavior for first request
2025-11-20 17:41:06 -06:00
SergeantPanda
b6c3234e96
Enhancement: Improve zombie channel handling in ProxyServer by checking client connections and cleaning up orphaned metadata, ensuring better resource management and stability.
2025-11-18 10:02:35 -06:00
SergeantPanda
6bd5958c3c
Enhancement: Improve channel shutdown logic in ProxyServer to handle connection timeouts and grace periods more effectively, ensuring proper channel management based on client connections.
2025-11-15 14:22:26 -06:00
SergeantPanda
2514528337
Enhancement: Update channel state handling in ProxyServer and views to include 'STOPPING' state, ensuring proper cleanup and preventing reinitialization during shutdown.
2025-11-14 19:57:59 -06:00
SergeantPanda
6e79b37a66
When stream_type is UDP do not add user_agent to FFmpeg command.
2025-11-13 14:04:46 -06:00
SergeantPanda
4720e045a3
Implement manual redirect for non-HTTP protocols (RTSP/RTP/UDP) in stream URL handling
2025-11-12 17:31:27 -06:00
SergeantPanda
a3c16d48ec
Skip HTTP validation for non-HTTP protocols (UDP/RTP/RTSP) in stream URL validation
2025-11-12 16:17:06 -06:00
SergeantPanda
b9e819e343
Enhancement: Adds support for UDP streams. Closes #617
2025-11-11 18:30:59 -06:00
SergeantPanda
a7f449f746
Merge pull request #565 from ragchuck:enable-rtsp
...
feat: added support for rtsp
2025-11-11 17:29:03 -06:00
SergeantPanda
b608af1d51
Auto detect RTSP streams when proxy profile is selected and force FFmpeg.
2025-11-11 17:26:56 -06:00
SergeantPanda
6715bc7c5c
Enhancement: Update TTL settings for client records and implement periodic refresh during active streaming
2025-10-31 11:53:16 -05:00
SergeantPanda
0d987aae99
Enhancement: If a stream profile is set for a custom stream, when previewing the stream Dispatcharr will now use the assigned stream profile. Fixes #186
2025-10-18 16:24:47 -05:00
SergeantPanda
ec21e8329d
Enhancement: Increase time for a client to search for an available connection from 1.5 seconds to 3 seconds. This will help when clients are changing channels and release the old connection AFTER attempting to start the new connection. Closes #503
...
Bug Fix: Fix a bug where searching for an available stream could clear out stream locks for streams that it never acquired a lock for.
2025-10-16 17:38:23 -05:00
SergeantPanda
9b2ebf169b
Better database connection cleanup.
2025-10-16 14:22:19 -05:00
SergeantPanda
4df2f79bcf
Bug fix: Fixes bug where if there were no channel profiles other than ALL, streamer and standard accounts could not stream any channels even if they had ALL profiles selected.
2025-10-14 15:03:42 -05:00
SergeantPanda
ed065f718d
Enhancement: Implement caching for proxy settings to improve performance and reduce database load. Also, ensure database connections are closed after use in both config and stream manager.
2025-10-14 13:44:28 -05:00
SergeantPanda
404d2f82a3
Switch HTTP streamer to a thread and pipe its output to a local pipe where the fetch chunk can access it the same way our transcode processes would be accessed. Simplifies the code.
2025-10-12 09:42:15 -05:00
SergeantPanda
74280baa85
Changed read timeout for http connection for the proxy server to 10 secounds to avoid unnecessary timeouts.
...
Improved try_next_stream to not fail if the returned stream is the same. It will now try a different stream.
Force a client to jump ahead in the buffer if they fall to far behind.
2025-10-11 19:45:21 -05:00
SergeantPanda
fa08216600
Enhancement: Add chunk timeout configuration in ConfigHelper. Improve StreamManager timeout handling for consistency. Only 1 heartbeat thread per worker should be started now. Timeout on proxy reduced from 60 seconds to 5.
2025-10-11 18:08:20 -05:00
SergeantPanda
fefab4c4c6
Enhancement: Improve resource cleanup in ProxyServer and StreamManager classes to avoid "SystemError: (libev) error creating signal/async pipe: Too many open files" errors
2025-10-10 15:26:02 -05:00
SergeantPanda
9dc54fdcff
Fix: Ensure channel_id and channel.uuid are converted to strings before processing. This fixes an issue where sending a stream switch event would fail if the event was sent from a non owning worker.
...
Fixes [Bug]: Manually switching active stream not working when using XC client.
Fixes #269
2025-10-09 19:10:38 -05:00
SergeantPanda
70f7484fb5
Better connection tracking for apps that do not reuse connections during seeking operations.
2025-09-26 09:18:43 -05:00
SergeantPanda
7bb4df78c8
Enhancement: Update M3U profile retrieval to include current connection counts and session handling during vod session start.
2025-09-26 09:18:42 -05:00
SergeantPanda
d961d4cad1
Bug fix: VOD will now select the correct M3U profile while starting.Fixes #461
2025-09-26 09:18:22 -05:00
SergeantPanda
0cdce1a81b
Enhancement: Refactor stream selection logic when all available profiles have max connections used. Will retry faster.
2025-09-25 17:49:05 -05:00
SergeantPanda
56aa5c77d2
Filter out profiles during db query that are inactive.
2025-09-15 20:02:40 -05:00
SergeantPanda
ed0b291237
Skip disabled m3u accounts when choosing streams during playback.
...
Closes #402
2025-09-15 17:36:31 -05:00
SergeantPanda
c0ddec6b4b
Reduced cleanup time on vod from 10 seconds to 1.
2025-09-09 13:06:40 -05:00
SergeantPanda
64e500c524
Add logging for profile connection cleanup and implement delayed cleanup for idle Redis connections
2025-09-09 12:58:35 -05:00
SergeantPanda
0938a3c592
Better headers for the client including content range that includes total length as well.
2025-09-07 18:51:58 -05:00
SergeantPanda
b45c6eda38
Better content-type detection
2025-09-07 18:25:39 -05:00
SergeantPanda
be9823c5ce
Added debug logs for active clients
2025-09-07 17:14:29 -05:00
SergeantPanda
adf960753c
Changed user-agent for head request to use m3u account
2025-09-07 15:17:19 -05:00
SergeantPanda
c239f0300f
Better progress tracking for clients that start a new session on every seek instead of reusing existing session.
2025-09-06 15:36:14 -05:00
SergeantPanda
4ca6bf763e
Add position calculation
2025-09-06 10:16:54 -05:00
SergeantPanda
6b9d42fec1
Refactor VODStatsView to use correct field names for content type and M3U profile ID, and update user agent handling
2025-09-05 20:34:43 -05:00
SergeantPanda
1a8763731b
Remove unneeded headers
2025-09-05 20:26:35 -05:00
SergeantPanda
18b8462a5f
Refactor user-agent handling to use 'client_user_agent' for consistency across VOD connection management
2025-09-05 20:15:11 -05:00
SergeantPanda
7c4d7865ea
Fixed not using user-agent from m3u (was using client user-agent)
2025-09-05 19:36:08 -05:00