1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
|
.TH HTTP-MUSIC 1
.SH NAME
http-music - play music through the internet
.SH SYNOPSIS
.B http-music
[opts...]
.SH DESCRIPTION
\fBhttp-music\fR is an easy-to-use command line music player that uses the internet as its main source.
It features several convenient options which make it powerful while still sticking to the idea of keeping the utility as usable as possible.
.PP
\fBhttp-music\fR is portable.
It can be used anywhere with a Node environment, requiring only two commonly installed (and otherwise easy to get) utilities (\fBmpv\fR and \fBavconv\fR, optionally \fByoutube-dl\fR).
.SH KEYBOARD CONTROLS
.TP
.BR <left-arrow>
Skips backwards 5 seconds in the currently playing track; hold shift to skip by
30 seconds.
.TP
.BR <right-arrow>
Skips forwards 5 seconds in the currently playing track; hold shift to skip by
30 seconds.
.TP
.BR <up-arrow>
Turns the volume up a 10%-notch.
.TP
.BR <down-arrow>
Turns the volume down 10%.
.TP
.BR <space>
Pauses (or resumes) playback.
.TP
.BR i
Shows information (title, URL/path) on the currently playing track.
(\fBt\fR also works.)
.TP
.BR q
Quits the http-music process and stops music currently being played.
(\fB^C\fR and \fB^D\fR also work.)
.TP
.BR s
Skips the currently playing track.
.SH OPTIONS
.TP
.BR \-c ", " \-\-clear
Clears the active playlist.
This does not effect the source playlist, so specific groups can be selected using \fB\-\-keep\fR.
.TP
.BR \-h ", " \-? ", " \-\-help
Presents a help message, directing the user to the \fBman\fR page.
If this is the last option used, nothing plays (see \fB\-\-play\fR).
.TP
.BR \-k ", " \-\-keep " \fIgroupPath\fR"
Keeps a group by adding it from the source playlist.
This is usually useful after clearing the active playlist (\fB\-\-clear\fR); it can also be used to keep a sub-group after removing an entire parent group, e.g. \fB-r foo -k foo/baz\fR.
.TP
.BR \-l ", " \-\-list\-groups ", " \-\-list
Lists all groups (but not tracks) in the (active) playlist.
If this is the last option used, nothing plays (see \fB\-\-play\fR).
.TP
.BR \-L ", " \-\-list\-all ", " \-\-list\-tracks
Lists all groups and tracks in the (active) playlist.
If this is the last option used, nothing plays (see \fB\-\-play\fR).
.TP
.BR \-np ", " \-\-no\-play
Forces the playlist not to play.
See also \fB\-\-play\fR.
.TP
.BR \-o ", " \-\-open\-playlist ", " \-\-open " \fIplaylistFile\fR"
Opens a specific file to be used as the playlist file.
(This sets the source playlist.)
The default playlist file used upon loading is \fBplaylist.json\fR (in the same directory as \fBhttp-music\fR is being run in).
.TP
.BR \-\-picker ", " \-\-selector " \fIpickerType\fR"
Sets the picker type used for selecting tracks from the active playlist.
The default is \fBshuffle\fR.
.TP
.BR \-p ", " \-\-play
Forces the playlist to actually play, regardless of options such as \fB\-\-list\fR. See also \fB\-\-no\-play\fR.
.TP
.BR \-\-play\-opts
Sets command line options passed to the \fBplay\fR command.
For example, playback volume may be set to 30% by using \fB\-\-play\-opts '\-\-volume 30'\fR.
.TP
.BR \-\-print\-playlist ", " \-\-log-playlist ", " \-\-json
Prints the JSON representation of the active playlist to the console.
.TP
.BR \-r ", " \-\-remove ", " \-x " \fIgroupPath\fR"
Removes a group from the (active) playlist.
.TP
.BR \-w ", " \-\-write\-playlist ", " \-\-write ", " \-\-save " \fIfilePath\fR"
Writes the active playlist to a file.
This file can later be used with \fB\-\-open\fR; you won't need to stick in all the filtering options again.
.SH EXAMPLES
Basic usage:
.PP
.nf
.RS
$ http-music
.RE
.fi
.PP
Generate a playlist from an HTTP server:
.PP
.nf
.RS
$ http-music-crawl-http http://example.com/path > playlist.json
.RE
.fi
.PP
Generate a playlist from the local file system:
.PP
.nf
.RS
$ http-music-crawl-local /example/path > playlist.json
.RE
.fi
.PP
Open a specific playlist file:
.PP
.nf
.RS
$ http-music --open playlist2.json
$ http-music -o playlist2.json
.RE
.fi
.PP
Only play music under a specific group:
.PP
.nf
.RS
$ http-music --clear --keep 'Cool Author 72'
$ http-music -c -k 'Cool Author 72'
$ http-music -c -k 'Cool Author 72/Good Album'
.RE
.fi
.PP
Don't play music under a specific group:
.PP
.nf
.RS
$ http-music --remove 'Bad News'
$ http-music -r 'Bad News'
$ http-music -x 'Bad News'
.RE
.fi
.PP
Don't play music under a specific group, except for a sub-group:
.PP
.nf
.RS
$ http-music --remove 'Bad News' --keep 'Bad News/Irony'
$ http-music -x 'Cool Author 72' -k 'Cool Author 72/Good Album'
.RE
.fi
|