Add initial Restreamer implementation for YouTube-to-Jellyfin live restreaming

This commit is contained in:
2026-09-27 11:19:19 +02:00
parent 70f2d191dc
commit a0b38c48e2
29 changed files with 2927 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
import asyncio
from restreamer.broadcaster import ChannelBroadcaster
async def test_publish_fans_out_to_all_subscribers() -> None:
broadcaster = ChannelBroadcaster("test")
first = broadcaster.subscribe()
second = broadcaster.subscribe()
broadcaster.publish(b"chunk")
assert await first.get() == b"chunk"
assert await second.get() == b"chunk"
async def test_unsubscribe_stops_receiving() -> None:
broadcaster = ChannelBroadcaster("test")
queue = broadcaster.subscribe()
broadcaster.unsubscribe(queue)
broadcaster.publish(b"chunk")
assert queue.empty()
async def test_full_queue_drops_slow_subscriber() -> None:
broadcaster = ChannelBroadcaster("test")
queue = broadcaster.subscribe()
for _ in range(queue.maxsize + 1):
broadcaster.publish(b"x")
await asyncio.sleep(0)
assert broadcaster.subscriber_count == 0