Skip to main content

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):

  • -c flag that shows only 1 result and copies that
  • Create a more generic way to define search providers. Like yaml files. So google.py and youtube.py can be replaced by them.
  • Interactive mode that allows selection of result and applying an action like copy or open
  • 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/

Use the --list-providers option to list all posibilities.

.cws_config.yml

This is where you override default settings of cws.

Example with defaults shown:

default_provider: 'google'
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

cws_clisearch-0.2.1.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

cws_clisearch-0.2.1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file cws_clisearch-0.2.1.tar.gz.

File metadata

  • Download URL: cws_clisearch-0.2.1.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for cws_clisearch-0.2.1.tar.gz
Algorithm Hash digest
SHA256 eba0da5f3ba307de1b0ea22af1b50279d1204f7446c4f7a623f82d05951c400e
MD5 01fa6968e9fc623de3574c2f6e90c920
BLAKE2b-256 b5ced09825ce137df7d8ffaf6c5e417a6c7529d2a25ac46f951dd7f3fc9eb2ce

See more details on using hashes here.

File details

Details for the file cws_clisearch-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: cws_clisearch-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for cws_clisearch-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6be9045eb5b32ff29b7dc37eee076e8162fc632f19db5ee8c903ca46659daf11
MD5 626d31daebcee92f36229bfeac6c2382
BLAKE2b-256 b5e5df34fed565ac51830c439875f82dad05118967ed86e3d0dde8c88ed72e61

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page