11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Wake Up Spotipy !

Last updated at Posted at 2019-01-31

背景

年始から朝渋という渋谷の朝活コミュニティに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します。
スクリーンショット 2019-02-01 0.30.48.png
すると次のような画面が現れるので適当に入力します。
スクリーンショット 2019-02-01 0.33.48.png
NEXT、SUBMITするとDASHBOARDにアプリケーションが追加されます。
スクリーンショット 2019-02-01 0.36.24.png
このアプリページを開くとClient IDとClient Secretがあるのでせっせと回収します。水色のところです。

次に同じくSpotify for DeveloppersのCONSOLEからPlayerのエンドポイント/v1/me/player/devicesを選択します。
スクリーンショット 2019-02-01 0.48.44.png
GET TOKENして
スクリーンショット 2019-02-01 0.55.40.png
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側の作業

作業と言っても数十行のプログラムを記述するだけです。
標準入力で起床時間を設定し、その時刻になったら指定したデバイスで、標準入力で指定した曲が再生されます。

wakeup.py
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で起床します!おやすみ!

11
11
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
11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?