diff --git a/internal/dl/dl.go b/internal/dl/dl.go index a1c0b76..912028b 100644 --- a/internal/dl/dl.go +++ b/internal/dl/dl.go @@ -11,6 +11,7 @@ import ( "os/exec" "path/filepath" "strconv" + "strings" "sync" "git.meatbag.se/varl/subsyt/internal/config" @@ -98,19 +99,18 @@ func Youtube(d Download, p config.Provider) { args = append(args, "--no-cookies") } + var youtubeArgs []string if p.Po_token != "" { - args = append(args, "--extractor-args") - args = append(args, fmt.Sprintf("youtube:po_token=web.gvs+%s", p.Po_token)) + youtubeArgs = append(youtubeArgs, fmt.Sprintf("po_token=web.gvs+%s", p.Po_token)) } - if p.Bgutil_server != "" { - args = append(args, "--extractor-args") - args = append(args, fmt.Sprintf("youtube:getpot_bgutil_baseurl=%s", p.Bgutil_server)) + youtubeArgs = append(youtubeArgs, fmt.Sprintf("getpot_bgutil_baseurl=%s", p.Bgutil_server)) } - if p.Player_client != "" { - args = append(args, "--extractor-args") - args = append(args, fmt.Sprintf("youtube:player_client=%s", p.Player_client)) + youtubeArgs = append(youtubeArgs, fmt.Sprintf("player_client=%s", p.Player_client)) + } + if len(youtubeArgs) > 0 { + args = append(args, "--extractor-args", fmt.Sprintf("youtube:%s", strings.Join(youtubeArgs, ";"))) } if p.Output_path_template != "" {