學習

Spotify for Developers好玩!(但是也好難XD)

Spotify for Developers好玩!(但是也好難XD)

上一周的pyton課程project的實作比較多、上課內容較少,我看各種文件看到瘋掉,很多內容看一次不懂,看第二次還是不懂,看到第三四次勉強跟著動手寫看看,經過無數次的猜和try and error才開始慢慢有點模糊的概念,老實說到現在我也還是很模糊,所以希望動手把這樣的經驗寫出來可以讓我再反芻一次、哪天再遇到瘋狂挫敗的時候可以記得保持冷靜和勇敢。🤣

音樂時光機

這個Project的概念很單純,就是利用Billboard Hot 100網頁上面,每周的前百大歌曲排行榜,用程式製作在Spotify上的播放清單,並且能讓使用者輸入日期,像時光機一樣藉由流行音樂回到過去美好的歲月(?)重溫舊夢(?)。

除了是我感興趣的主題以外,加上促使我想開始認真學寫程式的一部份原因也是想做跟聲音經濟有關的東西,在此先不贅述,我只能說有興趣的題目就算做起來困難重重,也很自然且甘願的可以投入更多時間,而且就算挫敗也會想辦法繼續,真是太神奇了!XDDD

這是我抓的2009年某一周的排行榜播放清單,歡迎按下播放鍵配著音樂繼續往下看吧!XD

帶著正確心態接受挑戰

我覺得我誤打誤撞上了一堂很有價值的線上課程,這次的project我被底下這句話打動:

Now that you’ve come so far and completed 45 days of Python, you’re going to approach this challenge like a real developer, figuring things out from the documentation.

--Dr. Angela Yu (Day 46, 100 Days of Code - The Complete Python Pro Bootcamp for 2021)

當天我發揮我演員的專長,就真的當自己是個developer,從自己有興趣、認為關鍵的地方開始研究Spotify的開發者介面網頁,並且研讀官方的開發文件,也很幸運的在我開始K文件之前,先好奇的逛了一下其他人用這些工具做了些什麼,發現在Spotify上面的開發者社群真的是很龐大很活躍呀!

其中我找到這兩個是我最喜歡的,也是對我最實用的功能,很驚訝開發者們居然可以透過Spotify的API做這麼多我想像不到的事!喜歡音樂也有Spotify帳號的人可以玩玩看,很酷啊!

  1. Discover Quickly:快速預覽一首歌、搜尋藝人和更多歌曲、儲存,不只這樣,登入帳號後可以用來預覽自己的歌單、儲存的專輯…等等,是拿來整理自己的音樂資料庫、挖掘更多音樂的好工具,而且很神奇的是他讀取超快!快到一個不可思議!

  2. Record Player:掃描專輯封面並以圖來搜尋Spotify資料庫的專輯,結合Google Cloud Vision API和Spotify API,如果你還逛實體唱片行,或是家裡有很多CD/黑膠唱片想要建立數位資料庫,這是一個超棒的工具!

帶著發現的興奮感解決問題

可能真的是因為動手寫code之前玩了上述的新奇玩具,在寫code運到困難鬼打牆的時候,我就再回去探索那些神人大大打造的工具、各種應用網站,還包含商業化的幾個應用程式及服務,再回來繼續看文件、嘗試將自己理解的寫寫看,雖然一直覺得很難不過最後也是一步步一行一行測試,最後做出可以動的版本了!

但我目前的程度還淺淺的,加上python其實已有人做了一個package可以較快速搞定Spotify的授權問題:spotipy,如果有需要的人可以參考一下。題外話,有些人抱怨spotipy的文件很難懂,但比較起來我自己是覺得Spotify官方文件內容太多,如果像我一樣的程式初學者,如果研究的時間不夠多可能會很容易迷失方向,spotipy的套件我認為某種程度上是有簡化使用Spotify API的流程啦!

老實說兩邊我也都是霧裡看花,只有部分好像懂大部分功能沒實際玩過的話看過去就過去了XDDD,但目前已知是一個大坑,有想法的話可以在這個大坑好好挖掘、去嘗試做很多好玩的事情!

初衷很老梗但有用

回想起來,做這個作業跟之前有些不同的地方,在於我在動手前就明確意識到,這是目前為止最接近我學寫程式初衷的一個project,雖然課程大多數的project我也都感興趣,有些是之前沒想過的idea、有新鮮感,但Spotify真的讓我大開眼界!除了和我自己的興趣喜好有關以外,藉由這次的探索我也再度想起來,我學寫程式的初衷並不只是想要做出我想像中的產品,最重要的一個點是,我有點厭倦了自己的想像力高於實作能力這件事,我想藉由學習另一個專長,讓自己能夠更隨心所欲一點;我想讓一兩年後的我,可以在想到好點子的時候,不需要再被「我做不到」、「我做不出來」、「我沒辦法」的想法打倒;我想要從今天開始,有好點子不只可以把它寫下來,而是可以開始想辦法把它做出來(或是找人陪我一起做出來XD)。

寫作對我而言真的很重要呢!未來的我啊哪天迷惘又倦怠的時候,希望我可以又很幸運地繞過來看看!😁

題外話,上這篇新文章的時候,我順便來測試外掛的chatbot程式碼能不能藉由Huogo的shortcode在GitHub pages成功運作?🤔 測試成功的話之後來寫一篇簡單的分享好了~

comments powered by Disqus