最近換了台MBP,在這之前我有台Tx300變形金剛,因為裝電池的鬧鐘常常有一些奇奇怪怪的問題導致不會響,我都會用它來當鬧鐘,這是我當時用的網路上隨便抓下來的鬧鐘Free Alarm Clock
換了MBP後原本也想隨便找一個Spotify鬧鐘軟體來頂替的,但是Google了一圈後都找不到我喜歡的方案,所以就決定ininder自幹了一個Spotify鬧鐘,順便玩一下在Windows下玩不到的Bash和Applescript。
在搜尋時有看到別人寫的用command line 操控 Spotify
shpotify
$ spotify play list [playlist name]
這樣就能用 command line 播放某個清單,但是輸入 playlist name 它每次都是用 curl 呼叫 Spotify 的 API , 輸入關鍵字很容易拿到不一樣的結果很不穩定,而且有些中文清單會搜尋不到.....不知道為啥:|
所以我就刻了一個簡單的可以輸入 Spotify URL、播放清單連結、專輯連結或是藝人連結的Spafly因為是要給鬧鐘用的,所以有做淡入音樂的效果讓鬧鐘響的時候不會嚇到。
完成了Script後就~
開始設定!!
- 首先要先下載Spafly
-
解壓縮完成後用終端機cd到該資料夾,並確保它能執行
$ cd Downloads/Spafly-master $ chmod +x spafly
-
然後
$ sudo cp ./spafly /usr/bin/spafly
或是你能放到喜歡的路徑把他加進PATH
-
過來測試一下能不能用
$ spafly "spotify:user:spotifytaiwan:playlist:6rnBixkR4lXh2djtI6esk6"
哦哦哦~ 如果開始播Spotify的“今日最夯”這樣就成功了!
-
成功後還是不夠,身為一個鬧鐘應該要自己喚醒電腦且開始播音樂
系統偏好設定 > 能源節約器 > 排程 > 設定喚醒的時間
但是系統上只有這些能選擇
如果想要更複雜的 1、3、5 早上7點喚醒電腦的話能用下指令的$ sudo pmset repeat wake MWF 07:00:00
MWF 指的是 1、3、5
- 星期一: M
- 星期二: T
- 星期三: W
- 星期四: R
- 星期五: F
- 星期六: S
- 星期日: U
不過使用以上兩種方法的缺點是都只能設定一組重複
如果想要設定多組建議使用這個Power Manager的 Power on daily 這樣就能設定多組不同的喚醒了
-
能成功喚醒電腦後就要排程讓我們的Spafly跑起來了,這裏使用的是 crontab,聽說 Mac 有自己的排程可以用(?
身為一個彭個菜鳥不知道....求各位大大們指點指點
這是crontab的小小教學,更多詳細點這,切記0是星期日
好的簡單的看完教學後我們知道假如要架設一個 1、3、5 早上7點都會定時執行的指令的話要用0 7 * * 1,3,5 執行的command
但是因為7點的時候電腦剛喚醒所以會跟我們的指令衝到要往後延一分鐘
1 7 * * 1,3,5 執行的command
好的過來再加入Spafly的command就變成
1 7 * * 1,3,5 spafly -m 100 -s "spotify:user:spotifytaiwan:playlist:6rnBixkR4lXh2djtI6esk6"
-m 50 代表最大音量為100,如果不加預設值為80
-s 代表音樂會淡入,如果不要淡入就不要加入-s
後面的 Spotify URL可以從這裡獲得,也可以使用播放清單連結,專輯或是藝人連結同樣的地方可以拿到,不建議使用單首歌,一首會叫不醒吧....
Command準備好後就可以把它加進Crontab了$ crontab -e
會開啟vi按
i
後貼上1 7 * * 1,3,5 spafly -m 100 -s "spotify:user:spotifytaiwan:playlist:6rnBixkR4lXh2djtI6esk6"
再按
ESC
再輸入:wq
退出vi
出現crontab: installing new crontab
就代表完成了!!!
明天早上7點會準時喚醒Mac,7點01會開始播放Spotify,讓您每天早上起床就像泡Spa一樣!!哦哦哦~~
注意
- 螢幕不蓋才能讓Spotify順利喚醒後播放
- 不使用 Power Manager 的狀態下只能設定一組鬧鐘
- 有些人喜歡7:00、7:15、7:30都設定一組鬧鐘,在這裡建議是不要這麼做,要用Power Manager才能設定多組且crontab排程也要設定很多組,超麻煩der,建議是直接用長一點的音樂清單,這樣就能響很久了~
- 想設定多組鬧鐘記得要有多組crontab+多組喚醒
- 記得crontab要比喚醒的時間慢一分鐘,否則會跟喚醒時間衝到
後記
- 如果有空的話我會盡量讓Spafly下一行指令就能設定喚醒+新增至crontab,讓連設定都能像泡SPA一樣....不過要等我有空
- 如果想幫我加上上方功能,歡迎 Pull requests
- 如果有任何issus歡迎在下面留言,或是GitHub上回報
特別感謝
- hnarayanan-讓我知道怎麼用 Command 控制 Spotify 的方法
- 鳥哥-其實我也第一次寫這種複雜的Bash,如果錯誤或是什麼怪怪的地方請多多指教 XDD