Reoo88 commited on
Commit
e57669e
·
verified ·
1 Parent(s): f4562c8

Prayer: re-request YouTube live when ingest is healthy but stuck in liveStarting

Browse files
Files changed (1) hide show
  1. youtube_manager.py +19 -0
youtube_manager.py CHANGED
@@ -1716,6 +1716,25 @@ class ManagedYouTube:
1716
  self.stream_health(key,user,ev)
1717
  ev=self.journal.read()['events'].get(key) or ev
1718
  self._ingest_copy_watchdog(key,user,ev)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1719
  return
1720
 
1721
  # life is expected to be 'ready' or 'testing' for a newly bound event
 
1716
  self.stream_health(key,user,ev)
1717
  ev=self.journal.read()['events'].get(key) or ev
1718
  self._ingest_copy_watchdog(key,user,ev)
1719
+ # Measured Prayer-Time-Bot: life=liveStarting, health=ok, out≈wall for 10+ min,
1720
+ # public never left «starting». Re-request live while ingest is healthy.
1721
+ if life=='liveStarting' and needs_poll:
1722
+ healthy=(str(ev.get('youtube_health') or '') in ('good','ok'))
1723
+ try:
1724
+ snap=(self.senders.get(key) or {}).get('sender')
1725
+ out=float((snap.snapshot() if snap else {}).get('output_seconds') or 0)
1726
+ except Exception:
1727
+ out=0.0
1728
+ if healthy or out>=30:
1729
+ if not ev.get('was_live'):
1730
+ self.event_update(key,was_live=True,phase='starting')
1731
+ try:
1732
+ self.api.call('liveBroadcasts/transition','POST',{'part':'id,status','id':ev['broadcast_id'],'broadcastStatus':'live'})
1733
+ self.event_note(key,'يوتيوب يستقبل؛ أُعيد طلب التحويل من liveStarting إلى مباشر')
1734
+ self.log(user,'[LIVE] إعادة طلب live من liveStarting '+str(ev.get('broadcast_id')))
1735
+ except APIError as e:
1736
+ # already transitioning / not allowed — keep copy, do not tear down
1737
+ self.log(user,'[LIVE] تحويل liveStarting: '+self.safe_error(e)[:120])
1738
  return
1739
 
1740
  # life is expected to be 'ready' or 'testing' for a newly bound event