Python從網易雲音樂、QQ 音樂、酷狗音樂、蝦米音樂等搜尋和下載歌曲
music-dl
從網易雲音樂、QQ音樂、酷狗音樂、百度音樂、蝦米音樂等搜尋和下載歌曲。
Search and download music from netease, qq, kugou, baidu and xiami.
注意:部分音樂源在一些國家和地區不可用,可以考慮使用中國大陸代理。
Note: Some music sources may not be available in some countries and regions. If so, you should use Chinese proxies. See https://github.com/0xHJK/Proxies for public proxies.
Feature
- 支援指定搜尋數量、音樂源和儲存目錄(預設搜尋全部音樂源,數量為5)
- 支援無損音樂搜尋(數量較少,預設不開啟)
- 搜尋音質優先順序由高到低(flac -> 320K -> 128K)
- 支援http代理和socks代理(海外黨福音)
- 支援多執行緒搜尋
- 支援排序和去重(預設不去重)
在以下環境測試通過(僅支援Python3):
免責宣告
- 本工具只用作個人學習研究,禁止用於商業及非法用途,如產生法律糾紛與本人無關。
- API來自網路,非官方API,隨時可能失效。
- 音樂版權歸各網站所有,本工具主要目的是協助搜尋,發現哪家音樂有版權。
- 音樂僅用於試聽,如果需要儲存,請自行去各個網站下載正版。
提Issues說明
- 檢查是否是最新的程式碼,檢查是否是Python3,檢查依賴有沒有安裝完整 。
- 說明使用的作業系統,例如Windows 10 x64
- 說明Python版本,以及是否使用了pyenv等虛擬環境
- 說明使用的命令引數、搜尋關鍵字和出錯的音樂源
- 使用
-v
引數重試,說明詳細的錯誤資訊,最好有截圖 - 如果有新的思路和建議也歡迎提交
Usage 使用方式
安裝依賴:
使用幫助:
$ python3 main.py -h
usage: python main.py [-k keyword] [-s source] [-c count] [-o outdir] [-v] [-m]
-h --help 幫助
-v --verbose 詳細模式
-m --merge 對搜尋結果去重和排序
--nomerge 對搜尋結果不去重(預設不去重)
-k --keyword= 搜尋關鍵字
-s --source= 資料來源目前支援qq netease kugou baidu xiami flac
-c --count= 數量限制
-o --outdir= 指定輸出目錄
-x --proxy= 指定代理(如
- 預設搜尋所有音樂源,每個數量限制為5,儲存目錄為當前目錄,不合並搜尋結果。
- 指定序號時可以使用
1-5 7 10
的形式。 - 需要合併搜尋結果時,排序順序按照歌手和歌名排序,當兩者都相同時保留最大的檔案。
- 無損音樂歌曲數量較少,如果沒有無損會顯示320K或128K,建議只在搜尋特定歌曲名時手動開啟
-s flac
- 支援http代理和socks代理,使用
-x http://127.0.0.1:1087
或-x socks5://127.0.0.1:1086
開啟該功能Python資源分享qun 784758214 ,內有安裝包,PDF,學習視訊,這裡是Python學習者的聚集地,零基礎,進階,都歡迎
獲取公共代理的方式可以參考我的另一個專案 https://github.com/0xHJK/Proxies ,100行Python程式碼快速獲得一個代理池,兩分鐘獲得數千個有效代理。
Example 使用示例:
去重效果展示(早期版本截圖):
Before merge 去重前:
After merge 去重後:
Music sources 支援音樂源列表
歡迎提交外掛支援更多音樂源!外掛寫法參考 core/extractors
中的檔案
更新記錄
- 2019-01-26 支援http和socks代理,刪除wget庫,新增click庫,釋出v1.1版
- 2019-01-25 支援百度無損音樂
- 2019-01-24 優化互動、修復bug
- 2019-01-22 解決Windows相容問題,支援多執行緒,釋出v1.0版
- 2019-01-21 支援蝦米音樂,支援去重
- 2019-01-20 支援百度音樂
- 2019-01-17 支援指定目錄、數量、音樂源
- 2019-01-12 QQ音樂320K失效
- 2019-01-11 支援網易雲音樂
- 2019-01-09 完成v0.1版,支援酷狗和QQ
Credits 致謝
本專案受以下專案啟發,參考了其中一部分思路,向這些開發者表示感謝。
- https://github.com/soimort/you-get
- https://github.com/maicong/music
- https://github.com/YongHaoWu/NeteaseCloudMusicFlac