a852de60762a1d7be983097157b0e51b2174b471
[nimcoon.git] / README.md
1 # NimCoon
2
3 Play videos from YouTube and PeerTube from the
4 command line using your preferred desktop media player.
5
6 This application is implemented in [Nim language](https://nim-lang.org) using
7 only the standard library.
8
9 ![nimcoon screenshot with search term 'baby yoda'](screenshot.png)
10
11 ## Features
12
13 - [x] Search for videos using keywords
14 - [x] Stream videos and music from YouTube
15 - [x] Play direct links from YouTube and PeerTube
16 - [x] Stream video and music from magnet links
17 - [x] Download music
18 - [x] Download video
19 - [ ] Configuration options
20
21 ## Installation
22
23 Nim Coon depends on the following:
24 - youtube-dl
25 - mpv (recommended) or vlc
26 - peerflix (for magnet links)
27
28 Install VLC or MPV using your distribution's package manager.
29
30 Install YouTube-dl
31 ``` sh
32 pip3 install --user youtube-dl
33 ```
34
35 Install PeerFlix
36 ```sh
37 npm install --global peerflix
38 ```
39
40 ### Installing using Nimble
41
42 NimCoon can be installed from Nimble repositories:
43
44 ``` sh
45 nimble install nimcoon
46 ```
47
48 You can also install from source by running the following command:
49
50 ```sh
51 nimble install
52 ```
53
54 ### Installing binary
55
56 Download the latest build from GitlabCI (amd64 GNU/Linux only).
57
58 ```sh
59 wget https://gitlab.com/njoseph/nimcoon/-/jobs/artifacts/master/download?job=compile -O artifacts.zip
60 unzip artifacts.zip
61 ```
62
63 Copy the binary to somewhere on your path like /usr/local/bin
64
65 ## Usage
66
67 ```sh
68 nimcoon "emacs"
69
70 # If your search query has multiple words, use quotes
71 nimcoon "nim lang"
72
73 # Play audio of the first search result
74 nimcoon -m -l "counting stars"
75
76 # Download audio of the first search result
77 nimcoon -mld "counting stars"
78
79 # Play direct video link
80 nimcoon https://www.youtube.com/watch?v=QOEMv0S8AcA
81
82 # Add -d to download or -m to select only audio or both
83 nimcoon -md https://www.youtube.com/watch?v=hT_nvWreIhg
84 ```
85
86 After the search results are displayed, you can enter a number to play one
87 result, "all" to play all the results or "q" to quit the program.
88
89 If a number is entered, after the selected search result is played, the results
90 are redisplayed, so that you can play the other results without having to search
91 again.
92
93 ### Command line arguments
94
95 | **Arguments** | **Explanation** |
96 |-------------------|--------------------------------------------|
97 | -m, --music | Play Music only, no video |
98 | -l, --lucky | Try your luck with the first search result |
99 | -f, --full-screen | Play video in full screen |
100 | -d, --download | Download video or music |
101
102 Feel free to use these options in any combination. NimCoon will show a helpful
103 error message if you pick incompatible options.
104
105 ## Development
106
107 One-liner for compiling and running
108
109 ```sh
110 nim c -d:ssl -r src/nimcoon.nim 'nim lang'
111 ```