📚 WordFinder

🏛️ Current State

This repository has been created to make analysis about lyrics of songs, the goal is to provide tool which will be able to:

  • ✔️ Search 600 songs from Eminem in 3 seconds. on Ryzen 7 5800X and 500MB/s isp

  • ✔️ Find all songs by artist without banned words, could be used to find “family friendly” music without some kind of words

  • ✔️ Provide list of keywords in many ways in ex. these keywords are going to be used as arguments

  • ❌ Find occurrence of specific words and calculate in which songs the word were most used.

🚀 Future plans

  • Caching in PostgresSQL and / or Redis
  • Creating API for clients so it will be hosted

🔨 Build & Run

make build

In order to access Genius you will need .env file with credentials

touch .env

Paste template:

export USER_AGENTS="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36,Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36,Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"
export GENIUS_RAPID_API_HOST=genius.p.rapidapi.com
export GENIUS_RAPID_API_KEY=[OBTAIN IT FROM RAPIDAPI.COM]
export GENIUS_HOST=genius.com
export GENIUS_API_HOST=genius.com/api

export REQUEST_TIMEOUT=10s
export MAX_CHANNEL_BUFFER_SIZE=30

in place of [OBTAIN IT FROM RAPIDAPI.COM] put api token from https://rapidapi.com/brianiswu/api/genius/

💥 ./genius-cli 💥

🪧 Usage

This is generic –help view, you may use it with other commands for more details for ex.

genius-cli --help
genius-cli command-name --help

NAME:
   genius-cli - genius-cli --help

USAGE:
   genius-cli [global options] command [command options] [arguments...]

COMMANDS:
   songs-by-artist-without-banned-words  Will return list of songs which does not contains any of --keywords or --keyword
   help, h                               Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h  show help (default: false)

🚫🍆 genius-cli songs-by-artist-without-banned-words –help

yes, this name sucks, give me better one pls.
This command will output list of songs without provided words

Simplest Usage

genius-cli songs-by-artist-without-banned-words --keywords-file="swears.txt"

The swears.txt file should contain words separated by new lines or commas(“,”)

NAME:
   genius-cli songs-by-artist-without-banned-words - Will return list of songs which does not contains any of --keywords or --keyword

USAGE:
   genius-cli songs-by-artist-without-banned-words [command options] [arguments...]

OPTIONS:
   --query value, -q value                  --query="the_name"
   --keyword value, --kwd value             --keyword="the_keyword"
   --keywords value, --kwds value           --keywords="the_keyword","another_keyword"
   --keywords-file value, --kwds-f value    --keywords-file="keywords.txt"
   --keywords-files value, --kwds-fs value  --keywords-files="swears.txt,drugs.txt"
   --help, -h                               show help (default: false)

GitHub

View Github