+ styledEcho $index, ". ", styleBright, fgMagenta, title, "\n", resetStyle, fgCyan, url, "\n"
+
+let player = selectMediaPlayer()
+
+var searchQuery = ""
+var musicOnly = false
+var feelingLucky = false
+
+for kind, key, value in getopt():
+ case kind
+ of cmdArgument:
+ searchQuery = key
+ of cmdShortOption, cmdLongOption:
+ case key
+ of "m", "music": musicOnly = true
+ of "l", "lucky": feelingLucky = true
+ of cmdEnd:
+ discard
+
+
+if "https://www.youtube.com" in searchQuery:
+ discard execProcess(&"{player} {searchQuery}")
+ quit(0)
+
+
+let searchResults = extractTitlesAndUrls(getYoutubePage(searchQuery))
+
+let number =
+ if feelingLucky:
+ 0
+ else:
+ presentVideoOptions(searchResults)
+ stdout.styledWrite(fgYellow, "Choose video number: ")
+ parseInt(readLine(stdin))
+
+styledEcho "\n", fgGreen, "Playing ", styleBright, fgMagenta, searchResults[number].title
+
+var command = @[player, searchResults[number].url]
+
+if musicOnly:
+ command.add("--no-video")