Corregge chiusura diretta YouTube e stop sessione senza broadcast.

transition_live_broadcast richiede status, id e part; evita 500 in chiusura
diretta Match Live TV quando non c'è broadcast YouTube.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-02 23:06:46 +02:00
parent 787161807c
commit 422d8848f6
2 changed files with 9 additions and 2 deletions

View File

@@ -8,7 +8,7 @@ module Sessions
cancel_timeout_job
Sessions::RegiaAccess.revoke!(@session)
@session.end_stream!
Youtube::BroadcastService.new(@session.match.team).complete_broadcast!(@session.youtube_broadcast_id)
complete_youtube_broadcast! if @session.youtube_broadcast_id.present?
Recordings::IndexSession.new(@session).call
Mediamtx::Client.new.delete_path(@session)
log_event("ended")
@@ -27,5 +27,11 @@ module Sessions
def log_event(type)
@session.stream_events.create!(event_type: type, occurred_at: Time.current, metadata: {})
end
def complete_youtube_broadcast!
Youtube::BroadcastService.new(@session.match.team).complete_broadcast!(@session.youtube_broadcast_id)
rescue Youtube::BroadcastService::Error => e
Rails.logger.warn("[Sessions::Stop] YouTube complete: #{e.message}")
end
end
end

View File

@@ -50,10 +50,11 @@ module Youtube
end
def complete_broadcast!(broadcast_id)
return if broadcast_id.blank?
return if @credential.blank? || missing_oauth_config?
client = authorized_client
client.transition_live_broadcast(broadcast_id, "complete")
client.transition_live_broadcast("complete", broadcast_id, "id,status")
rescue Google::Apis::Error
nil
end