shellTube icon indicating copy to clipboard operation
shellTube copied to clipboard

💀 Shell YouTube client. (🪞)

=============================================================================== SHELLTUBE Browse YT with a hood on

shelltube is a simples shell-script that lets you browse Youtube-- searching for playlists, videos, channels, showing their metadata (including items on playlists and channels, etc), with no weird dependencies.

It searches YouTube quickly, entirely without a captive UI.

shelltube is written in pure shell; its only dependencies are any modern shell (pdksh, bash, zsh), lynx, and curl/wget/ftp.

Your terminal should accept ANSI color-codes, and be ≥79chars wide, for best experience.

shelltube isn't for downloading videos-- it's for browsing for them. Use youtube-dl or something for that. That's not my job! :P

2024 note: This is quite old, and is almost certain not to work!


INSTALLATION

Just place "ytlib.sh" in either the CWD, ./lib/ytlib.sh, /usr/lib/, or /usr/local/lib/

Then put gendl and yt in your $PATH. /usr/local/bin/ is nice (IMO), or ~/bin/, or /usr/bin. Whatever floats your boat, lad.

Profit!


EXAMPLES

yt video search "wixoss op 1"
yt v s "wixoss op 1"

yt playlist search "my hero academia ops"
yt p s "my hero academia ops"

yt playlist title "PLY4D6ucZdLWC_yM3R_A1Hj9fAXZO_rSeK"
yt p t "PLY4D6ucZdLWC_yM3R_A1Hj9fAXZO_rSeK"

yt playlist list "PLY4D6ucZdLWC_yM3R_A1Hj9fAXZO_rSeK"
yt p l "PLY4D6ucZdLWC_yM3R_A1Hj9fAXZO_rSeK"

yt video author "https://youtube.com/watch?v=yu0HjPzFYnY"
yt v a "https://youtube.com/watch?v=yu0HjPzFYnY"

yt video desc "https://youtube.com/watch?v=yu0HjPzFYnY"
yt v d "https://youtube.com/watch?v=yu0HjPzFYnY"

yt video date "https://youtube.com/watch?v=yu0HjPzFYnY"
yt v D "https://youtube.com/watch?v=yu0HjPzFYnY"

USAGE

YT

yt is the shelltube script-- it's executed with a subcommand [arguments] system, like apt or git.

USAGE: yt subcommand action [arguments]

The subcommands are: * (v)ideo * (p)laylist

They refer to actions related to videos and playlists, respectively.

Every subcommand and action thereof supports "-h" and "--help".

YT VIDEO

yt video is for anything related to videos-- here it is:

USAGE: yt (v)ideo [action]

Here are the actions:

SHORT	LONG      	ARGUMENTS
----------------------------------------------
s	search  	[-UIcsmb] search_query
t	title    	url/id
d	desc    	url/id
v	views    	url/id
a	author   	[-nU] url/id
D	date    	url/id

The only actions with weird arguments are --search and --author: * normally, author returns the channel URL and name on one line * "author -n" returns only the name * "author -U" returns only the URL

* normally, `search` prints results in the "big" format (title on
  one line, other metadata on second line)
* "search -c" for "compact" format, etc.
* "-c", "-s", "-m", "-b", for "compact", "small", "medium", and "big",
  respectively
* "-U" and "-I" are special-- they print the URL and the ID *only*,
  respectively. Good for making playlist files.

YT PLAYLIST

yt playlist is for anything related to playlists-- here it is:

USAGE: yt (p)laylist [action]

Here are the actions:

SHORT	LONG      	ARGUMENTS
----------------------------------------------
s	search  	[-csmb] search_query
l	list    	[-csmb] url/id
t	title    	url/id
v	views    	url/id
a	author    	[-nu] url/id
D	date    	url/id

The only actions with weird arguments are search, list and author: * author acts just like "video author" * search acts just like "video search" * list acts just like search, with [-UIcsmb]

GENDL

There is another script that comes with shelltube (which it uses extensively: gendl.

gendl can download files on a system that has at least one of these: * ftp * wget * curl

... to stdout or to a file.

Both yt and ytlib.sh require gendl-- so make sure they're both in the same directory (or, at least, that gendl is in your $PATH)


BORING STUFF

License is in COPYING.txt (GNU GPLv3~! <3) Author is Jenga Phoenix [email protected] Sauce is at https://hak.xwx.moe/jadedctrl/shelltube