Leon

Leon

Live to the point of tears.
tg_channel
twitter

使用 spotDL 下載 Spotify 歌曲

簡介#

spotify-downloader(以下都簡稱為 spotDL)是一款命令行工具,可以通過提交的 Spotify 連結,在 YouTube Music 匹配對應的歌曲並下載,然後再將 Spotify 提供的歌曲元信息賦予下載的文件。通過這種方法下載的文件專輯封面清晰準確,歌曲名、藝術家、專輯、年份、風格等信息完整,甚至大多情況下都會帶有歌詞。如果和我一樣對自己的離線音樂庫音質沒有過分要求,但又想滿足在音樂軟件中不想看到空白專輯封面或者「未知藝術家」等強迫症不適的情況,這個工具可以說是完美滿足需求。

準備工作#

值得注意的是 spotDL 是一款命令行工具,即所有的操作都需要在終端內完成。但其實使用起來也非常簡單,即使完全沒有基礎按照步驟完成應該也不困難。

條件#

使用 spotDL 需要滿足以下幾個條件:

  1. 擁有 Spotify 帳號(需要複製 Spotify 的分享連結);
  2. 網絡條件可以使用 YouTube Music(國內朋友需要使用支持 YTM 地區的原生 IP,最簡單的方法就是直接打開 music.youtube.com 查看是否能夠正常訪問即可,能看到首頁就說明沒問題,如果看到的是 Coming Soon,則說明該地區或者該網絡環境不支持;
  3. 安裝好了依賴並添加到 PATH。

安裝依賴#

spotDL 具體需要兩個依賴的程序:Python 3.6.1(或以上)和 FFmpeg 4.2(或以上),兩者都添加到了 PATH。官方倉庫的 README 中已經給了詳細的介紹,這裡以 Windows 平台為例簡單介紹一下。

Python#

安裝 Python 的過程和安裝所有應用一樣,首先前往 Python 官方網站的 下載頁面,點擊下載即可。

唯一需要注意的是,在初次打開安裝界面的時候,最下方會有一個 Add Python X.X to PATH 的複選框,默認應該是沒有勾選的,這裡需要勾選上,再根據提示進行安裝。

由於電腦已經安裝過了,這裡網上隨便找了個圖,可以看到圖中是沒有勾選的,我們要勾選上。

要勾選最下方的 Add to PATH 選項

然後就是單擊 Install Now 根據提示一步步完成安裝即可。

如果以前已經安裝過 Python,只需要確保 Python(而不是 launcher)添加到 PATH 中即可。如果選擇自定義安裝,記得也要勾選安裝 pip。

FFmpeg#

FFmpeg 的安裝在 macOS 和 Linux 下都十分簡單,至於 Windows 的安裝方法,在官方的 README 中也給了一個詳細的參考連結,這裡簡要轉述一下 Windows 的安裝過程。

首先需要打開 FFmpeg 的 官方下載頁面,然後將鼠標懸停在網頁中的 Windows 圖標上,點擊下方出現的下載連結,跳轉到新的頁面,然後選擇下載對應的版本即可。

image

這裡我選擇了 full 版本,下載後得到一個壓縮包,將解壓後得到的文件夾保存好,並記錄文件夾的路徑。(可以放在平常安裝應用的目錄下,不能刪除。)

然後打開 Windows Search,搜索環境變量,打開「編輯系統環境變量」;

image

在出現的窗口中點擊環境變量,彈出的新窗口中選擇 Path ,點擊編輯,再次出現新的窗口中選擇新建,然後在編輯框內輸入放置剛才解壓的文件夾中 bin 文件夾的目錄。

image

例如我剛才將壓縮包解壓並重命名為 ffmpeg 並放置在了 D:\Applictions 目錄下,那麼我需要填寫的就是 D:\Applications\ffmpeg\bin

另一種簡單的方法就是直接打開剛剛解壓的文件夾,選中 bin 這個文件夾,按住鍵盤上的 Shift 鍵,右鍵單擊,在彈出菜單中選擇 複製文件地址 ,然後再粘貼到新建 Path 的輸入框中。(注意刪掉包裹的引號)

image

完成後一路點擊確定即可。

如果需要了解其他系統的安裝方式或更加詳細的步驟指引,可以參看 VideoProc 的這篇文章:

檢驗安裝#

這樣我們就完成了兩個依賴安裝,打開一個終端,輸入

python --version
ffmpeg -version

正常出現版本號,沒有報錯就說明安裝成功了。

image

安裝 spotDL#

接下來的步驟就相對簡單了,繼續在終端中操作,只需要輸入一行命令:

pip install spotdl

後續需要升級 spotDL,只需要輸入以下任意一行命令即可。

pip install --upgrade spotdl
pip install -U spotdl

使用 spotDL#

如前所述,spotDL 的所有使用都發生在終端中,通過不同的指令調用不同的功能(如果不想記住,直接複製粘貼就好了)。

文件保存位置#

spotDL 默認的保存歌曲位置是在當前的工作目錄下,可以在終端中使用 pwd 命令查看,建議在開始下載前就先 cd 到目標位置,避免一堆雜亂的文件塞滿用戶文件夾。

如果你不理解上面在說什麼也沒關係,以 Windows 系統為例,只需要先建立好想要保存這次下載歌曲的文件夾,然後在該文件夾內按住 Shift 並單擊右鍵,然後選擇在此處打開 Powershell 或者任何其他終端即可。

image

例如在上圖打開的終端使用 spotDL 下載的文件就會保存在 D:\Download(D)\Music 目錄下。

下載歌曲、專輯、藝術家、播放清單#

下載 Spotify 的單曲、專輯、藝術家和播放清單是最簡單的使用方式,只需先在 Spotify 中複製分享連結:

image

再在終端中使用 spotdl <url> 即可。例如我想下載這首 QUEEN,命令為:

spotdl https://open.spotify.com/track/5PimlePLQd8xdf7uKccHqS

同理,專輯、藝術家、播放清單的連結也可以依照 spotdl <url> 的格式使用,如果想一次下載多個 URL 的內容,只需要在多個 URL 中加空格。

例如這裡我下載兩首歌曲:

image

spotDL 默認使用 4 個線程進行下載,所以比起一首首下載,直接下載專輯、清單,或者多首歌曲一起下載的效率更高。

下載完成後,即可在當前的工作目錄看到歌曲,如果歌曲沒有問題,生成的緩存文件也可以刪除。

通過歌曲名搜索並進行下載#

還有一種方法是通過歌曲名進行下載,儘管該方法不被推薦,但懶惰如我,對於一些不太容易重名的歌曲,偶爾使用一下也比較方便。

spotdl '[songQuery]'

還是剛才的例子,下載 my little airport 的 QUEEN,只需要輸入

spotdl 'my little airport - queen'

同樣也可以下載成功。

image

指定 YouTube 視頻和 Spotify 元信息下載#

為了應對識別失敗的情況,如果 spotDL 沒有正確識別歌曲(很少出現就是了),而我們又能夠在 YouTube 上發現對應的歌曲,我們可以手動讓 spotDL 下載 YouTube 上這首歌、轉換成音頻格式,並且寫入 Spotify 上這首歌的元信息。使用方法是:

spotdl "<YouTube url>|<Spotify url>"

通過這種方法,歌曲的聲音是來自指定的 YouTube 視頻或音樂的,元信息來自指定的 Spotify 曲目。

還有許多其他的使用方法,包括指定下載線程、指定音頻格式、恢復中斷下載等,在項目的 README 中也有了詳細的介紹。這裡不再贅述。

總結#

因為一些眾所周知的原因,有時候我們喜歡的歌手在國內一夜之間沒法聽了,所以我才有定期保存常聽歌曲的離線文件的習慣。國內的音樂平台有審查和版權不全的問題,國外的音樂平台也往往因為地區不同,曲庫可能不會收錄一些國內常聽的音樂。綜合使用下來,使用 spotDL 下載音樂的方式很適合我,但還是想要強調音樂文件的音質確實也就夠我這種木耳聽個響。相信下載音樂文件的方法肯定也有很多,只是這是我目前發現的音樂文件信息最全、熟練之後也最方便的一種。

最近還搭建了一個 OneDrive 的目錄,上傳了 my little airport 的所有歌曲,這裡也分享一下:my-little-airport。現在在大陸 mla 基本上是消失了,可以下載後用本地文件上傳到網易雲音樂雲盤,也是一種臨時解決辦法。但有條件還還是請大家在 Spotify、YT Music 或外區 Apple Music 等平台聽正版,也是對我們喜歡的歌手的一種支持。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。