summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanos Apollo <[email protected]>2023-10-07 12:22:00 +0300
committerThanos Apollo <[email protected]>2023-10-07 12:22:00 +0300
commitdd046970aeacac91b9d44613d0cc3a6c3b10d839 (patch)
tree2ad7bfdcb7b04bd35cc9f3c8c46a0cef4d2cfdf6
parentd89fb174171f98d056cd8d34d02bd62fc86bcd1c (diff)
parent3fa20bde85dcd505aa705c883a3f252b5fd52532 (diff)
[feature] Browse video url on invidious
- Add yeetube-invidious-instances variable, containing random invidious instances - Rewrite yeetube-browse-url to use a random invidious instance from yeetube-invidious-instances
-rw-r--r--yeetube-buffer.el3
-rw-r--r--yeetube.el18
2 files changed, 18 insertions, 3 deletions
diff --git a/yeetube-buffer.el b/yeetube-buffer.el
index fed3c66..565d192 100644
--- a/yeetube-buffer.el
+++ b/yeetube-buffer.el
@@ -202,7 +202,8 @@ Emojis cause formatting issues, this should be off by default."
(cl-loop for result in (reverse content)
do (yeetube-buffer-insert-content result))
(delete-char -1)
- (goto-char (point-min))))
+ (goto-char (point-min))
+ (setf buffer-read-only t)))
(provide 'yeetube-buffer)
;;; yeetube-buffer.el ends here
diff --git a/yeetube.el b/yeetube.el
index a125e96..cd5ed4b 100644
--- a/yeetube.el
+++ b/yeetube.el
@@ -72,6 +72,15 @@ Example Usage:
:type 'string
:group 'yeetube)
+(defvar yeetube-invidious-instances
+ '("vid.puffyan.us"
+ "invidious.flokinet.to"
+ "yt.artemislena.eu"
+ "invidious.privacydev.net"
+ "onion.tube"
+ "yewtu.be")
+ "List of invidious instaces.")
+
(defvar yeetube-content nil
"Scraped content.")
@@ -165,9 +174,13 @@ WHERE indicates where in the buffer the update should happen."
(yeetube-buffer-create query yeetube-content 'yeetube-mode)))
(defun yeetube-browse-url ()
- "Open URL in browser."
+ "Open URL for video at point, using an invidious instance."
(interactive)
- (browse-url (yeetube-get-url)))
+ (let ((invidious-instance (+ 1 (random (length yeetube-invidious-instances)))))
+ (browse-url
+ (replace-regexp-in-string "youtube.com"
+ (nth invidious-instance yeetube-invidious-instances)
+ (yeetube-get-url)))))
(defun yeetube-get-item (query)
"Get item from youtube results for QUERY.
@@ -269,6 +282,7 @@ prompt blank to keep the default name."
;; Yeetube Mode
(defvar yeetube-mode-map (make-sparse-keymap))
(define-key yeetube-mode-map (kbd "RET") #'yeetube-play)
+(define-key yeetube-mode-map (kbd "b") #'yeetube-browse-url)
(define-key yeetube-mode-map (kbd "d") #'yeetube-download-video)
(define-key yeetube-mode-map (kbd "D") #'yeetube-download-change-directory)
(define-key yeetube-mode-map (kbd "a") #'yeetube-download-change-audio-format)