A POSIX script that helps you search videos platforms (YouTube , PeerTube , BitChute, LBRY and TED Talks) with command line easily.
fzf
/dmenu
/rofi
- menu & inputjq
- JSON parsingawk
- text processingmpv
- video playeryoutube-dl
git clone https://github.com/MyOS-ArchLinux/vids
cd vids/
sudo install -m755 vids /usr/local/bin/vids
Usage: vids [OPTIONS] query
Options:
General Options:
-h, --help Print this help text and exit.
-v, --version Print program version and exit.
Search:
-p, --platform
ytrending Youtbe Trending
youtube Youtbe
peertube PeerTube
bitchute BitChute
lbry LBRY
tedtalk TED Talks
-ytr, --ytrending An alias for -p ytrending
-yt, --youtube An alias for -p youtube
-pt, --peertube An alias for -p peertube
-bc, --bitchute An alias for -p bitchute
-ted, --tedtalk An alias for -p tedtalk
-lb, --lbry, --odysee An alias for -p lbry
--piped Use Piped; a privacy-friendly YouTube frontend.
--no-piped Do not use Piped.
--nsfw Include nsfw videos. (WIP)
--no-nsfw Do not include nsfw videos. (WIP)
Menu Options:
-m, --menu MENU
fzf supports multi-select with tab/shift-tab.
dmenu doesn't supports multi-select.
rofi supports multi-select with shift-enter.
--fzf An alias for --menu fzf
--dmenu An alias for --menu dmenu
--rofi An alias for --menu rofi
Player Options:
-P, --player COMMAND Player to feed urls to.
-a, --player-args ARGS Customize the arguments which are put together with the value of --player to create a command to execute.
-e, --exit don't prompt selector again after the player close
Scripting Options:
--print-json print results json to stdout and exit.
--print-link print results links to stdout and exit.
--print print results to stdout and exit.
Environment variables:
VIDS_DEFAULT_MENU Default menu to use. (default: rofi -> dmenu -> fzf)
VIDS_DEFAULT_PLATFORM Default platform to use. (default: youtube)
VIDS_DEFAULT_PLAYER Default video player to use. (default: mpv)
VIDS_DEFAULT_PLAYER_ARGS Default arguments which are passed to the player. (default: empty)
VIDS_SHOW_NSFW Always include NSFW videos (default: false)
VIDS_YOUTUBE_PIPED Use Piped; the privacy-friendly YouTube frontend. (default: false )
VIDS_PIPEDAPI_URL Piped Instance API URL. (default: https://pipedapi.kavin.rocks )
VIDS_PEERTUBE_URL PeerTube Instance URL. (default: https://sepiasearch.org )
Improve me on GitHub:
https://github.com/MyOS-ArchLinux/vids
-
Search Youtube With fzf menu
vids --platform youtube --fzf Music
-
Search LBRY and print results to stdout
vids --lbry --print Music
-
Get a list of trending videos on youtube but don't expose your ip to youtube. (Use Piped)
vids --ytrending --piped
-
Scripting : Search PeerTube and extract titles
vids --peertube --print-json music | awk '{if (NR!=1) {print}}' | jq -r ".[]|.title"
You may want to install mpv-youtube-quality to change video quality on the fly , and mpv_sponsorblock or mpv_sponsorblock_minimal to skip sponsored segments of YouTube videos automatically.