diff --git a/internal/hls/client.go b/internal/hls/client.go index 2156e7e5..60145fc3 100644 --- a/internal/hls/client.go +++ b/internal/hls/client.go @@ -34,12 +34,15 @@ func clientURLAbsolute(base *url.URL, relative string) (*url.URL, error) { return nil, err } - if !u.IsAbs() { + if strings.HasPrefix(relative, "//") { + u.Scheme = base.Scheme + } else if !u.IsAbs() { u = &url.URL{ - Scheme: base.Scheme, - User: base.User, - Host: base.Host, - Path: gopath.Join(gopath.Dir(base.Path), relative), + Scheme: base.Scheme, + User: base.User, + Host: base.Host, + Path: gopath.Join(gopath.Dir(base.Path), u.Path), + RawQuery: u.RawQuery, } }