Skip to content

A Telegram bot that provides song and album lyrics along with their annotations on Genius.

License

Notifications You must be signed in to change notification settings

allerter/geniust

Repository files navigation

GeniusT logo Genius T

status GitHub release (latest by date) build Test Coverage Code style: black Imports: isort Telegram Link

A Telegram bot that provides music info and lyrics from Genius.

Features

Genius/Music Info

GeniusT allows searching for songs, albums, artists, users, and song lyrics. Furthermore, users can access tracks in albums, information about those tracks, view the artist info of those tracks, and about any information that one could want! All entities (albums, artists, and songs) are deep-linked; for example, users can view the artist of a song just by clicking on the artist's name, and from there they can go on to viewing that artist's songs, albums, the features on those songs and all that can be discovered!

Genius Account

Using Genius's OAuth2, users can easily log into Genius in the bot and view their account's details (including unread messages), and even vote on album/song descriptions when viewing them.

GeniusT Shuffle

GeniusT Shuffle logo

GeniusT offers a basic genre-based music recommendation system that offers users song recommendations from about 20K songs based on their favorite genres and artists. Users can get their preferences from their Genius or Spotify account or enter them manually. By logging into their account through OAuth2, GeniusT will try to generate user's preferences based on their account activity. If the user chooses to go the manual route, they either input their age (and let the bot guess the genres) or select them manually. Afterward, users can also add their favorite artists from the available ones or finish without any favorite artists (each user must have at least one favorite genre). Available genres:

Fore more information about the recommender itself refer to the GeniusT Recommender repository.

Users can start using shuffle by sending the /shuffle command. After submitting their genres and adding their favorite artists, their preferences are saved. From then on, sending /shuffle will return 5 recommended songs based on their preferences. For any of the 5 songs, if they can be found on Genius, they'll be deep-linked to be viewed. There also be deep-links for preview and download URLs if the song has a preview URL for song previews or a download URL or ISRC ID for downloads. The bot will send the full song if the song has a direct download URL, but if it has an ISRC ID, users will be directed to another bot.

Song Lyrics

The bot provides song lyrics using Telegram messages. The annotated fragments of songs are linked to their annotations which are uploaded by the bot in a separate channel meant for annotations. Meaning when users view lyrics for a song, they can click on highlighted lyrics that will lead them to the annotations right there in Telegram.

Currently annotated lyrics are only open to the developers.

Album Lyrics

As for the albums, users can either view the tracks and their lyrics one-by-one (as they normally would) or they could have the lyrics of all the tracks all in one place in three formats:

  • PDF: A PDF containing the album description, a table of contents containing song titles linked to the page of the song lyrics, and the lyrics of all the songs in the album.
  • ZIP: A ZIP file containing TXT files of each song's lyrics.
  • TELEGRA.PH: Returns a link to a telegra.ph page which in turn has the album's description and links to other telegra.ph pages that each has the description and the lyrics of a song. This feature isn't maintained, so some things might look off.

Currently this feature is only open to the developers.

Lyrics Customizations

The bot allows users to choose between including and excluding the annotations from the lyrics. Users can also choose not to include ASCII or non-ASCII characters in the lyrics. One of the uses of this could be to remove English lines from songs that have been translated into Arabic or Persian so that only the translated lines remain.

Telegram Features

Users can search Genius navigating the inline menu which can be accessed using the /start command. Alternatively, you could directly reach to the desired feature using commands:

  • /start start the bot
  • /album: search for an album
  • /artist: search for an artist
  • /song: search for a song
  • /song_by_lyrics: search for a song by lyrics
  • /user: search for a user
  • /lyric_card: get a lyric card by providing lyrics
  • /lyric_card_custom: build a custom lyric card
  • /shuffle: Get music recommendation
  • /bot_language: set bot language
  • /login: log into Genius/Spotify
  • /cancel: cancel the current task
  • /donate: donate to the developers
  • /help: more info about the bot
  • /contact_us: send us a message

Users can also perform searches by using the inline search feature. For example:

  • searching songs: @genius_the_bot .song we will rock you
  • searching albums: @genius_the_bot .album hotel diablo
  • searching artists: @genius_the_bot .artist Queen
  • searching users: @genius_the_bot .user lemonade
  • getting lyric cards: genius_the_bot .lyric_card we will rock you

About

A Telegram bot that provides song and album lyrics along with their annotations on Genius.

Topics

Resources

License

Stars

Watchers

Forks

Languages