]> njoseph.me Git - nimcoon.git/blobdiff - README.md
README: Add info about logo and alternatives
[nimcoon.git] / README.md
index 7af359104bc45468aaf77ed6a7a0dedb928bce8b..03666ee1d704807a19f8fdb771c5f15b81320242 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,45 +1,93 @@
 # NimCoon
 
-Play videos from YouTube and PeerTube from the
-command line using your preferred desktop media player.
+Play videos from YouTube and PeerTube from the command line using your preferred desktop media player.
 
-This application is implemented in [Nim language](https://nim-lang.org) using
-only the standard library.
+Similar apps for other platforms:
+
+- [NewPipe](https://newpipe.schabi.org) is a light-weight YouTube frontend for Android
+- [FreeTube](https://freetubeapp.io) is a GUI client for desktop platforms (uses electron)
+
+This is a minimal application implemented in [Nim language](https://nim-lang.org) using only the standard library.
 
 ![nimcoon screenshot with search term 'baby yoda'](screenshot.png)
 
+## Logo
+
+A Maine Coon cat wearing a golden crown.  
+Logo contributions/suggestions welcome.
+
+Maybe I would've just called this project Maine Coon had I written it in Python, but I wanted to use this opportunity to make Nim popular.
+
+## Motivation
+
+### No similar existing tool
+
+I tried all kinds of alternative YouTube players for the desktop. Most are either electron apps or slow web proxies. There was one cool bash script that did most of what I wanted called `ytview` but it had no way of copying the URL. I added this feature to the bash script but was still unsatisfied. There were CLI players written in Python but are usually a pain to install. They depend on a hard-coded YouTube API token and suffer from rate-limiting. I use youtube-dl with mpv usually (mostly because I like MPV over the YouTube JavaScript player). These tools have hundreds of options and I can't remember them. I needed a wrapper for them that does what I want, is easy to install(portable) and has a simple interface. I am not a big fan of Golang and its fat binaries. I discovered Nim around the same time I had this problem and decided to write this tool using just the standard library.
+
+### Digital Minimalism
+
+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.
+
+I have had better success with managing my YouTube consumption after shifting to this tool. Settings inspired by Pinafore's wellness settings.
+
+### Why no issues or merge requests?
+
+I made this just for myself. The development is completely based on my needs and wants. I am not going to put a lot of work into this project. But feel free to use it if it works for you.
+
 ## Features
 
 - [x] Search for videos using keywords
 - [x] Stream videos and music from YouTube
 - [x] Play direct links from YouTube and PeerTube
-- [x] Stream video and music from magnet links
+- [x] Stream video and music from magnet links and hyperlinks to torrent files
 - [x] Download music
 - [x] Download video
-- [x] Play playlists (MPV only)
-- [ ] Download playlists
-- [ ] Autoplay next video/audio
+- [x] Play YouTube playlists (MPV only)
+- [ ] Download YouTube playlists
+- [x] Stream video from torrent file URLs
+- [x] BitTorrent is preferred for PeerTube video links
+- [ ] Search PeerTube (3.0 or later)
+- [ ] YouTube Autoplay (music only)
 - [ ] Configuration options
 
+|                         | YouTube  | PeerTube (HTTP) | PeerTube (WebTorrent) |
+| --------                | -------- | --------        | --------              |
+| Music Streaming         | ✅       | ✅              | ✅                    |
+| Video Streaming         | ✅       | ✅              | ✅                    |
+| Music Download          | ✅       | ✅              |                       |
+| Video Download          | ✅       | ✅              |                       |
+| Stream Music from URL   | ✅       | ✅              |                       |
+| Stream Video from URL   | ✅       | ✅              | ✅                    |
+| Download Music from URL | ✅       | ✅              |                       |
+| Download Video from URL | ✅       | ✅              |                       |
+| Stream Music Playlist   | ✅       |                 |                       |
+| Stream Video Playlist   | ✅       |                 |                       |
+| Download Music Playlist |          |                 |                       |
+| Download Video Playlist |          |                 |                       |
+
 ## Installation
 
 Nim Coon depends on the following:
 - youtube-dl
 - mpv (recommended) or vlc
-- peerflix (for magnet links)
+- peerflix and webtorrent (for magnet links)
 
-Install VLC or MPV using your distribution's package manager.
+Install MPV or VLC using your distribution's package manager.
 
 Install YouTube-dl
 ``` sh
 pip3 install --user youtube-dl
 ```
 
-Install PeerFlix
+Install PeerFlix and WebTorrent
 ```sh
-npm install --global peerflix
+npm install --global peerflix webtorrent-cli
 ```
 
+(Optional) If you want your YouTube downloads to be faster, install `aria2` download manager.
+
 ### Installing using Nimble
 
 NimCoon can be installed from Nimble repositories:
@@ -131,3 +179,4 @@ The same can be achieved in `bash` by setting an environment variable
 ```sh
 export HISTCONTROL=ignoreboth
 ```
+