A CLI web search tool.
Project description
Cws
CLI web search is a CLI search tool that shows the first N results from select search engines.
This started out because I wanted a way to play youtube video's in mpv without needing to open a browser first, because then why not watch it in my browser in the first place. I did find some similar projects but they just opened the results in my browser instead which was once again defeating the point.
The main use-cases are:
- Searching and fetching youtube/google/'whatever gets implemented' search results from the command line
- Executing default actions per search provider with the -x flag (see configuration), like opening youtube results in mpv
- Piping results to external commands to open/play results like your web browser or mpv for youtube
it heavily relies on rapidapi endpoints for now. Which means you need to register and configure personal API tokens for this to work. See the configuration section below for more info.
Development is done on irregular intervals, while heavily distracted so expect nothing. This is currently a first usable version, that will probably change a lot. Core functionality should stay about the same though.
Todo (for now):
- Write tests
- Option to list providers and generate cli-docs for them
- Make it possible to configure a default provider
- -c flag that shows only 1 result and copies that
- Interactive mode that allows selection of result and applying an action like copy or open
- Create a more generic way to define search providers. Like yaml files. So google.py and youtube.py can be replaced by them.
- Add more search providers
- Possibly add some webscraping fallback for when no api's are configured or free limits are reached
Installation
$ pip install cws_clisearch
Configuration
Configuration is done through .yml files either in $HOME
or $XDG_HOME/cws/
.
There's 2 different config files, one mandatory and one optional:
- .cws_tokens.yml (mandatory)
- .cws_config.yml (optional)
.cws_tokens.yml
This is where your rapidapi tokens are loaded from.
Example:
google: "$token" # Get it from https://rapidapi.com/apigeek/api/google-search3/
youtube: "$token" # Get it from https://rapidapi.com/marindelija/api/youtube-search-results/
.cws_config.yml
This is where you override default settings of cws.
Example with defaults shown:
provider:
youtube:
default_action: 'mpv'
google:
default_action: 'firefox'
Usage
See cws -h
for general usage information.
For now Google is the default search provider. The -x option implies -u and -n1, then pipes that output to whatever you want.
It's also safe to manually use the -u and -n1 options to pipe results. This does not work with mpv, just like echo '$youtube_url' | mpv
wouldn't. Use -x as a work-around.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cws_clisearch-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84d7fc812c4b4c8547d17b43d4ff5ed1253f66a0718715f4adf5c93fea2b2578 |
|
MD5 | e634fe5dfc725eb779b058647b7a3790 |
|
BLAKE2b-256 | 896f0f7da056fc2ee53ddc5955d1b4c2d03745e2aafceffea8c58ba822073c69 |