「歌詞を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.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年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の動作確認を説明しました。