]> njoseph.me Git - nimcoon.git/blobdiff - src/lib.nim
peertube: Shift from UUID to short video id format
[nimcoon.git] / src / lib.nim
index 4dbbf8be6f74ea687d8b728fcbbd5d460a9fafaa..c88c4eda056716504e3b3b104ca4520308a9b8eb 100644 (file)
@@ -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 =
@@ -119,24 +119,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]}\""