背景
年始から朝渋という渋谷の朝活コミュニティにJOINしました。
また気まぐれでApple MusicからSpotifyに移行してみました。
ところがここでiPhoneの目覚ましにアーティスト音源が使えなくなってしまったことに気づき、ひどく落胆しました。
本稿ではこの問題を解決するためのSpotify目覚まし時計を実装します。
スマホだとベッドから近くて止めてしまうので、机上に佇むiMacくんに吠えてもらいます。
Spotipy
SpotipyはSpotify Web APIのための軽量のPythonライブラリです。 Spotipyを使用すると、Spotifyのプラットフォームによって提供される音楽データのすべてにアクセスすることができます。名前がややこしいですが語感が可愛いので許します。
使い方は非常に簡単です。同じく語感の可愛いpipちゃんでそのままインストールできます。
pip install spotipy
#Spotify側の作業
次にSpotify側からClient IDとClient Secretを持ってきます。
Spotify for DeveloppersのDASHBOARDでCREATE A CLIENT IDします。
すると次のような画面が現れるので適当に入力します。
NEXT、SUBMITするとDASHBOARDにアプリケーションが追加されます。
このアプリページを開くとClient IDとClient Secretがあるのでせっせと回収します。水色のところです。
次に同じくSpotify for DeveloppersのCONSOLEからPlayerのエンドポイント/v1/me/player/devicesを選択します。
GET TOKENして
REQUEST TOKEN、TRY ITすると右下にdevicesという辞書が表示されます。ここのidを引っこ抜いておきます。
最後に同じくSpotify for DeveloppersのCONSOLEからPlayerのエンドポイント/v1/me/player/playを選択します。ここでも同じようにトークンを発行してこれも引っこ抜きます。この時点で
- Client ID
- Client Secret
- device id
- token
の4つが手元にあるか確認してください。確認できたらSpotify側の作業は終了です。
Python側の作業
作業と言っても数十行のプログラムを記述するだけです。
標準入力で起床時間を設定し、その時刻になったら指定したデバイスで、標準入力で指定した曲が再生されます。
from spotipy.oauth2 import SpotifyClientCredentials
import spotipy
import time
print("明日は何時に起きますか?")
print("HOUR:")
HOUR = int(input())
print("MIN:")
MIN = int(input())
print("何の曲で起きますか?")
print("URI:")
SONG = str(input())
client_credentials_manager = SpotifyClientCredentials("Client ID", "Client Secret")
sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
token = "token"
sp = spotipy.Spotify(auth = token)
while True:
now = time.localtime()
if now.tm_hour == HOUR and now.tm_min == MIN:
sp.start_playback(device_id = "device id", context_uri = SONG)
break
以上です。ターミナルから実行して起きたい時分を入力します。
Spotifyから鳴らしたいアルバムのURI(アートワークの横の...からシェア>Spotify URIをコピーで拾えます)を入力して完成です。
明日の朝は7時半にbohemianvoodooのAdria Blueで起床します!おやすみ!