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
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
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
f1196bb988
Send websocket update on client disconnect and connect.
2025-09-05 12:04:30 -05:00
SergeantPanda
98f485bac9
Fixed issue with recurring api calls.
2025-09-05 11:37:49 -05:00
SergeantPanda
6f6c28ca7c
Convert custom_properties to jsonb in the backend.
2025-09-02 09:41:51 -05:00
SergeantPanda
6180b4ffef
Save stream stats to database.
2025-07-28 21:40:29 -05:00
SergeantPanda
9f8a2db500
Include channel ID in more logs.
2025-07-09 16:44:00 -05:00
SergeantPanda
2284d47f9f
If provider is slow but responsive, don't get locked up.
2025-07-08 17:10:55 -05:00
SergeantPanda
d6605e7119
Add timeout for chunks.
2025-07-08 15:57:11 -05:00
SergeantPanda
01d4b25303
Health monitor thread no longer will no longer attempt to reconnect it will only notify the main thread of issues.
2025-07-03 14:10:03 -05:00
SergeantPanda
55e19f05aa
Check if stopping before adding chunks during transcoding.
2025-07-03 11:18:03 -05:00
SergeantPanda
580aa1975c
Add process management for safe connection handling in StreamManager
...
- Introduced _wait_for_existing_processes_to_close method to ensure all existing processes and connections are fully closed before establishing new ones.
- Updated _establish_transcode_connection and _establish_http_connection methods to check for and close lingering processes and connections.
- Enhanced logging for better debugging and monitoring of connection states.
2025-07-03 11:02:07 -05:00
SergeantPanda
8e2c6c7780
Check for any state to detmine if channel is running.
2025-07-01 10:57:07 -05:00
SergeantPanda
2b97a958cd
Check if a transcode process is running also to determine if we should close sockets.
2025-07-01 10:27:24 -05:00
SergeantPanda
c04ca0a804
Add buffering as an active state.
2025-06-25 17:01:21 -05:00
SergeantPanda
03f39d7d48
Rename FFMPEG_BITRATE to FFMPEG_OUTPUT_BITRATE for clarity.
2025-06-18 17:10:08 -05:00
SergeantPanda
2e118a3f8d
Smarter parsing for input vs output streams.
2025-06-18 16:59:12 -05:00
SergeantPanda
ae88141c36
Change matching pattern for detecting input vs output streams in FFmpeg.
2025-06-17 21:33:26 -05:00