-# NimCoon
+# Nimcoon
Play videos from YouTube and PeerTube from the command line using your preferred desktop media player.
YouTube's business incentive is to make you watch as many videos as possible. If you open the YouTube website and are logged into it, you will just get distracted by recommendations and forget why you opened it in the first place. You might have wanted to watch a conference talk but end up going down a rabbit hole of other "interesting" videos customized for you.
-NimCoon has a spartan design. It doesn't even show images of the search results. It doesn't let you browse YouTube. You have to explicitly search for something.
+Nimcoon has a spartan design. It doesn't even show images of the search results. It doesn't let you browse YouTube. You have to explicitly search for something.
I have had better success with managing my YouTube consumption after shifting to this tool. Settings inspired by Pinafore's wellness settings.
### Installing using Nimble
-NimCoon can be installed from Nimble repositories:
+Nimcoon can be installed from Nimble repositories:
``` sh
nimble install nimcoon
### Command line arguments
-NimCoon provides both interactive and non-interactive arguments with significant
+Nimcoon provides both interactive and non-interactive arguments with significant
overlap. But some arguments might only be present in one mode.
Non-interactive arguments are specified to the nimcoon program and apply
| -d, --download | Download video or music |
| -a, --auto-play | Play the next search result (YouTube only) |
-Feel free to use these options in any combination. NimCoon will show a helpful
+Feel free to use these options in any combination. Nimcoon will show a helpful
error message if you pick incompatible options.
Interactive arguments are provided during selection of a search result. These
| -d, --download | Download video or music |
| -a, --auto-play | Play the next search result (YouTube only) |
-Auto-playing videos leads to binge watching. The default option in NimCoon is to
+Auto-playing videos leads to binge watching. The default option in Nimcoon is to
support auto-play for music only.
## Development
;;; Non-interactive functions to respond to URL clicks
(defun nimcoon-play-url (url &rest args)
- "Play given URL in NimCoon."
+ "Play given URL in Nimcoon."
(start-process "nimcoon" nil "nimcoon" url))
-;; Play all YouTube URLs in NimCoon
+;; Play all YouTube URLs in Nimcoon
(setq browse-url-browser-function
(quote
(("youtu\\.?be" . nimcoon-play-url)
("." . browse-url-default-browser))))
(defun run-nimcoon(args query)
- "Search by QUERY and play in NimCoon."
+ "Search by QUERY and play in Nimcoon."
(call-process "nimcoon" nil 0 nil args query))
(defun nimcoon-search(args query)
"Search by QUERY with the given ARGS."
- (with-output-to-temp-buffer "*NimCoon search results*"
- (call-process "nimcoon" nil "*NimCoon search results*" t args query)
- (with-current-buffer "*NimCoon search results*"
+ (with-output-to-temp-buffer "*Nimcoon search results*"
+ (call-process "nimcoon" nil "*Nimcoon search results*" t args query)
+ (with-current-buffer "*Nimcoon search results*"
(org-mode))))
;;; Interactive functions
(interactive "sSearch query: ")
(run-nimcoon "-dlm" query))
-;; Assumes only one process exists. Must capture the pid of the running NimCoon process and only kill it.
+;; Assumes only one process exists. Must capture the pid of the running Nimcoon process and only kill it.
(defun nimcoon-kill-background-processes()
- "Kill NimCoon process running in the background. Useful for stopping background music."
+ "Kill Nimcoon process running in the background. Useful for stopping background music."
(interactive)
(shell-command "kill `pgrep nimcoon` `pgrep mpv` `pgrep vlc`"))
;;; Keybindings
(map! :leader
- ;;; <leader> N --- NimCoon
- (:prefix-map ("N" . "NimCoon")
+ ;;; <leader> N --- Nimcoon
+ (:prefix-map ("N" . "Nimcoon")
(:prefix ("d" . "Download")
:desc "Video" "v" #'nimcoon-download-video
:desc "Music" "m" #'nimcoon-download-music)