Savify 是一個 Python 庫,它從選定的提供者(預設為 YouTube)下載歌曲,然後從 Spotify 中抓取元資訊。根據查詢,Savify 將尋找歌曲並下載為 mp3 格式,品質高達320 kb/s !該應用程式還將抓取id3v2 標籤並將其寫入您的所有歌曲。標籤包括標題、藝術家、年份、專輯甚至封面藝術!
Savify 支援所有 Spotify 曲目、專輯和播放清單連結。此外,還有一個整合的搜尋功能,因此即使您沒有 Spotify 鏈接,您也可以簡單地輸入歌曲名稱,Savify 就會下載它!
除了 mp3 之外,Savify 還可以下載並轉換為其他檔案類型。在應用程式內,您可以指定下載歌曲的格式和質量,以便在所有裝置上實現最大相容性。可用格式:mp3、aac、flac、m4a、opus、vorbis 和 wav。標籤和封面藝術僅適用於以 mp3 格式下載的歌曲。
請注意,該庫不會以任何方式違反 Spotify TOS,歌曲不是直接從 Spotify 中翻錄的,而是使用 youtube-dl python 庫從 YouTube 和 Soundcloud 等其他來源下載。 Spotify 僅用於收集要嵌入下載的歌曲檔案中的準確元資訊。
造訪我們的官方 Docker Hub 映像儲存庫並取得最新的 Docker 映像:https://hub.docker.com/repository/docker/lauurencerawlings/savify
任何問題或回饋請加入Discord 伺服器
Savify 依賴開源 FFmpeg 函式庫來轉換元資料並將其寫入其下載的歌曲。請確保 FFmpeg 已安裝在您的電腦上並新增至系統路徑。請按照此處的教程進行操作。
如果您想使用 Savify 下載個人 Spotify 播放列表,請確保其可見性設定為「公開」。這樣 Savify 就可以使用 Spotify API 從您的播放清單中檢索歌曲詳細資訊。
如果您使用的是 Windows,您可以下載最新的預先打包可執行套件(我建議您這樣做,因為您不必提供 Savify API 金鑰),或者您可以下載 python 庫並直接使用 CLI 運行該模組。
前往此處下載最新的 Savify.exe,然後確保您擁有:
下載 FFmpeg 並將其新增至您的路徑中
Spotify API 憑證已新增至您的環境變數中
就是這樣,你應該可以走了!請參閱下面的一些用法範例。
$ pip install -U savify
克隆儲存庫並確保您位於根目錄中。執行以下建置命令:
$ docker build -t savify:dev .
目前 Savify 僅支援 Spotify URL 和搜尋查詢,但將來將添加對 Spotify URI 的支援。
如果您已從發布頁面下載了最新的 Savify.exe,請開啟終端並導航至與二進位檔案相同的目錄,然後您可以執行:
$ Savify.exe
如果您使用的是 Python 包,並且 savify 安裝到您的網站包中,而您的 pip 資料夾位於您的 PATH 中(預設應該如此),那麼您可以從任何地方簡單地運行:
$ savify
如需協助,請運行:
$ savify --help
使用上面的預設值:
$ savify "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI"
指定您自己的選項:
$ savify "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI" -q best -f mp3 -o "/path/to/downloads" -g "%artist%/%album%"
透過搜尋查詢:
$ savify "You & I - Bru-C" -t track -q best -f mp3 -o "/path/to/downloads" -g "%artist%/%album%"
可用變數: %artist%, %album%, %playlist%
例如:
$ savify "You & I - Bru-C" -o /path/to/downloads -g "%artist%/%album%"
將下載到以下目錄結構:
/路徑/到/下載| |- /Bru-C | |- /原聲| |- Bru-C - 你與我.mp3
查詢類型: | 追蹤 |
---|---|
品質: | 最好的 |
格式: | mp3 |
小路: | Windows:HOME/AppData/Roaming/Savify/downloads Linux:HOME/.local/share/Savify/downloads MacOS:主頁/函式庫/應用程式支援/Savify/下載 |
分組: | 沒有分組 |
有關更多使用範例,請閱讀文件。
在容器內執行 savify,容器也可以附加到其他容器的網路。如果您想要執行多個 savify 實例和/或想要使用 VPN 進行下載,這會很方便。您可以使用自建的 Docker 映像,也可以使用官方的 Docker 映像。確保使用正確的 Docker 映像名稱和標籤。
$ docker run laurencerawlings/savify:latest
如果未指定參數,容器將列印幫助頁面。只需附加您的參數,確保從主機掛載一個資料夾,以便下載是持久的( -v
) - pwd
用於掛載您所在的當前目錄 - 並在完成後刪除容器( --rm
)。您必須使用環境變數 ( -e
) 指定您的 Spotify 用戶端 ID 和金鑰:
$ docker run --rm -v "`pwd`:/root/.local/share/Savify/downloads" -e SPOTIPY_CLIENT_ID=client_id -e SPOTIPY_CLIENT_SECRET=client_secret laurentrawlings/savify:最新的“https://open.spotify.com/playlist/...”
如果要保留日誌,只需將下列參數新增至 docker run 命令即可掛載日誌記錄目錄: -v "./logs:/root/.local/share/Savify/logs"
使用 shell 腳本實現自動化:
$ nano savify.sh
#!/bin/bashdocker run --rm -v "`pwd`:/root/.local/share/Savify/downloads" -e SPOTIPY_CLIENT_ID=client_id -e SPOTIPY_CLIENT_SECRET=client_secret Laurencerawlings/savify:最新 1 美元
然後運行:
$ sh savify.sh "https://open.spotify.com/track/4Dju9g4NCz0LDxwcjonSvI"
您也可以選擇使用我們的 docker 腳本快速啟動,該腳本具有整合的 VPN 檢查功能,以查看腳本是否可以連接到任何 VPN 容器。該腳本非常適合使用 cron 進行調度:
$ wget https://github.com/laurencerawlings/savify/latest/download/savify-docker-scripts.zip $ 解壓縮 savify-docker-scripts.zip && rm savify-docker-scripts.zip $ cd savify-docker-scripts/
然後,您必須使用您喜歡的文字編輯器(我們更喜歡 nano)編輯配置文件,保存它(Ctrl + X,Y 用於保存 nano 中的更改)並將其重命名為config.sh
。
$ 奈米模板.config.sh $ mv template.config.sh 配置.sh
然後您可以運行該腳本:
$ bash批量下載.sh
要使用 Savify Python 模組,您需要自己的 Spotify 開發應用程式來存取他們的 API。若要執行此操作,請在此處註冊。當您提出新的申請時,請記下您的客戶 ID 和密碼。您可以透過兩種方式將 id 和 Secret 傳遞給 Savify:
現在您需要在系統中新增 2 個環境變數:
SPOTIPY_CLIENT_ID
SPOTIPY_CLIENT_SECRET
要了解如何執行此操作,請尋找適合您的特定作業系統的線上教學。完成此操作後,請確保重新啟動 shell。
建立 Savify 物件時,您可以使用元組傳入您的 id 和金鑰:
s = Savify(api_credentials=("CLIENT_ID","CLIENT_SECRET"))
將軟體包安裝到您的環境中:
$ pip install savify
導入並使用 Savify:
from savify import Savifyfrom savify.types import Type, Format, Qualitys = Savify()# Spotify URLs.download("SPOTIFY URL")# 搜尋查詢# 類型:TRACK、ALBUM、PLAYLISTs.download("QUERY", query_type=Type.追蹤)
儲存可選的建構子參數(請參閱上面的預設值):
匯入日誌記錄 從 savify 導入 Savify from savify.types import 類型、格式、質量 從 savify.utils 導入 PathHolder # 品質選項:最差、Q32K、Q96K、Q128K、Q192K、Q256K、Q320K、最佳 # 格式選項:MP3、AAC、FLAC、M4A、OPUS、VORBIS、WAV Savify(api_credentials=None,quality=Quality.BEST,download_format=Format.MP3,path_holder=PathHolder(downloads_path='path/for/downloads'),group='%artist%/%album%',quiet=Falsedownloads'),group='%artist%/%album%',quiet=False,skip_cover_art =False,log_level=logging.INFO)
手動自訂 youtube-dl 選項:
from savify import Savifyoptions = {'cookiefile': 'cookies.txt'}Savify(ydl_options=options)
傳入你自己的記錄器:
from savify import Savifyfrom savify.logger import Loggerlogger = Logger(log_location='path/for/logs', log_level=None) # 靜默輸出Savify(logger=logger)
group 參數用於對輸出路徑中下載的歌曲進行排序。路徑字串的可能變數有:%artist%、%album% 和 %playlist%。變數被歌曲元資料替換。例如,使用上述 Savify 物件下載的歌曲將儲存到以下路徑:path/for/downloads/Example Artist/Example Album/Example Song.mp3
如果您想嘗試新增至 Savify,請使用此處的說明。從那裡您可以添加任何您認為可以使 Savify 變得更好的添加內容。
如果您正在開發 Savify,請在本機安裝 pip 軟體包,以便您可以進行並測試您的變更。從根目錄運行:
$ pip install -e .
然後您可以運行 Python 模組:
$ savify
該套件是使用 Cookiecutter 和 audreyr/cookiecutter-pypackage 專案範本建立的。