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.
- {musicdl-2.7.4 → musicdl-2.8.2}/LICENSE +1 -0
- {musicdl-2.7.4/musicdl.egg-info → musicdl-2.8.2}/PKG-INFO +84 -56
- {musicdl-2.7.4 → musicdl-2.8.2}/README.md +83 -55
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/__init__.py +1 -1
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/__init__.py +2 -2
- musicdl-2.8.2/musicdl/modules/common/__init__.py +5 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/common/gdstudio.py +1 -1
- {musicdl-2.7.4/musicdl/modules/sources → musicdl-2.8.2/musicdl/modules/common}/mp3juice.py +18 -32
- musicdl-2.8.2/musicdl/modules/common/myfreemp3.py +140 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/common/tunehub.py +5 -13
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/__init__.py +14 -3
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/apple.py +1 -1
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/base.py +43 -24
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/buguyy.py +19 -11
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/fangpi.py +15 -7
- musicdl-2.8.2/musicdl/modules/sources/fivesong.py +162 -0
- musicdl-2.8.2/musicdl/modules/sources/flmp3.py +145 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/gequbao.py +2 -2
- musicdl-2.8.2/musicdl/modules/sources/gequhai.py +191 -0
- musicdl-2.8.2/musicdl/modules/sources/htqyy.py +153 -0
- musicdl-2.8.2/musicdl/modules/sources/jcpoo.py +229 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/joox.py +1 -1
- musicdl-2.8.2/musicdl/modules/sources/kkws.py +178 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/kugou.py +5 -3
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/kuwo.py +61 -29
- musicdl-2.8.2/musicdl/modules/sources/livepoo.py +229 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/lizhi.py +1 -1
- musicdl-2.8.2/musicdl/modules/sources/migu.py +230 -0
- musicdl-2.8.2/musicdl/modules/sources/missevan.py +98 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/mitu.py +30 -6
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/netease.py +51 -21
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/qq.py +47 -0
- musicdl-2.8.2/musicdl/modules/sources/twot58.py +117 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/ximalaya.py +14 -79
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/yinyuedao.py +25 -6
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/__init__.py +3 -2
- musicdl-2.8.2/musicdl/modules/utils/ip.py +119 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/lyric.py +26 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/misc.py +12 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/qqutils.py +2 -2
- musicdl-2.8.2/musicdl/modules/utils/quarkparser.py +210 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/musicdl.py +20 -10
- {musicdl-2.7.4 → musicdl-2.8.2/musicdl.egg-info}/PKG-INFO +84 -56
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/SOURCES.txt +12 -1
- musicdl-2.7.4/musicdl/modules/common/__init__.py +0 -3
- musicdl-2.7.4/musicdl/modules/sources/migu.py +0 -181
- musicdl-2.7.4/musicdl/modules/utils/quarkparser.py +0 -105
- {musicdl-2.7.4 → musicdl-2.8.2}/MANIFEST.in +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/js/__init__.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/js/youtube/__init__.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/js/youtube/botguard.js +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/js/youtube/jsinterp.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/js/youtube/runner.js +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/bilibili.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/fivesing.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/jamendo.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/qianqian.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/tidal.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/sources/youtube.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/appleutils.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/data.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/logger.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/modulebuilder.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/neteaseutils.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/songinfoutils.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/tidalutils.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl/modules/utils/youtubeutils.py +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/dependency_links.txt +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/entry_points.txt +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/requires.txt +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/top_level.txt +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/musicdl.egg-info/zip-safe +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/setup.cfg +0 -0
- {musicdl-2.7.4 → musicdl-2.8.2}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: musicdl
|
|
3
|
-
Version: 2.
|
|
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
|
-
-
|
|
101
|
-
- 2025-12-
|
|
102
|
-
- 2025-12-
|
|
103
|
-
- 2025-12-
|
|
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.2 — adjusted 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.1 — support 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.6 — add 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
|
-
|
|
|
122
|
-
|
|
|
123
|
-
|
|
|
124
|
-
|
|
|
125
|
-
|
|
|
126
|
-
|
|
|
127
|
-
|
|
|
128
|
-
|
|
|
129
|
-
|
|
|
130
|
-
|
|
|
131
|
-
|
|
|
132
|
-
|
|
|
133
|
-
|
|
|
134
|
-
|
|
|
135
|
-
|
|
|
136
|
-
|
|
|
137
|
-
|
|
|
138
|
-
|
|
|
139
|
-
| [
|
|
140
|
-
|
|
|
141
|
-
|
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
|
|
|
145
|
-
|
|
|
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
|
|
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
|
|
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
|
|
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'] = {
|
|
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':
|
|
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':
|
|
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':
|
|
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
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
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/>轻量级无损音乐下载器 | [](https://github.com/CharlesPikachu/musicdl) | [](https://pypi.org/project/musicdl) | [](https://github.com/CharlesPikachu/musicdl/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/musicdl) |
|
|
732
|
+
| 🎬 **Videodl**<br/>轻量级高清无水印视频下载器 | [](https://github.com/CharlesPikachu/videodl) | [](https://pypi.org/project/videofetch) | [](https://github.com/CharlesPikachu/videodl/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/videodl) |
|
|
733
|
+
| 🖼️ **Imagedl**<br/>轻量级海量图片搜索下载器 | [](https://github.com/CharlesPikachu/imagedl) | [](https://pypi.org/project/pyimagedl) | [](https://github.com/CharlesPikachu/imagedl/commits/main) | [🛠 Repository](https://github.com/CharlesPikachu/imagedl) |
|
|
734
|
+
| 🌐 **FreeProxy**<br/>全球海量高质量免费代理采集器 | [](https://github.com/CharlesPikachu/freeproxy) | [](https://pypi.org/project/pyfreeproxy) | [](https://github.com/CharlesPikachu/freeproxy/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/freeproxy) |
|
|
735
|
+
| 🌐 **MusicSquare**<br/>简易音乐搜索下载和播放网页 | [](https://github.com/CharlesPikachu/musicsquare) | [](https://pypi.org/project/musicdl) | [](https://github.com/CharlesPikachu/musicsquare/commits/main) | [🛠 Repository](https://github.com/CharlesPikachu/musicsquare) |
|
|
736
|
+
| 🌐 **FreeGPTHub**<br/>真正免费的GPT统一接口 | [](https://github.com/CharlesPikachu/FreeGPTHub) | [](https://pypi.org/project/freegpthub) | [](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
|
-
-
|
|
63
|
-
- 2025-12-
|
|
64
|
-
- 2025-12-
|
|
65
|
-
- 2025-12-
|
|
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.2 — adjusted 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.1 — support 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.6 — add 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
|
-
|
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
|
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
| [
|
|
102
|
-
|
|
|
103
|
-
|
|
|
104
|
-
|
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
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
|
|
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
|
|
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
|
|
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'] = {
|
|
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':
|
|
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':
|
|
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':
|
|
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
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
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/>轻量级无损音乐下载器 | [](https://github.com/CharlesPikachu/musicdl) | [](https://pypi.org/project/musicdl) | [](https://github.com/CharlesPikachu/musicdl/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/musicdl) |
|
|
694
|
+
| 🎬 **Videodl**<br/>轻量级高清无水印视频下载器 | [](https://github.com/CharlesPikachu/videodl) | [](https://pypi.org/project/videofetch) | [](https://github.com/CharlesPikachu/videodl/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/videodl) |
|
|
695
|
+
| 🖼️ **Imagedl**<br/>轻量级海量图片搜索下载器 | [](https://github.com/CharlesPikachu/imagedl) | [](https://pypi.org/project/pyimagedl) | [](https://github.com/CharlesPikachu/imagedl/commits/main) | [🛠 Repository](https://github.com/CharlesPikachu/imagedl) |
|
|
696
|
+
| 🌐 **FreeProxy**<br/>全球海量高质量免费代理采集器 | [](https://github.com/CharlesPikachu/freeproxy) | [](https://pypi.org/project/pyfreeproxy) | [](https://github.com/CharlesPikachu/freeproxy/commits/master) | [🛠 Repository](https://github.com/CharlesPikachu/freeproxy) |
|
|
697
|
+
| 🌐 **MusicSquare**<br/>简易音乐搜索下载和播放网页 | [](https://github.com/CharlesPikachu/musicsquare) | [](https://pypi.org/project/musicdl) | [](https://github.com/CharlesPikachu/musicsquare/commits/main) | [🛠 Repository](https://github.com/CharlesPikachu/musicsquare) |
|
|
698
|
+
| 🌐 **FreeGPTHub**<br/>真正免费的GPT统一接口 | [](https://github.com/CharlesPikachu/FreeGPTHub) | [](https://pypi.org/project/freegpthub) | [](https://github.com/CharlesPikachu/FreeGPTHub/commits/main) | [🛠 Repository](https://github.com/CharlesPikachu/FreeGPTHub) |
|
|
671
699
|
|
|
672
700
|
|
|
673
701
|
# 📚 Citation
|