qqmusic-api-python 0.1.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 (36) hide show
  1. qqmusic_api_python-0.1.2/LICENSE +21 -0
  2. qqmusic_api_python-0.1.2/PKG-INFO +112 -0
  3. qqmusic_api_python-0.1.2/README.md +78 -0
  4. qqmusic_api_python-0.1.2/pyproject.toml +68 -0
  5. qqmusic_api_python-0.1.2/qqmusic_api/__init__.py +17 -0
  6. qqmusic_api_python-0.1.2/qqmusic_api/album.py +38 -0
  7. qqmusic_api_python-0.1.2/qqmusic_api/data/api/album.json +20 -0
  8. qqmusic_api_python-0.1.2/qqmusic_api/data/api/login.json +69 -0
  9. qqmusic_api_python-0.1.2/qqmusic_api/data/api/mv.json +26 -0
  10. qqmusic_api_python-0.1.2/qqmusic_api/data/api/search.json +73 -0
  11. qqmusic_api_python-0.1.2/qqmusic_api/data/api/singer.json +48 -0
  12. qqmusic_api_python-0.1.2/qqmusic_api/data/api/song.json +105 -0
  13. qqmusic_api_python-0.1.2/qqmusic_api/data/api/songlist.json +17 -0
  14. qqmusic_api_python-0.1.2/qqmusic_api/data/api/top.json +20 -0
  15. qqmusic_api_python-0.1.2/qqmusic_api/data/file_type.json +50 -0
  16. qqmusic_api_python-0.1.2/qqmusic_api/data/search_type.json +11 -0
  17. qqmusic_api_python-0.1.2/qqmusic_api/exceptions/ApiException.py +11 -0
  18. qqmusic_api_python-0.1.2/qqmusic_api/exceptions/CredentialNoMusicidException.py +6 -0
  19. qqmusic_api_python-0.1.2/qqmusic_api/exceptions/CredentialNoMusickeyException.py +6 -0
  20. qqmusic_api_python-0.1.2/qqmusic_api/exceptions/CredentialNoRefreshkeyException.py +6 -0
  21. qqmusic_api_python-0.1.2/qqmusic_api/exceptions/LoginException.py +6 -0
  22. qqmusic_api_python-0.1.2/qqmusic_api/exceptions/ResponseCodeException.py +23 -0
  23. qqmusic_api_python-0.1.2/qqmusic_api/exceptions/__init__.py +15 -0
  24. qqmusic_api_python-0.1.2/qqmusic_api/login.py +429 -0
  25. qqmusic_api_python-0.1.2/qqmusic_api/mv.py +116 -0
  26. qqmusic_api_python-0.1.2/qqmusic_api/search.py +167 -0
  27. qqmusic_api_python-0.1.2/qqmusic_api/singer.py +249 -0
  28. qqmusic_api_python-0.1.2/qqmusic_api/song.py +431 -0
  29. qqmusic_api_python-0.1.2/qqmusic_api/songlist.py +84 -0
  30. qqmusic_api_python-0.1.2/qqmusic_api/top.py +101 -0
  31. qqmusic_api_python-0.1.2/qqmusic_api/utils/__init__.py +0 -0
  32. qqmusic_api_python-0.1.2/qqmusic_api/utils/credential.py +94 -0
  33. qqmusic_api_python-0.1.2/qqmusic_api/utils/network.py +289 -0
  34. qqmusic_api_python-0.1.2/qqmusic_api/utils/qimei.py +224 -0
  35. qqmusic_api_python-0.1.2/qqmusic_api/utils/sync.py +34 -0
  36. qqmusic_api_python-0.1.2/qqmusic_api/utils/utils.py +123 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Luren
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,112 @@
1
+ Metadata-Version: 2.1
2
+ Name: qqmusic-api-python
3
+ Version: 0.1.2
4
+ Summary: QQ音乐API封装库
5
+ Home-page: https://github.com/luren-dc/QQMusicApi
6
+ License: MIT
7
+ Keywords: music,api,qqmusic,tencentmusic
8
+ Author: Luren
9
+ Author-email: dluren.c@gmail.com
10
+ Maintainer: Luren
11
+ Maintainer-email: dluren.c@gmail.com
12
+ Requires-Python: >=3.9,<4.0
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Framework :: Pytest
15
+ Classifier: Framework :: aiohttp
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Natural Language :: Chinese (Simplified)
18
+ Classifier: Programming Language :: Python
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3 :: Only
25
+ Classifier: Programming Language :: Python :: Implementation :: CPython
26
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
+ Requires-Dist: aiohttp (>=3.9.5,<4.0.0)
28
+ Requires-Dist: cryptography (>=41.0.2,<42.0.0)
29
+ Requires-Dist: requests (>=2.31.0,<3.0.0)
30
+ Project-URL: Documentation, https://github.com/luren-dc/QQMusicApi
31
+ Project-URL: Repository, https://github.com/luren-dc/QQMusicApi
32
+ Description-Content-Type: text/markdown
33
+
34
+ <div align="center">
35
+ <h1> QQMusic Api </h1>
36
+ <p> Python QQ音乐 API 封装库 </p>
37
+
38
+ ![Python Version 3.9+](https://img.shields.io/badge/Python-3.9%2B-blue)
39
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
40
+ [![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)
41
+ ![GitHub license](https://img.shields.io/github/license/luren-dc/PyQQMusicApi)
42
+
43
+ </div>
44
+
45
+ ---
46
+
47
+ > [!WARNING]
48
+ > 本仓库的所有内容仅供学习和参考之用,禁止用于商业用途。
49
+
50
+ 文档: [https://luren-dc.github.io/QQMusicApi/](https://luren-dc.github.io/QQMusicApi/)
51
+
52
+ ## 介绍
53
+
54
+ 使用 Python 编写的用于调用 [QQ音乐](https://y.qq.com/) 各种 API 的库.
55
+
56
+ ## 依赖
57
+
58
+ 本项目基于:
59
+
60
+ - [AIOHTTP](https://docs.aiohttp.org/)
61
+ - [Requests](https://requests.readthedocs.io/)
62
+ - [Cryptography](https://cryptography.io/)
63
+
64
+ ## 快速上手
65
+
66
+ ### 安装
67
+
68
+ #### pypi
69
+
70
+ ```shell
71
+ $ pip install qqmusic-api-python
72
+ ```
73
+
74
+ #### source
75
+
76
+ ```shell
77
+ $ pip install git+https://github.com/luren-dc/QQMusicApi.git
78
+ ```
79
+
80
+ ### 使用
81
+
82
+ ```python
83
+ import asyncio
84
+
85
+ from qqmusic_api import search
86
+
87
+ async def main():
88
+ # 搜索歌曲
89
+ result = await search.search_by_type(keyword="周杰伦", num=20)
90
+ # 打印结果
91
+ print(result)
92
+
93
+ if __name__ == "__main__":
94
+ asyncio.run(main())
95
+ ```
96
+
97
+ ## TODO
98
+
99
+ - [ ] 歌手 API
100
+ - [ ] 评论 API
101
+ - [ ] 用户 API
102
+
103
+ ## 参考项目
104
+
105
+ - [Rain120/qq-muisc-api](https://github.com/Rain120/qq-music-api)
106
+ - [jsososo/QQMusicApi](https://github.com/jsososo/QQMusicApi)
107
+ - [Nemo2011/bilibili-api](https://github.com/Nemo2011/bilibili-api/)
108
+
109
+ ## Licence
110
+
111
+ **[MIT License](https://github.com/luren-dc/QQMusicApi?tab=MIT-1-ov-file)**
112
+
@@ -0,0 +1,78 @@
1
+ <div align="center">
2
+ <h1> QQMusic Api </h1>
3
+ <p> Python QQ音乐 API 封装库 </p>
4
+
5
+ ![Python Version 3.9+](https://img.shields.io/badge/Python-3.9%2B-blue)
6
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
7
+ [![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)
8
+ ![GitHub license](https://img.shields.io/github/license/luren-dc/PyQQMusicApi)
9
+
10
+ </div>
11
+
12
+ ---
13
+
14
+ > [!WARNING]
15
+ > 本仓库的所有内容仅供学习和参考之用,禁止用于商业用途。
16
+
17
+ 文档: [https://luren-dc.github.io/QQMusicApi/](https://luren-dc.github.io/QQMusicApi/)
18
+
19
+ ## 介绍
20
+
21
+ 使用 Python 编写的用于调用 [QQ音乐](https://y.qq.com/) 各种 API 的库.
22
+
23
+ ## 依赖
24
+
25
+ 本项目基于:
26
+
27
+ - [AIOHTTP](https://docs.aiohttp.org/)
28
+ - [Requests](https://requests.readthedocs.io/)
29
+ - [Cryptography](https://cryptography.io/)
30
+
31
+ ## 快速上手
32
+
33
+ ### 安装
34
+
35
+ #### pypi
36
+
37
+ ```shell
38
+ $ pip install qqmusic-api-python
39
+ ```
40
+
41
+ #### source
42
+
43
+ ```shell
44
+ $ pip install git+https://github.com/luren-dc/QQMusicApi.git
45
+ ```
46
+
47
+ ### 使用
48
+
49
+ ```python
50
+ import asyncio
51
+
52
+ from qqmusic_api import search
53
+
54
+ async def main():
55
+ # 搜索歌曲
56
+ result = await search.search_by_type(keyword="周杰伦", num=20)
57
+ # 打印结果
58
+ print(result)
59
+
60
+ if __name__ == "__main__":
61
+ asyncio.run(main())
62
+ ```
63
+
64
+ ## TODO
65
+
66
+ - [ ] 歌手 API
67
+ - [ ] 评论 API
68
+ - [ ] 用户 API
69
+
70
+ ## 参考项目
71
+
72
+ - [Rain120/qq-muisc-api](https://github.com/Rain120/qq-music-api)
73
+ - [jsososo/QQMusicApi](https://github.com/jsososo/QQMusicApi)
74
+ - [Nemo2011/bilibili-api](https://github.com/Nemo2011/bilibili-api/)
75
+
76
+ ## Licence
77
+
78
+ **[MIT License](https://github.com/luren-dc/QQMusicApi?tab=MIT-1-ov-file)**
@@ -0,0 +1,68 @@
1
+ [tool.poetry]
2
+ name = "qqmusic-api-python"
3
+ version = "0.1.2"
4
+ description = "QQ音乐API封装库"
5
+ authors = ["Luren <dluren.c@gmail.com>"]
6
+ packages = [{ include = "qqmusic_api" }]
7
+ license = "MIT"
8
+ readme = "README.md"
9
+ maintainers = ["Luren <dluren.c@gmail.com>"]
10
+ homepage = "https://github.com/luren-dc/QQMusicApi"
11
+ repository = "https://github.com/luren-dc/QQMusicApi"
12
+ documentation = "https://github.com/luren-dc/QQMusicApi"
13
+ keywords = ["music", "api", "qqmusic", "tencentmusic"]
14
+ classifiers = [
15
+ "Development Status :: 4 - Beta",
16
+ "Natural Language :: Chinese (Simplified)",
17
+ "License :: OSI Approved :: MIT License",
18
+ "Framework :: Pytest",
19
+ "Framework :: aiohttp",
20
+ "Programming Language :: Python",
21
+ "Programming Language :: Python :: 3 :: Only",
22
+ "Programming Language :: Python :: 3.9",
23
+ "Programming Language :: Python :: Implementation :: CPython",
24
+ "Topic :: Software Development :: Libraries :: Python Modules",
25
+ ]
26
+
27
+ [tool.poetry.dependencies]
28
+ python = "^3.9"
29
+ cryptography = "^41.0.2"
30
+ requests = "^2.31.0"
31
+ aiohttp = "^3.9.5"
32
+
33
+ [tool.poetry.group.dev.dependencies]
34
+ pytest = "^8.2.0"
35
+ pytest-asyncio = "^0.23.6"
36
+ pytest-sugar = "^1.0.0"
37
+ pre-commit = "^3.7.0"
38
+
39
+ [build-system]
40
+ requires = ["poetry-core"]
41
+ build-backend = "poetry.core.masonry.api"
42
+
43
+ [tool.mypy]
44
+ pretty = true
45
+ python_version = 3.9
46
+ show_column_numbers = true
47
+
48
+ [tool.ruff]
49
+ line-length = 120
50
+ target-version = "py39"
51
+
52
+ [tool.ruff.format]
53
+ docstring-code-format = true
54
+
55
+ [tool.ruff.lint]
56
+ select = [
57
+ "F",
58
+ "E",
59
+ "W",
60
+ "I",
61
+ "TCH",
62
+ "UP",
63
+ ]
64
+
65
+ [tool.pytest.ini_options]
66
+ pythonpath = "./"
67
+ testpaths = ["tests"]
68
+ asyncio_mode = "auto"
@@ -0,0 +1,17 @@
1
+ from . import album, login, mv, search, singer, song, songlist, top
2
+ from .utils.credential import Credential
3
+ from .utils.network import get_aiohttp_session, set_aiohttp_session
4
+
5
+ __all__ = [
6
+ "album",
7
+ "Credential",
8
+ "get_aiohttp_session",
9
+ "login",
10
+ "mv",
11
+ "search",
12
+ "set_aiohttp_session",
13
+ "singer",
14
+ "song",
15
+ "songlist",
16
+ "top",
17
+ ]
@@ -0,0 +1,38 @@
1
+ from .song import Song
2
+ from .utils.network import Api
3
+ from .utils.utils import get_api
4
+
5
+ API = get_api("album")
6
+
7
+
8
+ class Album:
9
+ """
10
+ 专辑类
11
+ """
12
+
13
+ def __init__(self, mid: str):
14
+ """
15
+ Args:
16
+ mid: 专辑 mid
17
+ """
18
+ self.mid = mid
19
+
20
+ def __repr__(self) -> str:
21
+ return f"Album(mid={self.mid})"
22
+
23
+ async def get_detail(self) -> dict:
24
+ """
25
+ Returns:
26
+ dict: 专辑详细信息
27
+ """
28
+ return await Api(**API["detail"]).update_params(albumMid=self.mid).result
29
+
30
+ async def get_song(self) -> list[Song]:
31
+ """
32
+ 获取专辑歌曲
33
+
34
+ Returns:
35
+ list: 歌曲列表
36
+ """
37
+ result = await Api(**API["song"]).update_params(albumMid=self.mid, begin=0, num=0).result
38
+ return [Song.from_dict(song["songInfo"]) for song in result["songList"]]
@@ -0,0 +1,20 @@
1
+ {
2
+ "detail": {
3
+ "module": "music.musichallAlbum.AlbumInfoServer",
4
+ "method": "GetAlbumDetail",
5
+ "params": {
6
+ "albumMid": "str 专辑 mid"
7
+ },
8
+ "comment": "获取专辑信息"
9
+ },
10
+ "song": {
11
+ "module": "music.musichallAlbum.AlbumSongList",
12
+ "method": "GetAlbumSongList",
13
+ "params": {
14
+ "albumMid": "str 专辑 mid",
15
+ "begin": "int 开启位置",
16
+ "num": "int 返回数量"
17
+ },
18
+ "comment": "获取专辑歌曲"
19
+ }
20
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "QQ_login": {
3
+ "module": "QQConnectLogin.LoginServer",
4
+ "method": "QQLogin",
5
+ "params": {
6
+ "code": "str 鉴权码"
7
+ },
8
+ "extra_common": {
9
+ "tmeLoginType": "str 2"
10
+ },
11
+ "comment": "QQ 鉴权"
12
+ },
13
+ "WX_login": {
14
+ "module": "music.login.LoginServer",
15
+ "method": "Login",
16
+ "params": {
17
+ "strAppid": "wx48db31d50e334801",
18
+ "code": "str 鉴权码"
19
+ },
20
+ "extra_common": {
21
+ "tmeLoginType": "str 1"
22
+ },
23
+ "comment": "微信鉴权"
24
+ },
25
+ "send_authcode": {
26
+ "module": "music.login.LoginServer",
27
+ "method": "SendPhoneAuthCode",
28
+ "params": {
29
+ "tmeAppid": "qqmusic",
30
+ "phoneNo": "str 手机号",
31
+ "areaCode": "int 地区码(86)"
32
+ },
33
+ "extra_common": {
34
+ "tmeLoginMethod": "str 3"
35
+ },
36
+ "comment": "发送验证码"
37
+ },
38
+ "phone_login": {
39
+ "module": "music.login.LoginServer",
40
+ "method": "Login",
41
+ "params": {
42
+ "code": "str 验证码",
43
+ "phoneNo": "str 手机号",
44
+ "loginMode": "int 1"
45
+ },
46
+ "extra_common": {
47
+ "tmeLoginMethod": "str 3"
48
+ },
49
+ "comment": "发送验证码"
50
+ },
51
+ "refresh": {
52
+ "module": "music.login.LoginServer",
53
+ "method": "Login",
54
+ "params": {
55
+ "openid": "str",
56
+ "access_token": "str",
57
+ "refresh_token": "str",
58
+ "expired_in": "int",
59
+ "musicid": "str 必须",
60
+ "musickey": "str",
61
+ "refresh_key": "str 必须",
62
+ "loginMode": "int 2"
63
+ },
64
+ "extra_common": {
65
+ "tmeLoginMethod": "str 可填2"
66
+ },
67
+ "comment": "刷新cookies"
68
+ }
69
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "detail": {
3
+ "module": "video.VideoDataServer",
4
+ "method": "get_video_info_batch",
5
+ "params": {
6
+ "vidlist": "list vid 列表",
7
+ "required": "list 查询字段"
8
+ },
9
+ "comment": "获取 MV 信息"
10
+ },
11
+ "url": {
12
+ "module": "music.stream.MvUrlProxy",
13
+ "method": "GetMvUrls",
14
+ "params": {
15
+ "vids": "list vid 列表",
16
+ "request_type": "int 10003",
17
+ "guid": "str 随机32位字符串",
18
+ "videoformat": "int 1",
19
+ "format": "int 265",
20
+ "dolby": "int 1",
21
+ "use_new_domain": "int 1",
22
+ "use_ipv6": "int 1"
23
+ },
24
+ "comment": "获取 MV 播放地址"
25
+ }
26
+ }
@@ -0,0 +1,73 @@
1
+ {
2
+ "hotkey": {
3
+ "module": "music.musicsearch.HotkeyService",
4
+ "method": "GetHotkeyForQQMusicMobile",
5
+ "params": {
6
+ "search_id": "int 随机生成"
7
+ },
8
+ "comment": "获取热搜词"
9
+ },
10
+ "complete": {
11
+ "module": "tencent_music_soso_smartbox_cgi.SmartBoxCgi",
12
+ "method": "GetSmartBoxResult",
13
+ "params": {
14
+ "query": "str 搜索词",
15
+ "num_per_page": "int 每页返回数量",
16
+ "highlight": "int 是否高亮搜索词",
17
+ "page_idx": "int 页数"
18
+ },
19
+ "comment": "获取搜索词补全"
20
+ },
21
+ "quick_search": {
22
+ "url": "https://c.y.qq.com/splcloud/fcgi-bin/smartbox_new.fcg",
23
+ "method": "GET",
24
+ "params": {
25
+ "key": "str 搜索词"
26
+ },
27
+ "comment": "桌面端快速搜索"
28
+ },
29
+ "general_search": {
30
+ "module": "music.adaptor.SearchAdaptor",
31
+ "method": "do_search_v2",
32
+ "params": {
33
+ "search_id": "int 随机生成",
34
+ "search_type": "int 100",
35
+ "query": "str 搜索词",
36
+ "highlight": "int 是否高亮搜索词",
37
+ "grp": "int 是否返回歌曲其他版本",
38
+ "page_id": "int 页数"
39
+ },
40
+ "comment": "综合搜索"
41
+ },
42
+ "desktop_search_by_type": {
43
+ "module": "music.search.SearchCgiService",
44
+ "method": "DoSearchForQQMusicDesktop",
45
+ "params": {
46
+ "search_id": "int 随机生成",
47
+ "search_type": "int 搜索类型",
48
+ "query": "str 搜索词",
49
+ "highlight": "int 是否高亮搜索词",
50
+ "page_id": "int 页数",
51
+ "page_num": "int 页数",
52
+ "num_per_page": "int 每页返回数量",
53
+ "selectors": "dict 选择器"
54
+ },
55
+ "comment": "桌面端搜索"
56
+ },
57
+ "mobile_search_by_type": {
58
+ "module": "music.search.SearchCgiService",
59
+ "method": "DoSearchForQQMusicMobile",
60
+ "params": {
61
+ "search_id": "int 随机生成",
62
+ "search_type": "int 搜索类型",
63
+ "query": "str 搜索词",
64
+ "highlight": "int 是否高亮搜索词",
65
+ "page_id": "int 页数",
66
+ "page_num": "int 页数",
67
+ "grp": "int 是否返回歌曲其他版本",
68
+ "num_per_page": "int 每页返回数量",
69
+ "selectors": "dict 选择器"
70
+ },
71
+ "comment": "手机端搜索"
72
+ }
73
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "singer_list": {
3
+ "module": "music.musichallSinger.SingerList",
4
+ "method": "GetSingerList",
5
+ "params": {
6
+ "area": "int 地区码",
7
+ "sex": "int 性别",
8
+ "genre": "int 风格",
9
+ "hastag": "int 返回标签"
10
+ },
11
+ "comment": "获取歌手列表"
12
+ },
13
+ "homepage": {
14
+ "module": "music.UnifiedHomepage.UnifiedHomepageSrv",
15
+ "method": "GetHomepageHeader",
16
+ "params": {
17
+ "SingerMid": "str 歌手 mid",
18
+ "IsQueryTabDetail": "int 是否返回 Tab 详细信息",
19
+ "TabID": "int TabID",
20
+ "Order": "int 排序"
21
+ },
22
+ "comment": "获取歌手主页信息"
23
+ },
24
+ "desc": {
25
+ "module": "music.musichallSinger.SingerInfoInter",
26
+ "method": "GetSingerDetail",
27
+ "params": {
28
+ "singer_mids": "list 歌手 mid 列表",
29
+ "group_singer": "int 1",
30
+ "wiki_singer": "int 1"
31
+ },
32
+ "comment": "获取歌手简介"
33
+ },
34
+ "homepage_tab_detail": {
35
+ "module": "music.UnifiedHomepage.UnifiedHomepageSrv",
36
+ "method": "GetHomepageTabDetail",
37
+ "params": {
38
+ "SingerMid": "str 歌手 mid",
39
+ "IsQueryTabDetail": "int 是否返回 Tab 详细信息",
40
+ "TabID": "int TabID",
41
+ "PageNum": "int 页码",
42
+ "PageSize": "int 返回数量",
43
+ "StartIndex": "int 开始位置",
44
+ "Order": "int 排序"
45
+ },
46
+ "comment": "获取歌手首页 Tab 栏信息"
47
+ }
48
+ }
@@ -0,0 +1,105 @@
1
+ {
2
+ "query": {
3
+ "module": "music.trackInfo.UniformRuleCtrl",
4
+ "method": "CgiGetTrackInfo",
5
+ "params": {
6
+ "ids": "list id列表",
7
+ "mids": "list mid列表",
8
+ "types": "[0 for i in range(len(id or mid))]",
9
+ "modify_stamp": "[0 for i in range(len(id or mid))]",
10
+ "ctx": "int 0",
11
+ "client": "int 1"
12
+ },
13
+ "comment": "使用 ID 或 mid 查询歌曲"
14
+ },
15
+ "detail": {
16
+ "module": "music.pf_song_detail_svr",
17
+ "method": "get_song_detail_yqq",
18
+ "params": {
19
+ "song_id": "int 歌曲 ID",
20
+ "song_mid": "str 歌曲 mid"
21
+ },
22
+ "comment": "获取歌曲详细信息"
23
+ },
24
+ "similar": {
25
+ "module": "music.recommend.TrackRelationServer",
26
+ "method": "GetSimilarSongs",
27
+ "params": {
28
+ "songid": "int 歌曲 ID"
29
+ },
30
+ "comment": "获取相似歌曲"
31
+ },
32
+ "labels": {
33
+ "module": "music.recommend.TrackRelationServer",
34
+ "method": "GetSongLabels",
35
+ "params": {
36
+ "songid": "int 歌曲 ID"
37
+ },
38
+ "comment": "获取歌曲标签"
39
+ },
40
+ "playlist": {
41
+ "module": "music.recommend.TrackRelationServer",
42
+ "method": "GetRelatedPlaylist",
43
+ "params": {
44
+ "songid": "int 歌曲 ID"
45
+ },
46
+ "comment": "获取相关歌单"
47
+ },
48
+ "mv": {
49
+ "module": "MvService.MvInfoProServer",
50
+ "method": "GetSongRelatedMv",
51
+ "params": {
52
+ "songid": "int 歌曲 ID",
53
+ "songmid": "str 歌曲 mid"
54
+ },
55
+ "comment": "获取相关MV"
56
+ },
57
+ "other": {
58
+ "module": "music.musichallSong.OtherVersionServer",
59
+ "method": "GetOtherVersionSongs",
60
+ "params": {
61
+ "songid": "int 歌曲 ID",
62
+ "songmid": "str 歌曲 mid"
63
+ },
64
+ "comment": "获取其他版本"
65
+ },
66
+ "sheet": {
67
+ "module": "music.mir.SheetMusicSvr",
68
+ "method": "GetMoreSheetMusic",
69
+ "params": {
70
+ "songmid": "str 歌曲 mid"
71
+ },
72
+ "comment": "获取相关曲谱"
73
+ },
74
+ "producer": {
75
+ "module": "music.sociality.KolWorksTag",
76
+ "method": "SongProducer",
77
+ "params": {
78
+ "songid": "int 歌曲 ID",
79
+ "songmid": "str 歌曲 mid"
80
+ },
81
+ "comment": "获取歌曲制作团队"
82
+ },
83
+ "play_url": {
84
+ "module": "music.vkey.GetVkey",
85
+ "method": "UrlGetVkey",
86
+ "params": {
87
+ "filename": "[f'{file_type.s}{_}{_}{file_type.e}' for _ in mid]",
88
+ "guid": "str 随机32位字符串",
89
+ "songmid": "list mid 列表",
90
+ "songtype": "[1 for _ in range(len(mid))]"
91
+ },
92
+ "comment": "获取播放链接"
93
+ },
94
+ "download_url": {
95
+ "module": "music.vkey.GetDownUrl",
96
+ "method": "CgiGetDownUrl",
97
+ "params": {
98
+ "filename": "[f'{file_type.s}{_}{_}{file_type.e}' for _ in mid]",
99
+ "guid": "str 随机32位字符串",
100
+ "songmid": "list mid 列表",
101
+ "songtype": "[1 for _ in range(len(mid))]"
102
+ },
103
+ "comment": "获取下载链接"
104
+ }
105
+ }