Skip to content

feat: Show active streams in the sidebar#356

Open
scottrobertson wants to merge 4 commits intonzbdav-dev:mainfrom
scottrobertson:feat/active-streams-sidebar
Open

feat: Show active streams in the sidebar#356
scottrobertson wants to merge 4 commits intonzbdav-dev:mainfrom
scottrobertson:feat/active-streams-sidebar

Conversation

@scottrobertson
Copy link

@scottrobertson scottrobertson commented Mar 13, 2026

2026-03-18 at 22 05 40@2x

Shows which files are currently being streamed in real time via WebSocket. Each entry displays the file name, and the speed of the current stream.

"Active Streams" felt right, but maybe it's wrong? It will disappear once it's fully downloaded, so it may be a bit confusing as the client (emby etc) may still be playing, but it's not showing in nzbdav.

I don't use Plex, so i cannot test if it works via that route. I assume it's very similar though?

This is written mostly by Claude Code. Forgive any issues, as i don't know C# at all.

@Root-Core
Copy link
Contributor

I haven't looked at the code yet, but some nitpicks. At the first glance it looks okay for LLM code.

Multiple HTTP requests for the same file (range requests, seeking) are deduplicated using the DavItem ID with reference counting.

How about not deduplicating, as this is a important information. Maybe something opens multiple streams of the same file, which can be a performance issue.


Maybe it's just me, but I would love to monitor the download (from Usenet) and upload speed (over DAV to clients).

Shows which files are currently being streamed in real time via WebSocket.
Each entry displays the file name, a progress bar, downloaded/total size,
and percentage. Multiple HTTP requests for the same file (range requests,
seeking) are deduplicated using the DavItem ID with reference counting.
@scottrobertson scottrobertson force-pushed the feat/active-streams-sidebar branch from d30f14a to 016759c Compare March 18, 2026 21:36
@scottrobertson
Copy link
Author

I think showing the upload/download speeds would be fun, but that info is not available right now and I don't think it should be added in this initial PR. We could add it in the future maybe?

I removed the deduplication, as that makes total sense.

WebDAV clients like Emby use range requests, closing and reopening
connections as they buffer. Each new request registered as a fresh
stream, resetting progress to 0%. The total file size was also
misleading since only a range is being served, not the full file.

Replaced the progress bar with bytes transferred and speed (bytes/sec),
which is always meaningful regardless of how the client fetches data.
@scottrobertson
Copy link
Author

I have switched it to show the speed + downloaded. The progress bar/% does not make sense as it will start at % with every range Emby/Plex streams/buffers.

2026-03-18 at 22 05 40@2x

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.

2 participants