LyricsGenius Versions Save

Download song lyrics and metadata from Genius.com 🎶🎤

3.0.0

3 years ago

LyricsGenius 3.0.0 is now available.

New

  • All requests now go through the Sender object. This provides features such as retries genius.retries and handling HTTP and timeout errors. For more info have a look at the guide about request error handling.
  • Added OAuth2 class to help with OAuth2 authentication.
  • Added PublicAPI class to allow accessing methods of the public API (genius.com/api). Check this page for a list of available methods.
  • Added the Album type and the genius.search_album() method.
  • Added the genius.tag() method to get songs by tag.
  • All API endpoints are now supported (e.g. upvote_annotation).
  • New additions to the docs.

Changed

  • GENIUS_CLIENT_ACCESS_TOKEN env var has been renamed to GENIUS_ACCESS_TOKEN.
  • genius.client_access_token has been renamed to genius.access_token.
  • genius.search_song() will also accept song_id.
  • Lyrics won't be fetched for instrumental songs and their lyrics will be set to "". You can check to see if a song is instrumental using Song.instrumental.
  • Renamed all interface methods to remove redundant get_ (genius.get_song is now genius.song).
  • Renamed the lyrics method to genius.lyrics() to allow use by users. It accepts song URLs and song IDs.
  • Reformatted the types. Some attributes won't be available anymore. More info on the types page.
  • save_lyrics() will save songs with utf8 encoding when extension='txt'.
  • Using Genius() will check for the env var GENIUS_ACCESS_TOKEN.

Other (CI, etc)

  • Bumped Sphinx to 3.3.0

2.0.1

3 years ago
  • Switched to using a regular expression instead of iterating BeautifulSoup's tags manually. The regular expression has better performance.
  • Moved getting new_div inside else body to avoid getting new_div if old_div is present.

PR: #154

2.0.0

3 years ago
  • Added online docs available on Read the Docs
  • Added tests for code styling which use tox and flake8. The docs codes also have their own tests.
  • Fixed finding instances where the lyrics section on the new song page wasn't found (the new_div).

PR: #153

1.0.0

5 years ago

This release is a result of the substantial cleanup work in PR #69.

Improvements:

  • Makes substantial clean-ups to API and Genius classes within the api.py
  • Uses the proper exception for catching Timeouts
  • Removes drifting code blocks from search_song
  • Adds support for search_genius_web, the search endpoint used on Genius.com
  • Overhauls search_artist to use the search_genius_web endpoint, improving reliability and robustness of search results
  • Improves the while loop criteria for search_artist
  • Updates README style
  • Minor clean-ups to the song.py and artist.py files (additional work needed)

Additionally, PR #70 introduced the correct Python approach for handling input from the command line.

Have at it!

0.5

5 years ago

Changes:

  • User-Agent is now "LyricsGenius"
  • Removing section headers in lyrics is optional now
  • Add option to heuristically remove non-songs (tracklists, credits, etc.)
  • Add the _clean_str() method
  • Add a couple tests
  • General bug fixes and clean-ups

0.4.1

6 years ago

At some point I must have re-introduced a bug that made searching for songs case sensitive. This release fixes that bug. This release also switches the PyPI README file from markdown to RST because PyPI requires RST for proper formatting.

0.4

6 years ago

This release should be much more stable with Unicode issues (as identified in #21 and #24).

I've also decided to remove Python 2.x support. It just wasn't playing nice enough with Unicode.

John

0.1

6 years ago

Following Peter Downs's tutorial for publishing a project on PyPI. So this tag gets the package ready for that process.