@@ -131,6 +131,19 @@ func generateWhepUrl(streamName, requestID string) string {
131
131
return whepURL
132
132
}
133
133
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
+
134
147
func aiMediaServerHandle [I , O any ](ls * LivepeerServer , decoderFunc func (* I , * http.Request ) error , processorFunc func (context.Context , aiRequestParams , I ) (O , error )) http.Handler {
135
148
return http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
136
149
remoteAddr := getRemoteAddr (r )
@@ -505,13 +518,7 @@ func (ls *LivepeerServer) StartLiveVideo() http.Handler {
505
518
mediaMTXClient := media .NewMediaMTXClient (remoteHost , ls .mediaMTXApiPassword , sourceID , sourceType )
506
519
507
520
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" ))
515
522
if authURL != nil {
516
523
authResp , err := authenticateAIStream (authURL , ls .liveAIAuthApiKey , AIAuthRequest {
517
524
Stream : streamName ,
@@ -984,13 +991,7 @@ func (ls *LivepeerServer) CreateWhip(server *media.WHIPServer) http.Handler {
984
991
985
992
ctx = clog .AddVal (ctx , "source_type" , sourceTypeStr )
986
993
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" ))
994
995
if authURL != nil {
995
996
authResp , err := authenticateAIStream (authURL , ls .liveAIAuthApiKey , AIAuthRequest {
996
997
Stream : streamName ,
0 commit comments