0
0

More than 1 year has passed since last update.

Last.fm の再生回数ランキングをもとに YouTube Music のプレイリストを作る

Posted at

やりたいこと

Last.fm で曲の再生回数を記録している。

Last.fm は API を提供しており、任意の期間で再生回数ランキングを出力することができる。
これを使って、YouTube (YouTube Music) のプレイリストを作りたい。

リポジトリ

実装のポイント

Last.fm で曲単位の再生回数ランキングを取得するには getWeeklyTrackChart

Weekly とあるがパラメータで対象期間を自由に設定できるため Weekly にとらわれずに利用できる。
なお、Docs にもあるが Auth は不要なので API Key さえあれば利用可能。

Last.fm の シークレット (API Key) をどう埋め込むか

コードにべた書きするのは避けたい。
シークレットを返すサーバーを別途立てるとか、あるいはクラウドのパラメータストアサービスを使うなど考えられるが、少し大袈裟な気もする。
ここでは GitHub Actions + GoReleaser を使って ldflags からシークレットを注入することにした。
シークレットの値自体は GitHub Actions の Secrets に格納しておき、GoReleaser でバイナリ生成と GitHub の Releases にアップ。

YouTube Music 向けの動画を探す

YouTube Music 専用の API は公式からは提供されていないため、YouTube の API (Data API v3) を使う。
YouTube Music でいうところの楽曲は Art Track と呼ばれており、これを優先的に検索できるようにしたい。(音質が優れているため)

普通の動画と区別する方法がわからなかったため、以下どちらかを満たす動画は Art Track と判定するようにした。

  • チャンネル名の末尾に「- Topic」がある
  • 説明の冒頭に「Provided to YouTube」がある

結果

image.png

こんな具合にプレイリストを作ることができた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0