return availablePlayers[0]
+proc printTitle(action: string, title: string) =
+ styledEcho "\n", fgGreen, &"{action} ", styleBright, fgMagenta, title
+
+
###############
# URL CLEANUP #
###############
proc play*(player: string, options: Table[string, bool], url: string, title: string = "") =
let args = buildPlayerArgs(url, options, player)
if title != "":
- styledEcho "\n", fgGreen, "Playing ", styleBright, fgMagenta, title
+ printTitle("Playing", title)
if "--no-video" in args:
discard execShellCmd(&"{player} {args.join(\" \")}")
else:
proc download*(args: openArray[string], title: string) =
- styledEcho "\n", fgGreen, "Downloading ", styleBright, fgMagenta, title
+ printTitle("Downloading", title)
discard execShellCmd(&"youtube-dl {args.join(\" \")}")
proc luckyDownload*(searchQuery: string, options: Options) =
let args = @[&"ytsearch:\"{searchQuery}\""] & buildDownloadArgs("", options)
- styledEcho "\n", fgGreen, "Searching and downloading using youtube-dl"
- discard execShellCmd(&"youtube-dl {args.join(\" \")}")
+ let title = execProcess(&"youtube-dl --get-title {args.join(\" \")}").split("\n")[0]
+ download(args, title)
proc luckyPlay*(searchQuery: string, player: string, options: Options) =
let args = @[&"ytsearch:\"{searchQuery}\""] & buildDownloadArgs("", options)
- let output = execProcess(&"youtube-dl --get-url {args.join(\" \")}")
- let url = output.split("\n")[0]
- play(player, options, url)
+ let output = execProcess(&"youtube-dl --get-url --get-title {args.join(\" \")}").split("\n")
+ let
+ title = output[0]
+ url = &"\"{output[1]}\""
+ play(player, options, url, title)
###########
# OPTIONS #