musicdl 2.7.4__tar.gz → 2.8.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. {musicdl-2.7.4 → musicdl-2.8.2}/LICENSE +1 -0
  2. {musicdl-2.7.4/musicdl.egg-info → musicdl-2.8.2}/PKG-INFO +84 -56
  3. {musicdl-2.7.4 → musicdl-2.8.2}/README.md +83 -55
  4. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/__init__.py +1 -1
  5. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/__init__.py +2 -2
  6. musicdl-2.8.2/musicdl/modules/common/__init__.py +5 -0
  7. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/common/gdstudio.py +1 -1
  8. {musicdl-2.7.4/musicdl/modules/sources → musicdl-2.8.2/musicdl/modules/common}/mp3juice.py +18 -32
  9. musicdl-2.8.2/musicdl/modules/common/myfreemp3.py +140 -0
  10. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/common/tunehub.py +5 -13
  11. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/__init__.py +14 -3
  12. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/apple.py +1 -1
  13. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/base.py +43 -24
  14. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/buguyy.py +19 -11
  15. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/fangpi.py +15 -7
  16. musicdl-2.8.2/musicdl/modules/sources/fivesong.py +162 -0
  17. musicdl-2.8.2/musicdl/modules/sources/flmp3.py +145 -0
  18. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/gequbao.py +2 -2
  19. musicdl-2.8.2/musicdl/modules/sources/gequhai.py +191 -0
  20. musicdl-2.8.2/musicdl/modules/sources/htqyy.py +153 -0
  21. musicdl-2.8.2/musicdl/modules/sources/jcpoo.py +229 -0
  22. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/joox.py +1 -1
  23. musicdl-2.8.2/musicdl/modules/sources/kkws.py +178 -0
  24. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/kugou.py +5 -3
  25. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/kuwo.py +61 -29
  26. musicdl-2.8.2/musicdl/modules/sources/livepoo.py +229 -0
  27. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/lizhi.py +1 -1
  28. musicdl-2.8.2/musicdl/modules/sources/migu.py +230 -0
  29. musicdl-2.8.2/musicdl/modules/sources/missevan.py +98 -0
  30. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/mitu.py +30 -6
  31. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/netease.py +51 -21
  32. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/qq.py +47 -0
  33. musicdl-2.8.2/musicdl/modules/sources/twot58.py +117 -0
  34. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/ximalaya.py +14 -79
  35. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/yinyuedao.py +25 -6
  36. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/__init__.py +3 -2
  37. musicdl-2.8.2/musicdl/modules/utils/ip.py +119 -0
  38. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/lyric.py +26 -0
  39. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/misc.py +12 -0
  40. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/qqutils.py +2 -2
  41. musicdl-2.8.2/musicdl/modules/utils/quarkparser.py +210 -0
  42. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/musicdl.py +20 -10
  43. {musicdl-2.7.4 → musicdl-2.8.2/musicdl.egg-info}/PKG-INFO +84 -56
  44. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/SOURCES.txt +12 -1
  45. musicdl-2.7.4/musicdl/modules/common/__init__.py +0 -3
  46. musicdl-2.7.4/musicdl/modules/sources/migu.py +0 -181
  47. musicdl-2.7.4/musicdl/modules/utils/quarkparser.py +0 -105
  48. {musicdl-2.7.4 → musicdl-2.8.2}/MANIFEST.in +0 -0
  49. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/js/__init__.py +0 -0
  50. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/js/youtube/__init__.py +0 -0
  51. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/js/youtube/botguard.js +0 -0
  52. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/js/youtube/jsinterp.py +0 -0
  53. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/js/youtube/runner.js +0 -0
  54. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/bilibili.py +0 -0
  55. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/fivesing.py +0 -0
  56. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/jamendo.py +0 -0
  57. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/qianqian.py +0 -0
  58. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/tidal.py +0 -0
  59. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/youtube.py +0 -0
  60. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/appleutils.py +0 -0
  61. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/data.py +0 -0
  62. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/logger.py +0 -0
  63. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/modulebuilder.py +0 -0
  64. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/neteaseutils.py +0 -0
  65. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/songinfoutils.py +0 -0
  66. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/tidalutils.py +0 -0
  67. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/youtubeutils.py +0 -0
  68. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/dependency_links.txt +0 -0
  69. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/entry_points.txt +0 -0
  70. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/requires.txt +0 -0
  71. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/top_level.txt +0 -0
  72. {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/zip-safe +0 -0
  73. {musicdl-2.7.4 → musicdl-2.8.2}/setup.cfg +0 -0
  74. {musicdl-2.7.4 → musicdl-2.8.2}/setup.py +0 -0
@@ -201,3 +201,4 @@ Copyright 2022-2030 CharlesPikachu. All rights reserved.
201
201
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
202
202
  See the License for the specific language governing permissions and
203
203
  limitations under the License.
204
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: musicdl
3
- Version: 2.7.4
3
+ Version: 2.8.2
4
4
  Summary: Musicdl: A lightweight music downloader written in pure python
5
5
  Home-page: https://github.com/CharlesPikachu/musicdl
6
6
  Author: Zhenchao Jin
@@ -97,11 +97,10 @@ Requires-Dist: tinytag
97
97
 
98
98
  # 🎉 What's New
99
99
 
100
- - 2025-12-19: Released musicdl v2.7.4supports music search and download using TuneHubMusicClient.
101
- - 2025-12-17: Released musicdl v2.7.3supports native Bilibili music search and downloads, improves the search speed of some third-party APIs, refactors the Ximalaya music platform code, and includes several other minor code optimizations.
102
- - 2025-12-15: Released musicdl v2.7.2 — added support for jamendo and make some improvements.
103
- - 2025-12-11: Released musicdl v2.7.1added support for two new sites and fixed several potential bugs.
104
- - 2025-12-10: Released musicdl v2.7.0 — the code has been further refactored, with a large amount of redundant code removed or merged; all supported sites can now download lossless music (for some sites, you need to set your membership cookies in the command line or in the code), the search speed has been greatly optimized, and several problematic sites have been fixed.
100
+ - 2026-01-01: Released musicdl v2.8.2adjusted the FreeProxy API arguments, improved the robustness of fetching high-quality music from NetEase Cloud Music, QQ Music, and Migu Music, and fixed some bugs.
101
+ - 2025-12-31: Released musicdl v2.8.1support more lossless-music sharing sites, add pagination support for some of the previously supported sites, and fix the Rich display conflict under two-level concurrency with multi-source searching.
102
+ - 2025-12-29: Released musicdl v2.8.0 — added support for two additional sites, improved the search speed, stability and metadata completeness when fetching lossless tracks from some sites, and optimized certain default arguments (prioritize search speed).
103
+ - 2025-12-24: Released musicdl v2.7.6add support for MissEvan FM, and fix bugs on the Gequhai site.
105
104
 
106
105
 
107
106
  # 🎵 Introduction
@@ -118,31 +117,41 @@ If you are a rights holder and believe this repository infringes your rights, pl
118
117
 
119
118
  # 🎧 Supported Music Client
120
119
 
121
- | MusicClient (EN) | MusicClient (CN) | Search | Download | Code Snippet |
122
- | :----: | :----: | :----: | :----: | :----: |
123
- | [FiveSingMusicClient](https://5sing.kugou.com/index.html) | [5SING音乐](https://5sing.kugou.com/index.html) ||| [fivesing.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/fivesing.py) |
124
- | [KugouMusicClient](http://www.kugou.com/) | [酷狗音乐](http://www.kugou.com/) ||| [kugou.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/kugou.py) |
125
- | [KuwoMusicClient](http://www.kuwo.cn/) | [酷我音乐](http://www.kuwo.cn/) ||| [kuwo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/kuwo.py) |
126
- | [LizhiMusicClient](https://www.lizhi.fm/) | [荔枝FM](https://www.lizhi.fm/) ||| [lizhi.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/lizhi.py) |
127
- | [MiguMusicClient](https://music.migu.cn/v5/#/musicLibrary) | [咪咕音乐](https://music.migu.cn/v5/#/musicLibrary) ||| [migu.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/migu.py) |
128
- | [NeteaseMusicClient](https://music.163.com/) | [网易云音乐](https://music.163.com/) ||| [netease.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/netease.py) |
129
- | [QianqianMusicClient](http://music.taihe.com/) | [千千音乐](http://music.taihe.com/) ||| [qianqian.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/qianqian.py) |
130
- | [QQMusicClient](https://y.qq.com/) | [QQ音乐](https://y.qq.com/) ||| [qq.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/qq.py) |
131
- | [XimalayaMusicClient](https://www.ximalaya.com/) | [喜马拉雅](https://www.ximalaya.com/) ||| [ximalaya.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/ximalaya.py) |
132
- | [JooxMusicClient](https://www.joox.com/intl) | [JOOX (QQ音乐海外版)](https://www.joox.com/intl) ||| [joox.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/joox.py) |
133
- | [TIDALMusicClient](https://tidal.com/) | [TIDAL (提供HiFi音质的流媒体平台)](https://tidal.com/) ||| [tidal.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/tidal.py) |
134
- | [YouTubeMusicClient](https://music.youtube.com/) | [油管音乐](https://music.youtube.com/) ||| [youtube.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/youtube.py) |
135
- | [AppleMusicClient](https://music.apple.com/) | [苹果音乐](https://music.apple.com/) ||| [apple.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/apple.py) |
136
- | [MP3JuiceMusicClient](https://mp3juice.co/) | [MP3 Juice (SoundCloud+YouTube源)](https://mp3juice.co/) ||| [mp3juice.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/mp3juice.py) |
137
- | [MituMusicClient](https://www.qqmp3.vip/) | [米兔音乐](https://www.qqmp3.vip/) ||| [mitu.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/mitu.py) |
138
- | [GequbaoMusicClient](https://www.gequbao.com/) | [歌曲宝](https://www.gequbao.com/) ||| [gequbao.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/gequbao.py) |
139
- | [YinyuedaoMusicClient](https://1mp3.top/) | [音乐岛](https://1mp3.top/) ||| [yinyuedao.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/yinyuedao.py) |
140
- | [BuguyyMusicClient](https://buguyy.top/) | [布谷音乐](https://buguyy.top/) ||| [buguyy.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/buguyy.py) |
141
- | [FangpiMusicClient](https://www.fangpi.net/) | [放屁音乐](https://www.fangpi.net/) ||| [fangpi.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/fangpi.py) |
142
- | [GDStudioMusicClient](https://music.gdstudio.xyz/) | [GD音乐台 (Spotify, Qobuz, B站等10个音乐源)](https://music.gdstudio.xyz/) || ✓ | [gdstudio.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/gdstudio.py) |
143
- | [JamendoMusicClient](https://www.jamendo.com/) | [简音乐 (欧美流行音乐)](https://www.jamendo.com/) ||| [jamendo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/jamendo.py) |
144
- | [BilibiliMusicClient](https://www.bilibili.com/audio/home/?type=9) | [Bilibili音乐](https://www.bilibili.com/audio/home/?type=9) ||| [bilibili.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/bilibili.py) |
145
- | [TuneHubMusicClient](https://music-dl.sayqz.com/) | [TuneHub音乐 (QQ网易云酷狗音乐源)](https://music-dl.sayqz.com/) ||| [tunehub.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/tunehub.py) |
120
+ | Category | MusicClient (EN) | MusicClient (CN) | 🔎 Search | ⬇️ Download | Code Snippet |
121
+ | :-- | :-- | :-- | :--: | :--: | :-- |
122
+ | **Mainland Platforms** | [BilibiliMusicClient](https://www.bilibili.com/audio/home/?type=9) | [Bilibili音乐](https://www.bilibili.com/audio/home/?type=9) ||| [bilibili.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/bilibili.py) |
123
+ | | [FiveSingMusicClient](https://5sing.kugou.com/index.html) | [5SING音乐](https://5sing.kugou.com/index.html) ||| [fivesing.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/fivesing.py) |
124
+ | | [KugouMusicClient](http://www.kugou.com/) | [酷狗音乐](http://www.kugou.com/) ||| [kugou.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/kugou.py) |
125
+ | | [KuwoMusicClient](http://www.kuwo.cn/) | [酷我音乐](http://www.kuwo.cn/) ||| [kuwo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/kuwo.py) |
126
+ | | [MiguMusicClient](https://music.migu.cn/v5/#/musicLibrary) | [咪咕音乐](https://music.migu.cn/v5/#/musicLibrary) ||| [migu.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/migu.py) |
127
+ | | [NeteaseMusicClient](https://music.163.com/) | [网易云音乐](https://music.163.com/) ||| [netease.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/netease.py) |
128
+ | | [QianqianMusicClient](http://music.taihe.com/) | [千千音乐](http://music.taihe.com/) ||| [qianqian.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/qianqian.py) |
129
+ | | [QQMusicClient](https://y.qq.com/) | [QQ音乐](https://y.qq.com/) ||| [qq.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/qq.py) |
130
+ | **Global Streaming / Indie** | [AppleMusicClient](https://music.apple.com/) | [苹果音乐](https://music.apple.com/) ||| [apple.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/apple.py) |
131
+ | | [JamendoMusicClient](https://www.jamendo.com/) | [简音乐 (欧美流行音乐)](https://www.jamendo.com/) ||| [jamendo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/jamendo.py) |
132
+ | | [JooxMusicClient](https://www.joox.com/intl) | [JOOX (QQ音乐海外版)](https://www.joox.com/intl) ||| [joox.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/joox.py) |
133
+ | | [TIDALMusicClient](https://tidal.com/) | [TIDAL (提供HiFi音质的流媒体平台)](https://tidal.com/) ||| [tidal.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/tidal.py) |
134
+ | | [YouTubeMusicClient](https://music.youtube.com/) | [油管音乐](https://music.youtube.com/) ||| [youtube.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/youtube.py) |
135
+ | **Audio / Radio** | [LizhiMusicClient](https://www.lizhi.fm/) | [荔枝FM](https://www.lizhi.fm/) ||| [lizhi.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/lizhi.py) |
136
+ | | [MissEvanMusicClient](https://www.missevan.com/) | [猫耳FM](https://www.missevan.com/) ||| [missevan.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/missevan.py) |
137
+ | | [XimalayaMusicClient](https://www.ximalaya.com/) | [喜马拉雅](https://www.ximalaya.com/) ||| [ximalaya.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/ximalaya.py) |
138
+ | **Aggregators / Multi-Source Gateways** | [GDStudioMusicClient](https://music.gdstudio.xyz/) | [GD音乐台 (Spotify, Qobuz等10个音乐源)](https://music.gdstudio.xyz/) ||| [gdstudio.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/gdstudio.py) |
139
+ | | [MP3JuiceMusicClient](https://mp3juice.co/) | [MP3 Juice (SoundCloud+YouTube音乐源)](https://mp3juice.co/) ||| [mp3juice.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/mp3juice.py) |
140
+ | | [MyFreeMP3MusicClient](https://www.myfreemp3.com.cn/) | [MyFreeMP3 (网易云+夸克音乐源)](https://www.myfreemp3.com.cn/) ||| [myfreemp3.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/myfreemp3.py) |
141
+ | | [TuneHubMusicClient](https://music-dl.sayqz.com/) | [TuneHub音乐 (QQ网易云酷狗音乐源)](https://music-dl.sayqz.com/) | ✅ || [tunehub.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/tunehub.py) |
142
+ | **Unofficial Download Sites / Scrapers** | [BuguyyMusicClient](https://buguyy.top/) | [布谷音乐](https://buguyy.top/) ||| [buguyy.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/buguyy.py) |
143
+ | | [FangpiMusicClient](https://www.fangpi.net/) | [放屁音乐](https://www.fangpi.net/) ||| [fangpi.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/fangpi.py) |
144
+ | | [FiveSongMusicClient](https://www.5song.xyz/index.html) | [5Song无损音乐](https://www.5song.xyz/index.html) ||| [fivesong.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/fivesong.py) |
145
+ | | [FLMP3MusicClient](https://www.flmp3.pro/index.html) | [凤梨音乐](https://www.flmp3.pro/index.html) | ✅ | ✅ | [flmp3.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/flmp3.py) |
146
+ | | [GequbaoMusicClient](https://www.gequbao.com/) | [歌曲宝](https://www.gequbao.com/) | ✅ | ✅ | [gequbao.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/gequbao.py) |
147
+ | | [GequhaiMusicClient](https://www.gequhai.com/) | [歌曲海](https://www.gequhai.com/) | ✅ | ✅ | [gequhai.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/gequhai.py) |
148
+ | | [HTQYYMusicClient](http://www.htqyy.com/) | [好听轻音乐网](http://www.htqyy.com/) | ✅ | ✅ | [htqyy.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/htqyy.py) |
149
+ | | [JCPOOMusicClient](https://www.jcpoo.cn/) | [九册音乐网](https://www.jcpoo.cn/) | ✅ | ✅ | [jcpoo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/jcpoo.py) |
150
+ | | [KKWSMusicClient](https://www.kkws.cc/) | [开开无损音乐](https://www.kkws.cc/) | ✅ | ✅ | [kkws.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/kkws.py) |
151
+ | | [LivePOOMusicClient](https://www.livepoo.cn/) | [力音](https://www.livepoo.cn/) | ✅ | ✅ | [livepoo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/livepoo.py) |
152
+ | | [MituMusicClient](https://www.qqmp3.vip/) | [米兔音乐](https://www.qqmp3.vip/) | ✅ | ✅ | [mitu.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/mitu.py) |
153
+ | | [TwoT58MusicClient](https://www.2t58.com/) | [爱听音乐网](https://www.2t58.com/) | ✅ | ✅ | [twot58.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/twot58.py) |
154
+ | | [YinyuedaoMusicClient](https://1mp3.top/) | [音乐岛](https://1mp3.top/) | ✅ | ✅ | [yinyuedao.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/yinyuedao.py) |
146
155
 
147
156
 
148
157
  # 🧪 Playground
@@ -177,11 +186,11 @@ cd musicdl
177
186
  python setup.py install
178
187
  ```
179
188
 
180
- Some of the music downloaders supported by `musicdl` require additional CLI tools to function properly, mainly for decrypting encrypted search/download requests and audio files.
189
+ Some of the music downloaders supported by musicdl require additional CLI tools to function properly, mainly for decrypting encrypted search/download requests and audio files.
181
190
  These CLI tools include,
182
191
 
183
192
  - [FFmpeg](https://www.ffmpeg.org/): At the moment, only `TIDALMusicClient` and `AppleMusicClient` depends on FFmpeg for audio file decoding.
184
- If you don’t need to use `TIDALMusicClient` and `AppleMusicClient` when working with `musicdl`, you don’t need to install FFmpeg.
193
+ If you don’t need to use `TIDALMusicClient` and `AppleMusicClient` when working with musicdl, you don’t need to install FFmpeg.
185
194
  After installing it, you should run the following command in a terminal (Command Prompt / PowerShell on Windows, Terminal on macOS/Linux) to check whether FFmpeg is on your system `PATH`:
186
195
  ```bash
187
196
  ffmpeg -version
@@ -189,7 +198,7 @@ These CLI tools include,
189
198
  If FFmpeg is installed correctly and on your `PATH`, this command will print the FFmpeg version information (*e.g.*, a few lines starting with `ffmpeg version ...`).
190
199
  If you see an error like `command not found` or `'ffmpeg' is not recognized as an internal or external command`, then FFmpeg is either not installed or not added to your `PATH`.
191
200
 
192
- - [Node.js](https://nodejs.org/en): Currently, only `YouTubeMusicClient` in `musicdl` depends on Node.js, so if you don’t need `YouTubeMusicClient`, you don’t have to install Node.js.
201
+ - [Node.js](https://nodejs.org/en): Currently, only `YouTubeMusicClient` in musicdl depends on Node.js, so if you don’t need `YouTubeMusicClient`, you don’t have to install Node.js.
193
202
  Similar to FFmpeg, after installing Node.js, you should run the following command to check whether Node.js is on your system `PATH`:
194
203
  ```bash
195
204
  node -v (npm -v)
@@ -248,6 +257,23 @@ Of course, you can also run musicdl by entering the following equivalent command
248
257
  musicdl -m NeteaseMusicClient,MiguMusicClient,QQMusicClient,KugouMusicClient,KuwoMusicClient,QianqianMusicClient
249
258
  ```
250
259
 
260
+ Please note that musicdl uses six Mainland China music sources by default for searching.
261
+ If you need to use overseas music sources, you must manually specify the music platform each time you run the program.
262
+ For example:
263
+
264
+ ```bash
265
+ musicdl -m GDStudioMusicClient,JamendoMusicClient
266
+ ```
267
+
268
+ In addition, searching and downloading from many music sources simultaneously may be relatively slow.
269
+ Each run may take about 30–60 seconds.
270
+ If you are confident that your song can be found on a specific platform or a few platforms, for example, `NeteaseMusicClient`, `QQMusicClient` or `KuwoMusicClient`,
271
+ it is recommended to directly specify those platforms:
272
+
273
+ ```bash
274
+ musicdl -m NeteaseMusicClient,QQMusicClient,KuwoMusicClient
275
+ ```
276
+
251
277
  The demonstration is as follows,
252
278
 
253
279
  <div align="center">
@@ -354,7 +380,15 @@ If you want to use the [pyfreeproxy](https://github.com/CharlesPikachu/freeproxy
354
380
  from musicdl import musicdl
355
381
 
356
382
  init_music_clients_cfg = dict()
357
- init_music_clients_cfg['NeteaseMusicClient'] = {'search_size_per_source': 1000, 'auto_set_proxies': True, 'proxy_sources': ['QiyunipProxiedSession', 'ProxydailyProxiedSession']}
383
+ init_music_clients_cfg['NeteaseMusicClient'] = {
384
+ 'search_size_per_source': 1000, 'auto_set_proxies': True,
385
+ 'freeproxy_settings': dict(
386
+ proxy_sources=["ProxyScrapeProxiedSession", "ProxylistProxiedSession"],
387
+ init_proxied_session_cfg={"max_pages": 2, "filter_rule": {"country_code": ["CN"], "anonymity": ["elite"], "protocol": ["http", "https"]}},
388
+ disable_print=True,
389
+ max_tries=20
390
+ )
391
+ }
358
392
  music_client = musicdl.MusicClient(music_sources=['NeteaseMusicClient'], init_music_clients_cfg=init_music_clients_cfg)
359
393
  music_client.startcmdui()
360
394
  ```
@@ -362,7 +396,7 @@ music_client.startcmdui()
362
396
  The command-line usage is similar:
363
397
 
364
398
  ```bash
365
- musicdl -m NeteaseMusicClient -i "{'NeteaseMusicClient': {'search_size_per_source': 1000, 'auto_set_proxies': True, 'proxy_sources': ['QiyunipProxiedSession', 'ProxydailyProxiedSession']}}"
399
+ musicdl -m NeteaseMusicClient -i "{'NeteaseMusicClient': {'search_size_per_source': 1000, 'auto_set_proxies': True, 'freeproxy_settings': {'proxy_sources':['ProxyScrapeProxiedSession','ProxylistProxiedSession'],'init_proxied_session_cfg':{'max_pages':2,'filter_rule':{'country_code':['CN'],'anonymity':['elite'],'protocol':['http','https']}},'disable_print':True,'max_tries':20}}}"
366
400
  ```
367
401
 
368
402
  #### Separating Search and Download Results
@@ -462,9 +496,12 @@ music_client = musicdl.MusicClient(music_sources=['MituMusicClient', 'YinyuedaoM
462
496
  music_client.startcmdui()
463
497
  ```
464
498
 
465
- Please note that musicdl does not provide any speed-limit bypass for Quark Netdisk.
499
+ Please note that musicdl does not provide any speed-limit bypass for Quark Netdisk.
466
500
  If the cookies you supply belong to a non-VIP Quark account, the download speed may be limited to only a few hundred KB/s.
467
501
 
502
+ Also note that Quark Drive will first save the music file to your own Quark account (usually in the "From: Shares (来自: 分享)" folder) and then start the download.
503
+ Therefore, if your Quark storage is insufficient, the download may fail.
504
+
468
505
  #### TIDAL High-Quality Music Download
469
506
 
470
507
  If you want to download lossless-quality music from [TIDAL](https://tidal.com/), you need to make sure that [PyAV](https://github.com/PyAV-Org/PyAV) is available or that [FFmpeg](https://www.ffmpeg.org/) is in your environment variables,
@@ -620,7 +657,7 @@ If you still wish to perform a full-platform search, we recommend modifying the
620
657
  ```python
621
658
  from musicdl import musicdl
622
659
 
623
- init_music_clients_cfg = {'GDStudioMusicClient': {'search_size_per_source': 2}}
660
+ init_music_clients_cfg = {'GDStudioMusicClient': {'search_size_per_source': 1}}
624
661
  music_client = musicdl.MusicClient(music_sources=['GDStudioMusicClient'], init_music_clients_cfg=init_music_clients_cfg)
625
662
  music_client.startcmdui()
626
663
  ```
@@ -628,7 +665,7 @@ music_client.startcmdui()
628
665
  The equivalent command in the command line is:
629
666
 
630
667
  ```bash
631
- musicdl -m GDStudioMusicClient -i "{'GDStudioMusicClient': {'search_size_per_source': 2}}"
668
+ musicdl -m GDStudioMusicClient -i "{'GDStudioMusicClient': {'search_size_per_source': 1}}"
632
669
  ```
633
670
 
634
671
  Or, an even better option is to manually specify a few platforms where you believe your desired music files are likely to be found, for example:
@@ -689,23 +726,14 @@ For more details, please refer to the [official documentation](https://musicdl.r
689
726
 
690
727
  # ⭐ Recommended Projects
691
728
 
692
- - [Games](https://github.com/CharlesPikachu/Games): Create interesting games in pure python.
693
- - [DecryptLogin](https://github.com/CharlesPikachu/DecryptLogin): APIs for loginning some websites by using requests.
694
- - [Musicdl](https://github.com/CharlesPikachu/musicdl): A lightweight music downloader written in pure python.
695
- - [Videodl](https://github.com/CharlesPikachu/videodl): A lightweight video downloader written in pure python.
696
- - [Pytools](https://github.com/CharlesPikachu/pytools): Some useful tools written in pure python.
697
- - [PikachuWeChat](https://github.com/CharlesPikachu/pikachuwechat): Play WeChat with itchat-uos.
698
- - [Pydrawing](https://github.com/CharlesPikachu/pydrawing): Beautify your image or video.
699
- - [ImageCompressor](https://github.com/CharlesPikachu/imagecompressor): Image compressors written in pure python.
700
- - [FreeProxy](https://github.com/CharlesPikachu/freeproxy): Collecting free proxies from internet.
701
- - [Paperdl](https://github.com/CharlesPikachu/paperdl): Search and download paper from specific websites.
702
- - [Sciogovterminal](https://github.com/CharlesPikachu/sciogovterminal): Browse "The State Council Information Office of the People's Republic of China" in the terminal.
703
- - [CodeFree](https://github.com/CharlesPikachu/codefree): Make no code a reality.
704
- - [DeepLearningToys](https://github.com/CharlesPikachu/deeplearningtoys): Some deep learning toys implemented in pytorch.
705
- - [DataAnalysis](https://github.com/CharlesPikachu/dataanalysis): Some data analysis projects in charles_pikachu.
706
- - [Imagedl](https://github.com/CharlesPikachu/imagedl): Search and download images from specific websites.
707
- - [Pytoydl](https://github.com/CharlesPikachu/pytoydl): A toy deep learning framework built upon numpy.
708
- - [NovelDL](https://github.com/CharlesPikachu/noveldl): Search and download novels from some specific websites.
729
+ | Project | Stars | 📦 Version | Last Update | 🛠 Repository |
730
+ | ------------- | --------- | ----------- | ---------------- | -------- |
731
+ | 🎵 **Musicdl**<br/>轻量级无损音乐下载器 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/musicdl?style=flat-square)](https://github.com/CharlesPikachu/musicdl) | [![Version](https://img.shields.io/pypi/v/musicdl)](https://pypi.org/project/musicdl) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/musicdl?style=flat-square)](https://github.com/CharlesPikachu/musicdl/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/musicdl) |
732
+ | 🎬 **Videodl**<br/>轻量级高清无水印视频下载器 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/videodl?style=flat-square)](https://github.com/CharlesPikachu/videodl) | [![Version](https://img.shields.io/pypi/v/videofetch)](https://pypi.org/project/videofetch) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/videodl?style=flat-square)](https://github.com/CharlesPikachu/videodl/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/videodl) |
733
+ | 🖼️ **Imagedl**<br/>轻量级海量图片搜索下载器 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/imagedl?style=flat-square)](https://github.com/CharlesPikachu/imagedl) | [![Version](https://img.shields.io/pypi/v/pyimagedl)](https://pypi.org/project/pyimagedl) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/imagedl?style=flat-square)](https://github.com/CharlesPikachu/imagedl/commits/main) | [🛠 Repository](https://github.com/CharlesPikachu/imagedl) |
734
+ | 🌐 **FreeProxy**<br/>全球海量高质量免费代理采集器 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/freeproxy?style=flat-square)](https://github.com/CharlesPikachu/freeproxy) | [![Version](https://img.shields.io/pypi/v/pyfreeproxy)](https://pypi.org/project/pyfreeproxy) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/freeproxy?style=flat-square)](https://github.com/CharlesPikachu/freeproxy/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/freeproxy) |
735
+ | 🌐 **MusicSquare**<br/>简易音乐搜索下载和播放网页 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/musicsquare?style=flat-square)](https://github.com/CharlesPikachu/musicsquare) | [![Version](https://img.shields.io/pypi/v/musicdl)](https://pypi.org/project/musicdl) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/musicsquare?style=flat-square)](https://github.com/CharlesPikachu/musicsquare/commits/main) | [🛠 Repository](https://github.com/CharlesPikachu/musicsquare) |
736
+ | 🌐 **FreeGPTHub**<br/>真正免费的GPT统一接口 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/FreeGPTHub?style=flat-square)](https://github.com/CharlesPikachu/FreeGPTHub) | [![Version](https://img.shields.io/pypi/v/freegpthub)](https://pypi.org/project/freegpthub) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/FreeGPTHub?style=flat-square)](https://github.com/CharlesPikachu/FreeGPTHub/commits/main) | [🛠 Repository](https://github.com/CharlesPikachu/FreeGPTHub) |
709
737
 
710
738
 
711
739
  # 📚 Citation
@@ -59,11 +59,10 @@
59
59
 
60
60
  # 🎉 What's New
61
61
 
62
- - 2025-12-19: Released musicdl v2.7.4supports music search and download using TuneHubMusicClient.
63
- - 2025-12-17: Released musicdl v2.7.3supports native Bilibili music search and downloads, improves the search speed of some third-party APIs, refactors the Ximalaya music platform code, and includes several other minor code optimizations.
64
- - 2025-12-15: Released musicdl v2.7.2 — added support for jamendo and make some improvements.
65
- - 2025-12-11: Released musicdl v2.7.1added support for two new sites and fixed several potential bugs.
66
- - 2025-12-10: Released musicdl v2.7.0 — the code has been further refactored, with a large amount of redundant code removed or merged; all supported sites can now download lossless music (for some sites, you need to set your membership cookies in the command line or in the code), the search speed has been greatly optimized, and several problematic sites have been fixed.
62
+ - 2026-01-01: Released musicdl v2.8.2adjusted the FreeProxy API arguments, improved the robustness of fetching high-quality music from NetEase Cloud Music, QQ Music, and Migu Music, and fixed some bugs.
63
+ - 2025-12-31: Released musicdl v2.8.1support more lossless-music sharing sites, add pagination support for some of the previously supported sites, and fix the Rich display conflict under two-level concurrency with multi-source searching.
64
+ - 2025-12-29: Released musicdl v2.8.0 — added support for two additional sites, improved the search speed, stability and metadata completeness when fetching lossless tracks from some sites, and optimized certain default arguments (prioritize search speed).
65
+ - 2025-12-24: Released musicdl v2.7.6add support for MissEvan FM, and fix bugs on the Gequhai site.
67
66
 
68
67
 
69
68
  # 🎵 Introduction
@@ -80,31 +79,41 @@ If you are a rights holder and believe this repository infringes your rights, pl
80
79
 
81
80
  # 🎧 Supported Music Client
82
81
 
83
- | MusicClient (EN) | MusicClient (CN) | Search | Download | Code Snippet |
84
- | :----: | :----: | :----: | :----: | :----: |
85
- | [FiveSingMusicClient](https://5sing.kugou.com/index.html) | [5SING音乐](https://5sing.kugou.com/index.html) ||| [fivesing.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/fivesing.py) |
86
- | [KugouMusicClient](http://www.kugou.com/) | [酷狗音乐](http://www.kugou.com/) ||| [kugou.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/kugou.py) |
87
- | [KuwoMusicClient](http://www.kuwo.cn/) | [酷我音乐](http://www.kuwo.cn/) ||| [kuwo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/kuwo.py) |
88
- | [LizhiMusicClient](https://www.lizhi.fm/) | [荔枝FM](https://www.lizhi.fm/) ||| [lizhi.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/lizhi.py) |
89
- | [MiguMusicClient](https://music.migu.cn/v5/#/musicLibrary) | [咪咕音乐](https://music.migu.cn/v5/#/musicLibrary) ||| [migu.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/migu.py) |
90
- | [NeteaseMusicClient](https://music.163.com/) | [网易云音乐](https://music.163.com/) ||| [netease.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/netease.py) |
91
- | [QianqianMusicClient](http://music.taihe.com/) | [千千音乐](http://music.taihe.com/) ||| [qianqian.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/qianqian.py) |
92
- | [QQMusicClient](https://y.qq.com/) | [QQ音乐](https://y.qq.com/) ||| [qq.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/qq.py) |
93
- | [XimalayaMusicClient](https://www.ximalaya.com/) | [喜马拉雅](https://www.ximalaya.com/) ||| [ximalaya.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/ximalaya.py) |
94
- | [JooxMusicClient](https://www.joox.com/intl) | [JOOX (QQ音乐海外版)](https://www.joox.com/intl) ||| [joox.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/joox.py) |
95
- | [TIDALMusicClient](https://tidal.com/) | [TIDAL (提供HiFi音质的流媒体平台)](https://tidal.com/) ||| [tidal.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/tidal.py) |
96
- | [YouTubeMusicClient](https://music.youtube.com/) | [油管音乐](https://music.youtube.com/) ||| [youtube.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/youtube.py) |
97
- | [AppleMusicClient](https://music.apple.com/) | [苹果音乐](https://music.apple.com/) ||| [apple.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/apple.py) |
98
- | [MP3JuiceMusicClient](https://mp3juice.co/) | [MP3 Juice (SoundCloud+YouTube源)](https://mp3juice.co/) ||| [mp3juice.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/mp3juice.py) |
99
- | [MituMusicClient](https://www.qqmp3.vip/) | [米兔音乐](https://www.qqmp3.vip/) ||| [mitu.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/mitu.py) |
100
- | [GequbaoMusicClient](https://www.gequbao.com/) | [歌曲宝](https://www.gequbao.com/) ||| [gequbao.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/gequbao.py) |
101
- | [YinyuedaoMusicClient](https://1mp3.top/) | [音乐岛](https://1mp3.top/) ||| [yinyuedao.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/yinyuedao.py) |
102
- | [BuguyyMusicClient](https://buguyy.top/) | [布谷音乐](https://buguyy.top/) ||| [buguyy.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/buguyy.py) |
103
- | [FangpiMusicClient](https://www.fangpi.net/) | [放屁音乐](https://www.fangpi.net/) ||| [fangpi.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/fangpi.py) |
104
- | [GDStudioMusicClient](https://music.gdstudio.xyz/) | [GD音乐台 (Spotify, Qobuz, B站等10个音乐源)](https://music.gdstudio.xyz/) || ✓ | [gdstudio.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/gdstudio.py) |
105
- | [JamendoMusicClient](https://www.jamendo.com/) | [简音乐 (欧美流行音乐)](https://www.jamendo.com/) ||| [jamendo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/jamendo.py) |
106
- | [BilibiliMusicClient](https://www.bilibili.com/audio/home/?type=9) | [Bilibili音乐](https://www.bilibili.com/audio/home/?type=9) ||| [bilibili.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/bilibili.py) |
107
- | [TuneHubMusicClient](https://music-dl.sayqz.com/) | [TuneHub音乐 (QQ网易云酷狗音乐源)](https://music-dl.sayqz.com/) ||| [tunehub.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/tunehub.py) |
82
+ | Category | MusicClient (EN) | MusicClient (CN) | 🔎 Search | ⬇️ Download | Code Snippet |
83
+ | :-- | :-- | :-- | :--: | :--: | :-- |
84
+ | **Mainland Platforms** | [BilibiliMusicClient](https://www.bilibili.com/audio/home/?type=9) | [Bilibili音乐](https://www.bilibili.com/audio/home/?type=9) ||| [bilibili.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/bilibili.py) |
85
+ | | [FiveSingMusicClient](https://5sing.kugou.com/index.html) | [5SING音乐](https://5sing.kugou.com/index.html) ||| [fivesing.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/fivesing.py) |
86
+ | | [KugouMusicClient](http://www.kugou.com/) | [酷狗音乐](http://www.kugou.com/) ||| [kugou.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/kugou.py) |
87
+ | | [KuwoMusicClient](http://www.kuwo.cn/) | [酷我音乐](http://www.kuwo.cn/) ||| [kuwo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/kuwo.py) |
88
+ | | [MiguMusicClient](https://music.migu.cn/v5/#/musicLibrary) | [咪咕音乐](https://music.migu.cn/v5/#/musicLibrary) ||| [migu.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/migu.py) |
89
+ | | [NeteaseMusicClient](https://music.163.com/) | [网易云音乐](https://music.163.com/) ||| [netease.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/netease.py) |
90
+ | | [QianqianMusicClient](http://music.taihe.com/) | [千千音乐](http://music.taihe.com/) ||| [qianqian.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/qianqian.py) |
91
+ | | [QQMusicClient](https://y.qq.com/) | [QQ音乐](https://y.qq.com/) ||| [qq.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/qq.py) |
92
+ | **Global Streaming / Indie** | [AppleMusicClient](https://music.apple.com/) | [苹果音乐](https://music.apple.com/) ||| [apple.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/apple.py) |
93
+ | | [JamendoMusicClient](https://www.jamendo.com/) | [简音乐 (欧美流行音乐)](https://www.jamendo.com/) ||| [jamendo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/jamendo.py) |
94
+ | | [JooxMusicClient](https://www.joox.com/intl) | [JOOX (QQ音乐海外版)](https://www.joox.com/intl) ||| [joox.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/joox.py) |
95
+ | | [TIDALMusicClient](https://tidal.com/) | [TIDAL (提供HiFi音质的流媒体平台)](https://tidal.com/) ||| [tidal.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/tidal.py) |
96
+ | | [YouTubeMusicClient](https://music.youtube.com/) | [油管音乐](https://music.youtube.com/) ||| [youtube.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/youtube.py) |
97
+ | **Audio / Radio** | [LizhiMusicClient](https://www.lizhi.fm/) | [荔枝FM](https://www.lizhi.fm/) ||| [lizhi.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/lizhi.py) |
98
+ | | [MissEvanMusicClient](https://www.missevan.com/) | [猫耳FM](https://www.missevan.com/) ||| [missevan.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/missevan.py) |
99
+ | | [XimalayaMusicClient](https://www.ximalaya.com/) | [喜马拉雅](https://www.ximalaya.com/) ||| [ximalaya.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/ximalaya.py) |
100
+ | **Aggregators / Multi-Source Gateways** | [GDStudioMusicClient](https://music.gdstudio.xyz/) | [GD音乐台 (Spotify, Qobuz等10个音乐源)](https://music.gdstudio.xyz/) ||| [gdstudio.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/gdstudio.py) |
101
+ | | [MP3JuiceMusicClient](https://mp3juice.co/) | [MP3 Juice (SoundCloud+YouTube音乐源)](https://mp3juice.co/) ||| [mp3juice.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/mp3juice.py) |
102
+ | | [MyFreeMP3MusicClient](https://www.myfreemp3.com.cn/) | [MyFreeMP3 (网易云+夸克音乐源)](https://www.myfreemp3.com.cn/) ||| [myfreemp3.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/myfreemp3.py) |
103
+ | | [TuneHubMusicClient](https://music-dl.sayqz.com/) | [TuneHub音乐 (QQ网易云酷狗音乐源)](https://music-dl.sayqz.com/) | ✅ || [tunehub.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/common/tunehub.py) |
104
+ | **Unofficial Download Sites / Scrapers** | [BuguyyMusicClient](https://buguyy.top/) | [布谷音乐](https://buguyy.top/) ||| [buguyy.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/buguyy.py) |
105
+ | | [FangpiMusicClient](https://www.fangpi.net/) | [放屁音乐](https://www.fangpi.net/) ||| [fangpi.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/fangpi.py) |
106
+ | | [FiveSongMusicClient](https://www.5song.xyz/index.html) | [5Song无损音乐](https://www.5song.xyz/index.html) ||| [fivesong.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/fivesong.py) |
107
+ | | [FLMP3MusicClient](https://www.flmp3.pro/index.html) | [凤梨音乐](https://www.flmp3.pro/index.html) | ✅ | ✅ | [flmp3.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/flmp3.py) |
108
+ | | [GequbaoMusicClient](https://www.gequbao.com/) | [歌曲宝](https://www.gequbao.com/) | ✅ | ✅ | [gequbao.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/gequbao.py) |
109
+ | | [GequhaiMusicClient](https://www.gequhai.com/) | [歌曲海](https://www.gequhai.com/) | ✅ | ✅ | [gequhai.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/gequhai.py) |
110
+ | | [HTQYYMusicClient](http://www.htqyy.com/) | [好听轻音乐网](http://www.htqyy.com/) | ✅ | ✅ | [htqyy.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/htqyy.py) |
111
+ | | [JCPOOMusicClient](https://www.jcpoo.cn/) | [九册音乐网](https://www.jcpoo.cn/) | ✅ | ✅ | [jcpoo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/jcpoo.py) |
112
+ | | [KKWSMusicClient](https://www.kkws.cc/) | [开开无损音乐](https://www.kkws.cc/) | ✅ | ✅ | [kkws.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/kkws.py) |
113
+ | | [LivePOOMusicClient](https://www.livepoo.cn/) | [力音](https://www.livepoo.cn/) | ✅ | ✅ | [livepoo.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/livepoo.py) |
114
+ | | [MituMusicClient](https://www.qqmp3.vip/) | [米兔音乐](https://www.qqmp3.vip/) | ✅ | ✅ | [mitu.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/mitu.py) |
115
+ | | [TwoT58MusicClient](https://www.2t58.com/) | [爱听音乐网](https://www.2t58.com/) | ✅ | ✅ | [twot58.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/twot58.py) |
116
+ | | [YinyuedaoMusicClient](https://1mp3.top/) | [音乐岛](https://1mp3.top/) | ✅ | ✅ | [yinyuedao.py](https://github.com/CharlesPikachu/musicdl/blob/master/musicdl/modules/sources/yinyuedao.py) |
108
117
 
109
118
 
110
119
  # 🧪 Playground
@@ -139,11 +148,11 @@ cd musicdl
139
148
  python setup.py install
140
149
  ```
141
150
 
142
- Some of the music downloaders supported by `musicdl` require additional CLI tools to function properly, mainly for decrypting encrypted search/download requests and audio files.
151
+ Some of the music downloaders supported by musicdl require additional CLI tools to function properly, mainly for decrypting encrypted search/download requests and audio files.
143
152
  These CLI tools include,
144
153
 
145
154
  - [FFmpeg](https://www.ffmpeg.org/): At the moment, only `TIDALMusicClient` and `AppleMusicClient` depends on FFmpeg for audio file decoding.
146
- If you don’t need to use `TIDALMusicClient` and `AppleMusicClient` when working with `musicdl`, you don’t need to install FFmpeg.
155
+ If you don’t need to use `TIDALMusicClient` and `AppleMusicClient` when working with musicdl, you don’t need to install FFmpeg.
147
156
  After installing it, you should run the following command in a terminal (Command Prompt / PowerShell on Windows, Terminal on macOS/Linux) to check whether FFmpeg is on your system `PATH`:
148
157
  ```bash
149
158
  ffmpeg -version
@@ -151,7 +160,7 @@ These CLI tools include,
151
160
  If FFmpeg is installed correctly and on your `PATH`, this command will print the FFmpeg version information (*e.g.*, a few lines starting with `ffmpeg version ...`).
152
161
  If you see an error like `command not found` or `'ffmpeg' is not recognized as an internal or external command`, then FFmpeg is either not installed or not added to your `PATH`.
153
162
 
154
- - [Node.js](https://nodejs.org/en): Currently, only `YouTubeMusicClient` in `musicdl` depends on Node.js, so if you don’t need `YouTubeMusicClient`, you don’t have to install Node.js.
163
+ - [Node.js](https://nodejs.org/en): Currently, only `YouTubeMusicClient` in musicdl depends on Node.js, so if you don’t need `YouTubeMusicClient`, you don’t have to install Node.js.
155
164
  Similar to FFmpeg, after installing Node.js, you should run the following command to check whether Node.js is on your system `PATH`:
156
165
  ```bash
157
166
  node -v (npm -v)
@@ -210,6 +219,23 @@ Of course, you can also run musicdl by entering the following equivalent command
210
219
  musicdl -m NeteaseMusicClient,MiguMusicClient,QQMusicClient,KugouMusicClient,KuwoMusicClient,QianqianMusicClient
211
220
  ```
212
221
 
222
+ Please note that musicdl uses six Mainland China music sources by default for searching.
223
+ If you need to use overseas music sources, you must manually specify the music platform each time you run the program.
224
+ For example:
225
+
226
+ ```bash
227
+ musicdl -m GDStudioMusicClient,JamendoMusicClient
228
+ ```
229
+
230
+ In addition, searching and downloading from many music sources simultaneously may be relatively slow.
231
+ Each run may take about 30–60 seconds.
232
+ If you are confident that your song can be found on a specific platform or a few platforms, for example, `NeteaseMusicClient`, `QQMusicClient` or `KuwoMusicClient`,
233
+ it is recommended to directly specify those platforms:
234
+
235
+ ```bash
236
+ musicdl -m NeteaseMusicClient,QQMusicClient,KuwoMusicClient
237
+ ```
238
+
213
239
  The demonstration is as follows,
214
240
 
215
241
  <div align="center">
@@ -316,7 +342,15 @@ If you want to use the [pyfreeproxy](https://github.com/CharlesPikachu/freeproxy
316
342
  from musicdl import musicdl
317
343
 
318
344
  init_music_clients_cfg = dict()
319
- init_music_clients_cfg['NeteaseMusicClient'] = {'search_size_per_source': 1000, 'auto_set_proxies': True, 'proxy_sources': ['QiyunipProxiedSession', 'ProxydailyProxiedSession']}
345
+ init_music_clients_cfg['NeteaseMusicClient'] = {
346
+ 'search_size_per_source': 1000, 'auto_set_proxies': True,
347
+ 'freeproxy_settings': dict(
348
+ proxy_sources=["ProxyScrapeProxiedSession", "ProxylistProxiedSession"],
349
+ init_proxied_session_cfg={"max_pages": 2, "filter_rule": {"country_code": ["CN"], "anonymity": ["elite"], "protocol": ["http", "https"]}},
350
+ disable_print=True,
351
+ max_tries=20
352
+ )
353
+ }
320
354
  music_client = musicdl.MusicClient(music_sources=['NeteaseMusicClient'], init_music_clients_cfg=init_music_clients_cfg)
321
355
  music_client.startcmdui()
322
356
  ```
@@ -324,7 +358,7 @@ music_client.startcmdui()
324
358
  The command-line usage is similar:
325
359
 
326
360
  ```bash
327
- musicdl -m NeteaseMusicClient -i "{'NeteaseMusicClient': {'search_size_per_source': 1000, 'auto_set_proxies': True, 'proxy_sources': ['QiyunipProxiedSession', 'ProxydailyProxiedSession']}}"
361
+ musicdl -m NeteaseMusicClient -i "{'NeteaseMusicClient': {'search_size_per_source': 1000, 'auto_set_proxies': True, 'freeproxy_settings': {'proxy_sources':['ProxyScrapeProxiedSession','ProxylistProxiedSession'],'init_proxied_session_cfg':{'max_pages':2,'filter_rule':{'country_code':['CN'],'anonymity':['elite'],'protocol':['http','https']}},'disable_print':True,'max_tries':20}}}"
328
362
  ```
329
363
 
330
364
  #### Separating Search and Download Results
@@ -424,9 +458,12 @@ music_client = musicdl.MusicClient(music_sources=['MituMusicClient', 'YinyuedaoM
424
458
  music_client.startcmdui()
425
459
  ```
426
460
 
427
- Please note that musicdl does not provide any speed-limit bypass for Quark Netdisk.
461
+ Please note that musicdl does not provide any speed-limit bypass for Quark Netdisk.
428
462
  If the cookies you supply belong to a non-VIP Quark account, the download speed may be limited to only a few hundred KB/s.
429
463
 
464
+ Also note that Quark Drive will first save the music file to your own Quark account (usually in the "From: Shares (来自: 分享)" folder) and then start the download.
465
+ Therefore, if your Quark storage is insufficient, the download may fail.
466
+
430
467
  #### TIDAL High-Quality Music Download
431
468
 
432
469
  If you want to download lossless-quality music from [TIDAL](https://tidal.com/), you need to make sure that [PyAV](https://github.com/PyAV-Org/PyAV) is available or that [FFmpeg](https://www.ffmpeg.org/) is in your environment variables,
@@ -582,7 +619,7 @@ If you still wish to perform a full-platform search, we recommend modifying the
582
619
  ```python
583
620
  from musicdl import musicdl
584
621
 
585
- init_music_clients_cfg = {'GDStudioMusicClient': {'search_size_per_source': 2}}
622
+ init_music_clients_cfg = {'GDStudioMusicClient': {'search_size_per_source': 1}}
586
623
  music_client = musicdl.MusicClient(music_sources=['GDStudioMusicClient'], init_music_clients_cfg=init_music_clients_cfg)
587
624
  music_client.startcmdui()
588
625
  ```
@@ -590,7 +627,7 @@ music_client.startcmdui()
590
627
  The equivalent command in the command line is:
591
628
 
592
629
  ```bash
593
- musicdl -m GDStudioMusicClient -i "{'GDStudioMusicClient': {'search_size_per_source': 2}}"
630
+ musicdl -m GDStudioMusicClient -i "{'GDStudioMusicClient': {'search_size_per_source': 1}}"
594
631
  ```
595
632
 
596
633
  Or, an even better option is to manually specify a few platforms where you believe your desired music files are likely to be found, for example:
@@ -651,23 +688,14 @@ For more details, please refer to the [official documentation](https://musicdl.r
651
688
 
652
689
  # ⭐ Recommended Projects
653
690
 
654
- - [Games](https://github.com/CharlesPikachu/Games): Create interesting games in pure python.
655
- - [DecryptLogin](https://github.com/CharlesPikachu/DecryptLogin): APIs for loginning some websites by using requests.
656
- - [Musicdl](https://github.com/CharlesPikachu/musicdl): A lightweight music downloader written in pure python.
657
- - [Videodl](https://github.com/CharlesPikachu/videodl): A lightweight video downloader written in pure python.
658
- - [Pytools](https://github.com/CharlesPikachu/pytools): Some useful tools written in pure python.
659
- - [PikachuWeChat](https://github.com/CharlesPikachu/pikachuwechat): Play WeChat with itchat-uos.
660
- - [Pydrawing](https://github.com/CharlesPikachu/pydrawing): Beautify your image or video.
661
- - [ImageCompressor](https://github.com/CharlesPikachu/imagecompressor): Image compressors written in pure python.
662
- - [FreeProxy](https://github.com/CharlesPikachu/freeproxy): Collecting free proxies from internet.
663
- - [Paperdl](https://github.com/CharlesPikachu/paperdl): Search and download paper from specific websites.
664
- - [Sciogovterminal](https://github.com/CharlesPikachu/sciogovterminal): Browse "The State Council Information Office of the People's Republic of China" in the terminal.
665
- - [CodeFree](https://github.com/CharlesPikachu/codefree): Make no code a reality.
666
- - [DeepLearningToys](https://github.com/CharlesPikachu/deeplearningtoys): Some deep learning toys implemented in pytorch.
667
- - [DataAnalysis](https://github.com/CharlesPikachu/dataanalysis): Some data analysis projects in charles_pikachu.
668
- - [Imagedl](https://github.com/CharlesPikachu/imagedl): Search and download images from specific websites.
669
- - [Pytoydl](https://github.com/CharlesPikachu/pytoydl): A toy deep learning framework built upon numpy.
670
- - [NovelDL](https://github.com/CharlesPikachu/noveldl): Search and download novels from some specific websites.
691
+ | Project | Stars | 📦 Version | Last Update | 🛠 Repository |
692
+ | ------------- | --------- | ----------- | ---------------- | -------- |
693
+ | 🎵 **Musicdl**<br/>轻量级无损音乐下载器 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/musicdl?style=flat-square)](https://github.com/CharlesPikachu/musicdl) | [![Version](https://img.shields.io/pypi/v/musicdl)](https://pypi.org/project/musicdl) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/musicdl?style=flat-square)](https://github.com/CharlesPikachu/musicdl/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/musicdl) |
694
+ | 🎬 **Videodl**<br/>轻量级高清无水印视频下载器 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/videodl?style=flat-square)](https://github.com/CharlesPikachu/videodl) | [![Version](https://img.shields.io/pypi/v/videofetch)](https://pypi.org/project/videofetch) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/videodl?style=flat-square)](https://github.com/CharlesPikachu/videodl/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/videodl) |
695
+ | 🖼️ **Imagedl**<br/>轻量级海量图片搜索下载器 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/imagedl?style=flat-square)](https://github.com/CharlesPikachu/imagedl) | [![Version](https://img.shields.io/pypi/v/pyimagedl)](https://pypi.org/project/pyimagedl) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/imagedl?style=flat-square)](https://github.com/CharlesPikachu/imagedl/commits/main) | [🛠 Repository](https://github.com/CharlesPikachu/imagedl) |
696
+ | 🌐 **FreeProxy**<br/>全球海量高质量免费代理采集器 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/freeproxy?style=flat-square)](https://github.com/CharlesPikachu/freeproxy) | [![Version](https://img.shields.io/pypi/v/pyfreeproxy)](https://pypi.org/project/pyfreeproxy) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/freeproxy?style=flat-square)](https://github.com/CharlesPikachu/freeproxy/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/freeproxy) |
697
+ | 🌐 **MusicSquare**<br/>简易音乐搜索下载和播放网页 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/musicsquare?style=flat-square)](https://github.com/CharlesPikachu/musicsquare) | [![Version](https://img.shields.io/pypi/v/musicdl)](https://pypi.org/project/musicdl) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/musicsquare?style=flat-square)](https://github.com/CharlesPikachu/musicsquare/commits/main) | [🛠 Repository](https://github.com/CharlesPikachu/musicsquare) |
698
+ | 🌐 **FreeGPTHub**<br/>真正免费的GPT统一接口 | [![Stars](https://img.shields.io/github/stars/CharlesPikachu/FreeGPTHub?style=flat-square)](https://github.com/CharlesPikachu/FreeGPTHub) | [![Version](https://img.shields.io/pypi/v/freegpthub)](https://pypi.org/project/freegpthub) | [![Last Commit](https://img.shields.io/github/last-commit/CharlesPikachu/FreeGPTHub?style=flat-square)](https://github.com/CharlesPikachu/FreeGPTHub/commits/main) | [🛠 Repository](https://github.com/CharlesPikachu/FreeGPTHub) |
671
699
 
672
700
 
673
701
  # 📚 Citation