diff options
Diffstat (limited to 'bard-elisp/bard-web.el')
| -rw-r--r-- | bard-elisp/bard-web.el | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/bard-elisp/bard-web.el b/bard-elisp/bard-web.el new file mode 100644 index 0000000..a0d667c --- /dev/null +++ b/bard-elisp/bard-web.el @@ -0,0 +1,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) |
