blob: a0d667c9cb5f9e3b2ed49cd32f193b3c3caee42c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
(defun bard/play-elfeed-video ()
"Play the URL of the entry at point in mpv if it's a YouTube video."
(interactive)
(let ((entry (elfeed-search-selected :single)))
(if entry
(let ((url (elfeed-entry-link entry)))
(if (and url (string-match-p "https?://\\(www\\.\\)?youtube\\.com\\|youtu\\.be" url))
(progn
(async-shell-command (format "mpv '%s'" url))
(elfeed-search-untag-all-unread))
(message "The URL is not a YouTube link: %s" url)))
(message "No entry selected in Elfeed."))))
(defun bard/add-video-emms-queue ()
"Play the URL of the entry at point in mpv if it's a YouTube video. Add it to EMMS queue."
(interactive)
(let ((entry (elfeed-search-selected :single)))
(if entry
(let ((url (elfeed-entry-link entry)))
(if (and url (string-match-p "https?://\\(www\\.\\)?youtube\\.com\\|youtu\\.be" url))
(let* ((playlist-name "Watch Later")
(playlist-buffer (get-buffer (format " *%s*" playlist-name))))
(unless playlist-buffer
(setq playlist-buffer (emms-playlist-new (format " *%s*" playlist-name))))
(emms-playlist-set-playlist-buffer playlist-buffer)
(emms-add-url url)
(elfeed-search-untag-all-unread)
(message "Added YouTube video to EMMS playlist: %s" url))
(message "The URL is not a YouTube link: %s" url)))
(message "No entry selected in Elfeed."))))
(provide 'bard-web)
|