@@ -131,6 +131,19 @@ func generateWhepUrl(streamName, requestID string) string {
131131 return whepURL
132132}
133133
134+ // resolveWebhookURL resolves a webhook URL with optional override from query parameters
135+ func resolveWebhookURL (defaultURL * url.URL , overrideParam string ) * url.URL {
136+ if overrideParam == "" {
137+ return defaultURL
138+ }
139+
140+ if parsed , err := url .Parse (overrideParam ); err == nil && parsed .Scheme != "" && parsed .Host != "" {
141+ return parsed
142+ }
143+
144+ return defaultURL
145+ }
146+
134147func aiMediaServerHandle [I , O any ](ls * LivepeerServer , decoderFunc func (* I , * http.Request ) error , processorFunc func (context.Context , aiRequestParams , I ) (O , error )) http.Handler {
135148 return http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
136149 remoteAddr := getRemoteAddr (r )
@@ -505,13 +518,7 @@ func (ls *LivepeerServer) StartLiveVideo() http.Handler {
505518 mediaMTXClient := media .NewMediaMTXClient (remoteHost , ls .mediaMTXApiPassword , sourceID , sourceType )
506519
507520 whepURL := generateWhepUrl (streamName , requestID )
508- authURL := LiveAIAuthWebhookURL
509- override := qp .Get ("webhookUrl" )
510- if override != "" {
511- if parsed , err := url .Parse (override ); err == nil && parsed .Scheme != "" && parsed .Host != "" {
512- authURL = parsed
513- }
514- }
521+ authURL := resolveWebhookURL (LiveAIAuthWebhookURL , qp .Get ("webhookUrl" ))
515522 if authURL != nil {
516523 authResp , err := authenticateAIStream (authURL , ls .liveAIAuthApiKey , AIAuthRequest {
517524 Stream : streamName ,
@@ -984,13 +991,7 @@ func (ls *LivepeerServer) CreateWhip(server *media.WHIPServer) http.Handler {
984991
985992 ctx = clog .AddVal (ctx , "source_type" , sourceTypeStr )
986993
987- authURL := LiveAIAuthWebhookURL
988- override := r .URL .Query ().Get ("webhookUrl" )
989- if override != "" {
990- if parsed , err := url .Parse (override ); err == nil && parsed .Scheme != "" && parsed .Host != "" {
991- authURL = parsed
992- }
993- }
994+ authURL := resolveWebhookURL (LiveAIAuthWebhookURL , r .URL .Query ().Get ("webhookUrl" ))
994995 if authURL != nil {
995996 authResp , err := authenticateAIStream (authURL , ls .liveAIAuthApiKey , AIAuthRequest {
996997 Stream : streamName ,
0 commit comments