Download song lyrics and metadata from Genius.com 🎶🎤
LyricsGenius 3.0.0 is now available.
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.OAuth2
class to help with OAuth2 authentication.PublicAPI
class to allow accessing methods of the public API (genius.com/api). Check this page for a list of available methods.Album
type and the genius.search_album()
method.genius.tag()
method to get songs by tag.upvote_annotation
).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
.""
. You can check to see if a song is instrumental using Song.instrumental
.get_
(genius.get_song
is now genius.song
).genius.lyrics()
to allow use by users. It accepts song URLs and song IDs.save_lyrics()
will save songs with utf8
encoding when extension='txt'
.Genius()
will check for the env var GENIUS_ACCESS_TOKEN
.Sphinx
to 3.3.0new_div
inside else
body to avoid getting new_div
if old_div
is present.PR: #154
tox
and flake8
. The docs codes also have their own tests.new_div
).PR: #153
This release is a result of the substantial cleanup work in PR #69.
Improvements:
api.py
search_song
search_genius_web
, the search endpoint used on Genius.comsearch_artist
to use the search_genius_web
endpoint, improving reliability and robustness of search resultssearch_artist
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!
Changes:
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.
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
Following Peter Downs's tutorial for publishing a project on PyPI. So this tag gets the package ready for that process.