spotify-dl 是國外開發用來將spotify上的音樂下載到PC上並且還轉成MP3格式
雖然是這樣開埸來介紹他,不過實際上並不是真的從spotify去下載音樂檔到本地PC

spotify-dl的運作方式,是先透過 spotify API 得到歌曲的所有資料並找出官方發佈到YouTube的影片or MV,再使用 youtube-dl 套件下載下來,通常下載來的格式會是 .webm 這格式比較不通用在消費規電子產品中,因此還要再通過 FFMPEG軟體去轉檔成MP3

阿~ 講得好亂阿~ 整理一下流程大約是…
Spotify 得到歌曲資訊 –> 由YouTube下載音檔(.webm) –> 由ffmpeg轉成 .mp3格式 –> 快樂用MP3聽音樂 (等等… 還有人用MP3隨身聽嗎….?)

看了這些流程! 就知道我們需要的套件會很多,哈!
將他列出來:
●spotify-dl
●youtube-dl
●ffmpeg

首先要確認是 python 3.6 以上的版本 (現在應該都是了吧…..)

Step 1. 安裝

先裝python 套件,開啟命令提示字元,輸入以下指令來安裝 spotify-dl 、youtube-dl…套件!
(如果已經有安裝過了,就可以不用再裝了! 或是用 pip install -U <package name> 去更新)

pip install spotify_dl
pip install youtube_dl
pip install ffmpeg

Step 2. 註冊 Spotify API

在此之前你需要有 Spotify的帳號,如果還沒有帳號的話要先去申請一個喔!
然後登入 Spotify developer console  來申請一個API吧!

點擊 LOG IN 並輸入spotify 帳密!

點擊 CREATE AN APP,創建一個APP

名稱的部份可以隨意的輸入! 再點擊 CREATE

創建完就會看到 Client ID,點擊 SHOW CLIENT SECRET 可以取得這個APP 的密鑰!

到這裡,我們就建立好 API 的帳密了!

Step 3. 設定Spotify API 的環境變數

這邊本怪也是用命令提示字元來達成,<your-spotify-client-id><your-spotify-client-secret> 就分別設定成上一步從 Spotify developer console 申請來的Client ID、Client Secret

setx SPOTIPY_CLIENT_ID "<your-spotify-client-id>"
setx SPOTIPY_CLIENT_SECRET "<your-spotify-client-secret>"

spotify-dl 套件會利用環境變數 SPOTIPY_CLIENT_ID、SPOTIPY_CLIENT_SECRET 去跟spotify 取得歌曲的資訊 (專輯名、歌手….)

Step 4. 下指令! 開始下載~

就以最近很火紅的魷魚遊戲的音樂來當練習吧~ 哇哈哈~

先到 Spotify 去找歌曲,在歌曲上 滑鼠右鍵 > 分享 > 複製歌曲連結

接著使用命令提示字元,輸入如下指令:
-l 後面接的就是複製的連結

spotify_dl -l https://open.spotify.com/track/1QZlW9PmwtZtHKraGG1JdB?si=e80c1ec6542d4691 -o .\Downloads\sp_test\ -m

參數:
-l : 後面要接spotify URL
-o : 是指要存放的路徑,這邊我輸入 “.\Downloads\sp_test\” 因為我的cmd路徑是在{user}了,所以我就直接指到下載資料夾裡面創建一個sp_test資料夾。如果只輸入 “.” 則表示是cmd當下這個路徑。
-m : 表示不用轉成 .mp3 格式

如下,可以看到已經下載下來! 並且會將youtube 影片的ID 一並存下來!
而且會直接用專輯名稱去分類!

那為什麼我會多加 -m 參數呢? 不是提到大多數都是用 mp3格式嗎? 嘿嘿… 往下看你就會知道了!

那是因為我如果不下 -m 參數,會報出錯誤,目前還無法解決這個錯誤阿! 哈 哈 哈..

要我更新 youtube-dl 但是我已經更新到最新版本了,也還是一樣會跳出此錯誤,不過很神奇的是,如果下 -m 參數,則可以順利下載…. 這是否意味著… 有 -m 的話會用不同的套件去下載呢? 不然如果都是youtube-dl 那沒道理不行阿?

這個就等之後有想到在來研究吧… 估計是不太會再去碰這個XD

更多的參數,可以使用 -h 來看說明!

spotify_dl -h

總結

原本以為spotify-dl 是別於 youtube-dl 套件外,可以下載音樂的套件,想不到他也是走 youtube-dl XDD ,那我想他可能的優勢可能是會幫忙把歌曲資訊一並包進MP3檔內,不過目前卡關了,所以也無法驗證這件事。

不過如果沒有包歌曲資訊的功能的話,那他好像就顯得多餘,因為我就直接拿 youtube-dl 不就好了 (゜д゜) ?

如剛開始說的,他也是去 youtube 下載音檔,所以像是有些音樂在YT上就只有 MV 所以載下來就會有MV的背景聲!

最後修改日期: 2022 年 4 月 17 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。