Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Spotifyで再生した曲を、再生回数順に並べる

はじめに

普段Spotifyで音楽を聞いていて、再生回数順に並べたいな〜と思うときがあるのですが、再生回数自体アプリでは見られないんですよね。

その代わりに、SpotifyのPC版サイト(https://www.spotify.com/jp/)
で、JSON形式のデータとして、視聴履歴などをダウンロードすることができます。

そこで、自分のデータをダウンロードして、Pythonでカウントして表示してみました。

ダウンロードの手順
プロフィール > プライバシー設定 > お客様のデータのダウンロードからボタンをクリック。
メールでダウンロードリンクが送られてきます。最長30日かかるらしいので、気長に待ちましょう。

標準ライブラリしか使ってないので、プログラミング分からない人でもPCにPythonさえ入っていれば、コピペして実行すれば使えると思います。

自分用に書いたので、動かなかったらすみません。

コード

count.py
import json
import collections

# jsonデータの読み込み
# file_pathには、自分のStreamingHistoryファイルを指定してください。
with open('file_path') as f:
    d = json.load(f)

list = []

print("全体検索しますか? y/n")
search_all = str(input())

print("何回以上を表示しますか?")
count = int(input())

# 曲名の取り出し&リストに追加
# 全体検索の場合
if search_all == "y":
    for i in d:
        list.append(i['trackName'])
# 指定検索の場合
elif search_all == "n":
    print("アーティストを入力してください")
    artist = str(input())
    for i in d:
        if(i['artistName'] == artist):
            list.append(i['trackName'])

# 出現回数順に要素を取得
c = collections.Counter(list)
c_list = c.most_common()

print("------------")
print("曲名, 再生回数")

# 再生回数が一定以上のものを表示する
for i in c_list:
    if i[1] >= count:
        print(i)

表示結果

スクリーンショット 2020-06-24 18.24.25.png

Pythonはさくっと色々できて便利ですね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away