# 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.
-NewPipe app for Android offers similar features.
+Similar apps for other platforms:
-This application is implemented in [Nim language](https://nim-lang.org) using
-only the standard library.
+- [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
- [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)
+- [x] YouTube Autoplay (music only)
- [ ] Configuration options
| | YouTube | PeerTube (HTTP) | PeerTube (WebTorrent) |
| Stream Video Playlist | ✅ | | |
| Download Music Playlist | | | |
| Download Video Playlist | | | |
+| Play Recommended Music | ✅ | | |
## Installation
### Command line arguments
-| **Arguments** | **Explanation** |
-|-------------------|--------------------------------------------|
-| -m, --music | Play Music only, no video |
-| -l, --lucky | Try your luck with the first search result |
-| -f, --full-screen | Play video in full screen |
-| -d, --download | Download video or music |
+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
+globally to all search results in that session. These can be overriden on a
+case-by-case basis using the interactive arguments.
+
+| **Non-interactive Arguments** | **Explanation** |
+|-------------------------------|--------------------------------------------|
+| -m, --music | Play Music only, no video |
+| -l, --lucky | Try your luck with the first search result |
+| -f, --full-screen | Play video in full screen |
+| -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
error message if you pick incompatible options.
+Interactive arguments are provided during selection of a search result. These
+options allow you to change your mind after performing the search. For example,
+you might have searched for a music video, watched it and want to download the
+music only. In this case, you can specify the search result followed by the
+options as single characters. i.e
+
+"1" plays the video
+"1 md" downloads the music of the video
+
+| **Interactive Arguments** | **Explanation** |
+|---------------------------|--------------------------------------------|
+| -m, --music | Play Music only, no video |
+| -f, --full-screen | Play video in full screen |
+| -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
+support auto-play for music only.
+
## Development
One-liner for compiling and running