Full-featured POSIX shell YouTube client.

Jade Levesque 507a11e206 Fixed README 1 week ago
lib 6b06055eb8 Start re-write-- mainly lib/stic progress 1 week ago
LICENSE 52dc4ca0af Added license 3 months ago
Makefile 2fa5a7d3b5 Basic config support 6 months ago
README 507a11e206 Fixed README 1 week ago


OK, I'm re-writing shelltube.
It worked, but it was inflexible and total shit.
Yes, the dream is still POSIX. :)
Here is a general plan:

./shelltube Wrapper script for everything else. Slim and simple
./lib/yts Searches YT, outputs a comp-friendly list of results
./lib/ytc Lists videos on a YT channel/user-page
./lib/ytd Downloads/streams a YT video
./lib/stc Helps configure shelltube
./lib/stic Helps with cli arguments
./lib/sti Helps with trapped user input

Planned inputs & details:
shelltube [command(s) to run after startup]
$ yts query [-o $outfile]
* Prints the results in the following format:
artist \t name \t length (?) \t ID
$ ytc query [-o $outfile]
* Prints the results in the following format:
name \t length (?) \t ID
$ ytd URL||ID [-o $outfile||-s]
$ stc [-h||--home $homedir]
* Just creates/edits $HOME/.config/shelltube
$ stic "$@" "[[syntax]] shortargf longargf argf
* Outputs commandline args to the specified files
for easier parsing
* dargf contains args like -c, -o, --config, etc.
* argf contains everything else, like 'filename' etc.
* [[syntax]] consists of something like this:
* Does it look terrible painful? Let me show you the anatomy of
one of those listed potential arugments:
* In a dashed arg (--config or -c), the syntax is this:
(1|0=no subsequent arg 1=subs. arg|short form|long form)
The "subsequent arg" means like 'file' in "--config file"
* In a non-dashed arg (infile or outfile), the syntax is this:
(0|position in input|name)
"Position in input" refers to the position it has in relation
to other non-dashed args.
The "name"

I'm working on stic riggt now. I think it'll really make shelltube (and
probably any other shell script I'll ever write!) a lot better and more