YeeTube is YouTube front-end for GNU Emacs.

yeetube showcase

About

Yee(t) (You)Tube

This package provides the ability to scrape YouTube, with the results displayed in a tabulated list.

Core features include:

  • Executing queries on YouTube
  • Playing video URLs using default mpv
  • Bookmark/Save video url for future reference
  • Download video using yt-dlp
  • A standalone, minimalist yt-dlp wrapper

This package does not use Invidious or YouTube’s API, just “parses” html & json.

Installation

YeeTube is available via MELPA

Example using use-package

(use-package yeetube
  :init (define-prefix-command 'my/yeetube-map)
  :config
  (setf yeetube-mpv-disable-video t) ;; Disable video output
  :bind (("C-c y" . 'my/yeetube-map)
          :map my/yeetube-map
		  ("s" . 'yeetube-search)
		  ("b" . 'yeetube-play-saved-video)
		  ("d" . 'yeetube-download-videos)
		  ("p" . 'yeetube-mpv-toggle-pause)
		  ("v" . 'yeetube-mpv-toggle-video)
		  ("V" . 'yeetube-mpv-toggle-no-video-flag)
		  ("k" . 'yeetube-remove-saved-video)))

Dependencies

Debian/Ubuntu

$ sudo apt install mpv yt-dlp

Configuration

Media Player

By default yeetube-play-function is set to yeetube-mpv-play, you can use mpv.el, GNU/Emms or other similar packages like so:

(setf yeetube-play-function #'emms-play-url)

Make sure that the media player of your choice can directly play youtube urls.

Thumbnails

Disable thumbnails:

(setf yeetube-display-thumbnails nil)

Apply Filters

To filter the search results based on a specific criterion, you can modify the yeetube-filter value to your preferred option.

For example:

(setf yeetube-filter "Views")

This will filter & sort the search results according to the number of views.

Tor & torsocks support

For enhanced privacy, using tor & torsocks:

(setf yeetube-enable-tor t 
      yeetube-mpv-enable-torsocks t) ;; if you are using yeetube-mpv as your media player

It’s recommended to disable thumbnail support to imrpove performance when using tor.

Yeetube is configured to use tor via port 9050.

You can toggle that option for mpv with yeetube-mpv-toggle-torsocks