X-Git-Url: https://njoseph.me/gitweb/nimcoon.git/blobdiff_plain/d7f4645ccad8ae3f186f0428db3c7f0b48726b45..f114ff9a9ec2477cf9b8fe62283b28794d49fcab:/src/lib.nim diff --git a/src/lib.nim b/src/lib.nim index 4dbbf8b..4064ae4 100644 --- a/src/lib.nim +++ b/src/lib.nim @@ -17,7 +17,7 @@ import let processOptions = {poStdErrToStdOut, poUsePath} # Add poEchoCmd to debug - PEERTUBE_REGEX = re"videos\/watch\/[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}" + PEERTUBE_REGEX = re"w\/[0-9a-zA-z]{22}" proc isInstalled(program: string): bool = @@ -82,14 +82,12 @@ proc play*(player: string, options: Table[string, bool], url: string, title: str proc directPlay*(url: string, player: string, options: Table[string, bool]) = let url = if find(url, PEERTUBE_REGEX) != -1 and "webtorrent".isInstalled: - getPeerTubeMagnetLink(url) + getPeerTubeMagnetLink(url, options["musicOnly"]) else: url if url.startswith("magnet:") or url.endswith(".torrent"): if options["musicOnly"]: - # TODO Replace with WebTorrent once it supports media player options - discard execShellCmd(&"peerflix '{url}' -a --{player} -- --no-video") + discard execShellCmd(&"webtorrent '{url}' --{player} --player-args='--no-video'") else: - # WebTorrent is so much faster! discard execProcess("webtorrent", args=[url, &"--{player}"], options=processOptions) else: play(player, options, url) @@ -119,24 +117,24 @@ func buildDownloadArgs(url: string, options: Options): seq[string] = proc download*(args: openArray[string], title: string) = printTitle("Downloading", title) - discard execShellCmd(&"youtube-dl {args.join(\" \")}") + discard execShellCmd(&"yt-dlp {args.join(\" \")}") proc directDownload*(url: string, options: Options) = let args = buildDownloadArgs(url, options) if "aria2c".isInstalled: - discard execShellCmd(&"youtube-dl {args.join(\" \")} --external-downloader aria2c --external-downloader-args '-x 16 -s 16 -k 2M'") + discard execShellCmd(&"yt-dlp {args.join(\" \")} --external-downloader aria2c --external-downloader-args '-x 16 -s 16 -k 2M'") else: - discard execShellCmd(&"youtube-dl {args.join(\" \")}") + discard execShellCmd(&"yt-dlp {args.join(\" \")}") proc luckyDownload*(searchQuery: string, options: Options) = - let args = @[&"ytsearch:\"{searchQuery}\""] & buildDownloadArgs("", options) - let title = execProcess(&"youtube-dl --get-title {args.join(\" \")}").split("\n")[0] + let args = @[&"ytsearch1:\"{searchQuery}\""] & buildDownloadArgs("", options) + let title = execProcess(&"yt-dlp --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 --get-title {args.join(\" \")}").split("\n") + let output = execProcess(&"yt-dlp --get-url --get-title {args.join(\" \")}").split("\n") let title = output[0] url = &"\"{output[1]}\""