網易雲與QQ音樂共享了99%樂庫,那麼這個工具解決剩下的百分之一--SDMUSIC(開源命令列音樂搜尋下載軟體)

pcdack發表於2018-02-10

4-17

修復qq音樂平臺無法下載的BUG

4-15

修改了部分BUG,美化了結果輸出。非常感謝raawaa

新增(3-5)

批量下載UK榜,美國Billboard周榜,Beatport全球電子舞曲榜,法國 NRJ Vos Hits 周榜,日本Oricon周榜,臺灣Hito排行榜

新增(3-1)

新增飆升榜(網易雲,QQ)音樂下載,新增原創榜下載(網易雲,蝦米音樂),熱歌榜新增蝦米音樂

新增(2-28)

新增網易雲和QQ音樂熱歌榜下載,指定引數-hot加平臺就可以了,修復/的BUG

新增(2-27)

QQ歌單下載

注意: 新增QQ音樂歌單下載,需要指定-p qq。注意qq音樂批量下載中需要將https://y.qq.com/w/taoge.html?ADTAG=newyqq.taoge&id=3710267240改為https://y.qq.com/w/taoge.html?ADTAG=newyqq.taoge\&id=3710267240,就是在&前加\,否則無法正常工作,或者直接指定id的值也可以。

新增(2-22)

蝦米歌單下載,修復若干BUG!

功能清單

  • [x] 搜尋
  • [x] 下載
  • [x] 歌詞
  • [x] 專輯圖片下載與嵌入(在下載時指定-a引數,實現此功能依賴你電腦的ffmpeg)
  • [x] 批量下載(網易雲音樂,蝦米音樂歌單,QQ音樂歌單下載)
  • [x] 高清音樂源(使用-tfc(test flac)引數來測試音樂是否有flac無損格式的,通過-dfc(download flac)來下載flac格式的音樂,flac格式自帶資訊嵌入,所以不需要也不容許使用-a,但可以使用-l)
  • [x] 增加配置檔案,給使用者更多自定義功能
  • [x] 批量下載熱歌(網易雲和QQ音樂熱歌榜)
  • [ ] 根據文字下載音樂

起因

網易雲與QQ音樂共享了99%樂庫,那麼這個工具解決剩下的百分之一--SDMUSIC(開源命令列音樂搜尋下載軟體)

今天無意間看到這條新聞,聽說已經共享了99%的樂庫。於是屁顛屁顛的開啟網易雲,搜尋了前段時間很火的體面,然而,依舊沒有於文文版的,很多經典的粵語歌也沒得聽。於是就有了這個小工具-SDMUSIC。SDMUSIC的名字,其實就是Search && Download Music ,使用Python3編寫的命令列軟體,理論上支援所有平臺,暫時只在類Unix(Ubuntu && Arch && Mac)系統上測試。

 ______     _____     __    __     __  __     ______     __     ______    
/\  ___\   /\  __-.  /\ "-./  \   /\ \/\ \   /\  ___\   /\ \   /\  ___\   
\ \___  \  \ \ \/\ \ \ \ \-./\ \  \ \ \_\ \  \ \___  \  \ \ \  \ \ \____  
 \/\_____\  \ \____-  \ \_\ \ \_\  \ \_____\  \/\_____\  \ \_\  \ \_____\ 
  \/_____/   \/____/   \/_/  \/_/   \/_____/   \/_____/   \/_/   \/_____/

複製程式碼

使用方法

這個專案已經開源到了github上 。同時,也已經同步到了PyPi。

配置

配置檔案的位置~/.sdmusic/sdmusic.config

可配置的項

檔名的命名格式

  1. 歌曲名
  2. 歌手 - 歌曲名
  3. 歌曲名 - 歌手

例如:我想使用第二種命名方式,那麼我們只需要將配置檔案中

 song.name_type = 2
複製程式碼

歌曲預設下載路徑 例如修改到/home/{username}/Music/test/目錄下:

注意:路徑要寫全,否則可能報錯

 download.dir = /home/{username}/Music/test/
複製程式碼

安裝

方法一

pip3 install sdmusic
複製程式碼

方法二

git clone git@github.com:pcdack/SDMUSIC.git
cd SDMUSIC/
python3 setup.py install
複製程式碼

檢驗

輸入sdmusic -v輸出:

 ______     _____     __    __     __  __     ______     __     ______    
