Fix YouTube in attesa: disabilita auto_stop e ricrea broadcast chiusa

YouTube chiudeva la diretta (complete) senza ingest stabile; ora
enable_auto_stop è false e SetupBroadcast.recreate! rigenera link/stream key.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-04 09:33:07 +02:00
parent d835bce148
commit 10fff7ffcb
3 changed files with 27 additions and 1 deletions

View File

@@ -24,7 +24,7 @@ module Youtube
),
content_details: Google::Apis::YoutubeV3::LiveBroadcastContentDetails.new(
enable_auto_start: true,
enable_auto_stop: true
enable_auto_stop: false
)
)
result = client.insert_live_broadcast("snippet,status,contentDetails", broadcast)
@@ -62,6 +62,7 @@ module Youtube
status = item.status.life_cycle_status.to_s
return :live if status == "live"
return :broadcast_ended if status == "complete"
stream_id = item.content_details&.bound_stream_id
if stream_id.present?

View File

@@ -7,11 +7,31 @@ module Youtube
new(session, youtube_channel: youtube_channel).call
end
# Nuova broadcast se YouTube ha chiuso la precedente (auto_stop / ingest perso).
def self.recreate!(session, youtube_channel: nil)
new(session, youtube_channel: youtube_channel).recreate!
end
def initialize(session, youtube_channel: nil)
@session = session
@youtube_channel = youtube_channel
end
def recreate!
@session.reload
return @session if @session.terminal?
return @session unless @session.platform == "youtube"
Streams::YoutubeRelay.stop(@session)
@session.update!(
youtube_broadcast_id: nil,
youtube_stream_id: nil,
stream_key: nil,
rtmp_url: nil
)
call
end
def call
@session.reload
return @session if @session.terminal?