Posts match “ applescript ” tag:

InInder 讓 Mac 變 Spotify 高級鬧鐘

最近換了台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後就~

開始設定!!

  1. 首先要先下載Spafly
  2. 解壓縮完成後用終端機cd到該資料夾,並確保它能執行

    $ cd Downloads/Spafly-master
    $ chmod +x spafly
    
  3. 然後

    $ sudo cp ./spafly /usr/bin/spafly
    

    或是你能放到喜歡的路徑把他加進PATH

  4. 過來測試一下能不能用

    $ spafly "spotify:user:spotifytaiwan:playlist:6rnBixkR4lXh2djtI6esk6"
    

    哦哦哦~ 如果開始播Spotify的“今日最夯”這樣就成功了!

  5. 成功後還是不夠,身為一個鬧鐘應該要自己喚醒電腦且開始播音樂
    系統偏好設定 > 能源節約器 > 排程 > 設定喚醒的時間


     
    但是系統上只有這些能選擇

    如果想要更複雜的 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 這樣就能設定多組不同的喚醒了

  6. 能成功喚醒電腦後就要排程讓我們的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

Spafly GitHub在這