/\  ___\   /\  __-.  /\ "-./  \   /\ \/\ \   /\  ___\   /\ \   /\  ___\   
\ \___  \  \ \ \/\ \ \ \ \-./\ \  \ \ \_\ \  \ \___  \  \ \ \  \ \ \____  
 \/\_____\  \ \____-  \ \_\ \ \_\  \ \_____\  \/\_____\  \ \_\  \ \_____\ 
  \/_____/   \/____/   \/_/  \/_/   \/_____/   \/_____/   \/_/   \/_____/
複製程式碼

安裝成功

搜尋命令

sdmusic -n "體面" -s
複製程式碼

網易雲與QQ音樂共享了99%樂庫,那麼這個工具解決剩下的百分之一--SDMUSIC(開源命令列音樂搜尋下載軟體)

下載命令

很簡單隻要把上面的s引數改為d,然後用-i在去指定你要下載那一條音樂。

例如

sdmusic -n "體面" -p qq -s
複製程式碼

在命令列的結果為

Index   MusicName       MusicAuthor
1       體面    於文文
2       體面    艾辰
3       體面    簡弘亦
4       體面    羅之豪
5       體面    胖胖胖
6       體面    阿細
7       體面    妖蝠sama
8       體面    馮允澈
9       體面    阿祥
10      體面    簡弘亦
複製程式碼

我們如果想下載第一個音樂,那麼

技巧使用鍵盤的上鍵更改即可

sdmusic -n "體面" -p qq -d -i 1
複製程式碼

回車就可下載。

網易雲與QQ音樂共享了99%樂庫,那麼這個工具解決剩下的百分之一--SDMUSIC(開源命令列音樂搜尋下載軟體)

批量下載

sdmusic -l -a -t http://music.163.com/#/playlist?id=932596614
複製程式碼

上面這條命令,下載後面歌單的所有音樂,同時下載所有的歌詞和嵌入專輯圖 去掉-l,-a就可以不下載歌詞和嵌入專輯圖與專輯資訊

批量下載蝦米歌單

sdmusic -p xiami -t http://www.xiami.com/collect/281354699?spm=a1z1s.2943601.6856193.2.6C6Ltv
複製程式碼

批量下載QQ音樂歌單:

注意&符號前一定要加\否則會報錯

sdmusic -p qq -t https://y.qq.com/w/taoge.html?ADTAG=newyqq.taoge\&id=3710267240 
複製程式碼

直接指定ID

sdmusic -p -t 3710267240
複製程式碼

無損音樂測試與下載

  • 測試是否存在無損音樂
sdmusic -tfc -n "黃色大門"
複製程式碼
  • 下載無損音樂(先測試是否存在)
sdmusic -dfc -n "黃色大門"
複製程式碼

自帶專輯圖片和專輯資訊,所以emmmmm-a屬性沒什麼軟用。當然-l(下載歌詞)依然可用

下載熱歌

網易雲

sdmusic -hot
複製程式碼

QQ音樂

sdmusic -hot -p qq
複製程式碼

蝦米音樂

sdmusic -hot -p xiami
複製程式碼

下載飆升榜

網易雲

sdmusic -soar
複製程式碼

QQ音樂

sdmusic -soar -p qq
複製程式碼

下載原創

網易雲

sdmusic -origin
複製程式碼

蝦米

sdmusic -origin -p xiami
複製程式碼

下載其他榜單 這裡以UK榜為例

sdmusic -uk
複製程式碼

其他榜

  • 日本Oricon周榜:oricon
  • 美國Billboard周榜:billboard
  • Beatport全球電子舞曲榜:beatport
  • 法國 NRJ Vos Hits 周榜:hits
  • 臺灣Hito排行榜:hito

其他引數(除-o以外其他的在下載和搜尋的時候都可以用)

可選引數 -p[platform]:可以指定搜尋平臺{netease(網易:預設),qq,xiami(蝦米),kugou(酷狗),1ting(一聽)} 例子

sdmusic -n "體面" -p qq -s
複製程式碼

-g[page]:指定搜尋的頁面為第幾頁預設為第一頁,如果第一頁沒有找到相關的歌曲,可以指定移動到第二頁

sdmusic -n "體面" -p qq -g 1 -s
複製程式碼

-v[version]:輸出版本資訊

-o[output]:指定輸出路徑(只有在指定為下載是有效) -l[lyric]:下載歌詞(只有在指定為下載是有效,不支援一聽平臺)

如有其他需求,請盡情ISSUES,歡迎一起維護專案

相關文章