「歌詞を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の動作確認を説明しました。