とりあえず、以下の手順で、「過去に thumbs up した曲を知る」ことはできたのでメモ。
- 「高く評価」のプレイリストの中身を、一旦別のプレイリストに登録。(「プレイリストをプレイリストに追加」でできた)
- 既存の thumbs up をいくつか解除
- 「高く評価」プレイリストをリロード
「The 運用回避」って感じだけど、まあ、何とか耐えられるかなー、という感じ。ちなみに、250曲ほどオーバーランしてた。
いろいろ調べてみて、GPM の非公開API をたたく Python のライブラリとかも試してみたんだけど、結局上手くいかなかった。get_promoted_songs()を見たときは、これはいけるんちゃうかと思ってテンション上がったけど、やってみたら「高く評価」のプレイリストの中身がそのまま返ってきた(949件で打ち切られてた)だけだった。あと、get_all_songs()
だと「ライブラリに追加」した曲が全部取れるっぽい。なので、気に入った曲を thumbs up するだけじゃなくて、そのアルバムをこまめにライブラリに入れていくといい(というかそう使われることを想定してサービスが作られている)んだろうね。
gmusicapi: an unofficial API for Google Play Music — gmusicapi 11.1.1 documentation
溢れちゃっても削れば戻るってことは、オートプレイリストの「高く評価」は、where rating > 0 order by lastRatingChangeTimestamp limit 1000
みたいなクエリの結果を見せてるだけなのかな。だとすると、バックエンドはやっぱ BigQuery なんだろか。個別の曲が持つ属性を見ると、直接rating > 0
とかplayCount >= 4
とかのクエリが叩ければ幸せになるのになー、と思ってしまう。でも、さっきのライブラリ追加をきっちりやってれば get_all_songs()
の結果から取得できちゃうのかな。大量に登録してると重くなって怒られそうだけど。search っていうカテゴリもあるけど、これは Web画面のフリーワード検索と同じことができるだけで、こういう内部属性指定のクエリを書けるわけではなさそう。
どうでもいいけど、「自分な好きな曲がわからなくなって google のサービスで検索したい」って、なんかちょっとディストピアちっくな未来感があっていいなー、とか思った。