I’ve just published a short video covering the basics of RSS, RSS-Bridge & Elfeed, it’s currently available on YouTube.
Video notes
What is RSS?
- XML-based web feed that allows users to access updates of websites, without “visiting” the website.
- Hacktivist including Aaron Swartz contributed to the development of RSS
Why use it?
- Having total control over information you consume
- Filter/Prioritize content from various sources
- Bypass algorithms
- Ad-free reading
- Offline Access
- Time saving
- Allows creation of a personalized & decentralized information hub
(+ Emacs RSS) ;; => ’elfeed
No matter what RSS reader you choose, they all get the same job done
- Elfeed is a simple & highly customizable RSS client for Emacs
- Developed by Christopher Wellons (skeeto)
- It has a well designed database & tagging system
use-package
installation example:
(use-package elfeed
:vc (:url "https://github.com/skeeto/elfeed") ;; vc option is available on Emacs 30
:config
(setf elfeed-search-filter "@1-week-ago +unread"
browse-url-browser-function #'browse-url-default-browser
elfeed-db-directory (locate-user-emacs-file "elfeed-db"))
;; Feeds Example
(setf elfeed-feeds
'(("https://hackaday.com/blog/feed/"
hackaday linux)))
;; Play videos from elfeed
(defun elfeed-mpv (&optional use-generic-p)
"Play video link with mpv."
(interactive "P")
(let ((entries (elfeed-search-selected)))
(cl-loop for entry in entries
do (elfeed-untag entry 'unread)
when (elfeed-entry-link entry)
do (start-process-shell-command "elfeed-video" nil (format "mpv \"%s\"" it)))
(mapc #'elfeed-search-update-entry entries)
(unless (use-region-p) (forward-line))))
:bind (("C-x f" . elfeed)
:map elfeed-search-mode-map
("v" . 'elfeed-mpv)
("U" . 'elfeed-update)))
What to do with websites that do not provide an RSS feed?
- Utilize rss-bridge to generate one.
- RSS Bridge is easy to self host using docker
Example guix
service:
(service oci-container-service-type
(list
(oci-container-configuration
(image "rssbridge/rss-bridge")
(network "host")
(ports
'(("3000" . "80"))))))