diff options
author | Thanos Apollo <[email protected]> | 2023-10-07 12:22:00 +0300 |
---|---|---|
committer | Thanos Apollo <[email protected]> | 2023-10-07 12:22:00 +0300 |
commit | dd046970aeacac91b9d44613d0cc3a6c3b10d839 (patch) | |
tree | 2ad7bfdcb7b04bd35cc9f3c8c46a0cef4d2cfdf6 | |
parent | d89fb174171f98d056cd8d34d02bd62fc86bcd1c (diff) | |
parent | 3fa20bde85dcd505aa705c883a3f252b5fd52532 (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.el | 3 | ||||
-rw-r--r-- | yeetube.el | 18 |
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 @@ -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) |