-func buildMusicDownloadArgs(url: string): seq[string] =
- {.noSideEffect.}:
- let downloadLocation = &"'{expandTilde(musicDownloadDirectory)}/%(title)s.%(ext)s'"
- @["--ignore-errors", "-f", "bestaudio", "--extract-audio", "--audio-format", "mp3",
- "--audio-quality", "0", "-o", downloadLocation, url]
-
-
-func buildVideoDownloadArgs(url: string): seq[string] =
- {.noSideEffect.}:
- let downloadLocation = &"'{expandTilde(videoDownloadDirectory)}/%(title)s.%(ext)s'"
- @["-f", "best", "-o", downloadLocation, url]
-
-
-proc download*(args: openArray[string], title: string) =
- styledEcho "\n", fgGreen, "Downloading ", styleBright, fgMagenta, title
- discard execShellCmd(&"youtube-dl {args.join(\" \")}")
-
-
-func urlLongen(url: string): string = url.replace("youtu.be/", "www.youtube.com/watch?v=")
-
-
-func rewriteInvidiousToYouTube*(url: string): string =
- {.noSideEffect.}:
- if rewriteInvidiousURLs and url.replace(".", "").contains("invidious"):
- &"https://www.youtube.com/watch?v={url.split(\"=\")[1]}"
- else: url
-
-
-func stripZshEscaping(url: string): string = url.replace("\\", "")
-
-
-func sanitizeURL*(url: string): string =
- rewriteInvidiousToYouTube(urlLongen(stripZshEscaping(url)))
-
-