Pythonで歌詞データを取得できるLyricsGeniusのインストール

Pythonで歌詞データを取得できるLyricsGeniusのインストール プログラミング

「歌詞をPythonを使って自動的に収集したい」
「Genius APIをPythonから利用したい」

本記事の内容

  • LyricsGeniusとは?
  • LyricsGeniusのシステム要件
  • LyricsGeniusのインストール
  • LyricsGeniusの動作確認

それでは、上記に沿って解説していきます。

LyricsGeniusとは?

LyricsGeniusとは、Genius.comのAPI用Pythonクライアントです。
Genius APIについては、次の記事で説明しています。

Pythonを使って歌詞を取得したい場合、LyricsGeniusが効果的です。
Genius APIをPythonで利用するなら、LyricsGenius一択と言えます。

以上、LyricsGeniusについて説明しました。
次は、LyricsGeniusのシステム要件を説明します。

LyricsGeniusのシステム要件

現時点(2022年7月末)でのLyricsGeniusの最新バージョンは、3.0.1となります。
この最新バージョンは、2021年4月19日にリリースされています。

サポートOSに関しては、公式には以下に対応しています。

  • Windows
  • macOS
  • Linux

サポート対象となるPythonのバージョンは、Python 3と記載されています。
ただし、古いPythonは使わないでおきましょう。

古い新しいという判断基準は、以下のPython公式開発サイクルを用います。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年10月4日2026年10月

Python 3.6は、2021年末でサポート期限が切れています。
そのため、Python 3.7以降を利用しましょう。

以上、LyricsGeniusのシステム要件を説明しました。
次は、LyricsGeniusのインストールを説明します。

LyricsGeniusのインストール

検証は、次のバージョンのPythonで行います。

$ python -V
Python 3.10.2

まずは、現状のインストール済みパッケージを確認しておきます。

$ pip list
Package    Version
---------- -------
pip        22.2
setuptools 63.2.0
wheel      0.36.2

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、LyricsGeniusのインストールです。
LyricsGeniusのインストールは、以下のコマンドとなります。

pip install lyricsgenius

LyricsGeniusのインストールは、それほど時間はかかりません。
終了したら、どんなパッケージがインストールされたのかを確認します。

$ pip list
Package            Version
------------------ -----------
beautifulsoup4     4.11.1
certifi            2022.6.15
charset-normalizer 2.1.0
idna               3.3
lyricsgenius       3.0.1
pip                22.2
requests           2.28.1
setuptools         63.2.0
soupsieve          2.3.2.post1
urllib3            1.26.10
wheel              0.36.2

LyricsGeniusは、それなりの数のパッケージに依存しています。
インストールでトラブルになりたくない場合は、Python仮想環境を利用しましょう。

Python仮想環境については、次の記事で解説しています。

以上、LyricsGeniusのインストールを説明しました。
次は、LyricsGeniusの動作確認を説明します。

LyricsGeniusの動作確認

LyricsGeniusの動作確認には、Genius APIのトークンが必要となります。
Genius APIにおけるトークンの取得については、次の記事で説明しています。

上記記事を参考にして、次のAPIのトークンを用意します。
そして、そのトークンを用いて次のコードを実行します。

import lyricsgenius

token = 'APIのトークン'

genius = lyricsgenius.Genius(token)
artist = genius.search_artist("ミスチル", max_songs=10)

song = genius.search_song("エソラ", artist.name)
print(song.lyrics)

上記コードを実行した結果は、以下。

Searching for songs by ミスチル...

Changing artist name to 'Mr.Children'
Song 1: "HANABI"
Song 2: "365日 (San-byaku-roku-juu-go-nichi)"
Song 3: "GIFT"
Song 4: "Tomorrow never knows"
Song 5: "Sign"
Song 6: "HERO"
Song 7: "Documentary Film"
Song 8: "Over"
Song 9: "Brand New Planet"
Song 10: "旅立ちの唄 (Tabidachi no Uta)"

Reached user-specified song limit (10).
Done. Found 10 songs.
Searching for "エソラ" by Mr.Children...
Done.
エソラ (Esora) Lyrics[Mr.Children「エソラ」歌詞]

二足歩行してる空っぽの生きもの
無意識にリズムを刻んでいる
フルボリュームのL-Rに
萎んでた夢が膨らんでく

〜省略〜

サヨナラ告げる度に
Oh Rock me baby tonight
さぁ踊ろうよ ボリュームをもっと上げるんだEmbed

歌詞部分は、途中で省略しています。
歌詞には著作権があるので、全部は載せていません。

コードについて、説明をしておきます。
最初に、アーティスト検索を実行しています。

「ミスチル」を「Mr.Children」に変換して検索していますね。
その際に、最大10曲まで該当するアーティストの楽曲を表示しています。

これにより、意図した歌手かどうかを判別できます。
そして、検索にヒットした「artist」の「name」で楽曲を絞り込んでいます。

最後に、検索できた「song」の「lyrics」(歌詞)を表示しています。
これが、歌詞部分の表示となります。

以上、LyricsGeniusの動作確認を説明しました。

タイトルとURLをコピーしました