Keep YouTube event alive through TikTok guest/room transitions (end grace 40s -> 180s)
Browse files- Dockerfile +1 -1
- youtube_manager.py +3 -1
Dockerfile
CHANGED
|
@@ -41,7 +41,7 @@ ENV TZ=Asia/Baghdad \
|
|
| 41 |
YOUTUBE_OBS_HOLD_SECONDS=900 \
|
| 42 |
YOUTUBE_SOURCE_RETRY=15 \
|
| 43 |
YOUTUBE_FORCE_GAP=5 \
|
| 44 |
-
YOUTUBE_END_GRACE=
|
| 45 |
YOUTUBE_REUSE_IDLE=90 \
|
| 46 |
YOUTUBE_STABLE_SECONDS=25 \
|
| 47 |
YOUTUBE_FFMPEG_LOGLEVEL=info \
|
|
|
|
| 41 |
YOUTUBE_OBS_HOLD_SECONDS=900 \
|
| 42 |
YOUTUBE_SOURCE_RETRY=15 \
|
| 43 |
YOUTUBE_FORCE_GAP=5 \
|
| 44 |
+
YOUTUBE_END_GRACE=180 \
|
| 45 |
YOUTUBE_REUSE_IDLE=90 \
|
| 46 |
YOUTUBE_STABLE_SECONDS=25 \
|
| 47 |
YOUTUBE_FFMPEG_LOGLEVEL=info \
|
youtube_manager.py
CHANGED
|
@@ -33,7 +33,9 @@ class ManagedYouTube:
|
|
| 33 |
self.destinations={} # username -> rtmps url (in-memory only, never persisted)
|
| 34 |
self._ingest_routes={};self._ingest_preferred={}
|
| 35 |
self.scan=max(8,int(os.getenv('YOUTUBE_SCAN_SECONDS') or os.getenv('CHECK_INTERVAL','20')))
|
| 36 |
-
|
|
|
|
|
|
|
| 37 |
self._unstable={}
|
| 38 |
self._live_confirm={}
|
| 39 |
self._rendition_pin={}
|
|
|
|
| 33 |
self.destinations={} # username -> rtmps url (in-memory only, never persisted)
|
| 34 |
self._ingest_routes={};self._ingest_preferred={}
|
| 35 |
self.scan=max(8,int(os.getenv('YOUTUBE_SCAN_SECONDS') or os.getenv('CHECK_INTERVAL','20')))
|
| 36 |
+
# 180 ث: انتقال الضيف/جولة PK يُرجع فيه تيك توك «غير بث» لدقيقة تقريبًا (سجل 2026-10-10
|
| 37 |
+
# 22:29→22:30 أنهى الحدث بعد 40 ث بينما البث لم ينتهِ). الإنهاء الحقيقي يبقى مؤكدًا بعد هذه المهلة.
|
| 38 |
+
self.end_grace=max(15,int(os.getenv('YOUTUBE_END_GRACE','180')))
|
| 39 |
self._unstable={}
|
| 40 |
self._live_confirm={}
|
| 41 |
self._rendition_pin={}
|