{ "info": { "author": "MeiK-H", "author_email": "meik2333@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "\n# QQMusicAPI\n[![Build Status](https://travis-ci.org/MeiK-h/QQMusicAPI.svg?branch=master)](https://travis-ci.org/MeiK-h/QQMusicAPI)\n![PyPI](https://img.shields.io/pypi/v/diego.svg?style=flat)\n![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/MeiK-h/QQMusicAPI.svg)\n\n## \u652f\u6301\u7684\u7248\u672c\n\n\u672c\u9879\u76ee\u4f7f\u7528 python 3.6.7 \u8fdb\u884c\u5f00\u53d1\uff0c\u4ec5\u4fdd\u8bc1\u5728\u8be5\u7248\u672c\u4e0a\u53ef\u4ee5\u8fd0\u884c\u3002\u4ee5\u4e0b\u662f\u7ecf\u6d4b\u8bd5\u4e5f\u53ef\u4ee5\u4f7f\u7528\u7684\u7248\u672c\uff08\u4f46**\u4e0d\u4fdd\u8bc1**\u6240\u6709\u529f\u80fd\u6b63\u5e38\u53ef\u7528\uff09\uff1a\n\n- python 2.6+\n- python 3.5+\n\n\u6ce8\u610f\uff1a\u56e0\u4e3a\u5bf9\u5b57\u7b26\u4e32\u7684\u5904\u7406\u65b9\u5f0f\u4e0d\u540c\uff0c\u5728 Python2 \u4e2d\uff0c\u6240\u6709\u7c7b\u7684 `__repr__` \u65b9\u6cd5\u4e0e `__str__` \u65b9\u6cd5\u5c06**\u4e0d\u53ef\u7528**\u3002\n\n## \u652f\u6301\u7684\u5e73\u53f0\n\n\u672c\u9879\u76ee\u4f7f\u7528 Ubuntu 18.04 \u8fdb\u884c\u5f00\u53d1\uff0c\u4ec5\u4fdd\u8bc1\u5728\u8be5\u5e73\u53f0\u4e0a\u53ef\u7528\u3002\n\n\u9879\u76ee\u6ca1\u6709\u5e73\u53f0\u76f8\u5173\u7684\u4f9d\u8d56\uff0c**\u7406\u8bba\u4e0a**\u53ef\u4ee5\u5728\u4efb\u4f55\u53ef\u4ee5\u4f7f\u7528 Python \u7684\u5e73\u53f0\u4e0a\u8fd0\u884c\u3002\n\n## Usage\n\n### SongSearchPager\n\n```python\n>>> from QQMusicAPI import QQMusic\n\n>>> music_list = QQMusic.search('\u5c4a\u304b\u306a\u3044\u604b') # \u6211\u6700\u559c\u6b22\u7684\u662f\u5b66\u59d0\u7248\u7684(\u8305\u91ce\u611b\u8863)\n\n>>> type(music_list)\n\n\n>>> music_list.data\n[, , , , , , , , , , , , , , , , , , , ]\n\n>>> music_list.page_size\n2\n>>> music_list.total_num\n39\n>>> music_list.keyword\n'\u5c4a\u304b\u306a\u3044\u604b'\n>>> music_list.cursor_page\n1\n\n>>> next_music_list = music_list.next_page()\n>>> next_music_list.cursor_page\n2\n>>> prev_music_list = next_music_list.prev_page()\n>>> prev_music_list.cursor_page\n1\n```\n\n### Song\n\n```python\n>>> from QQMusicAPI import QQMusic\n>>> music_list = QQMusic.search('\u5c4a\u304b\u306a\u3044\u604b')\n\n>>> song = music_list.data[0]\n>>> type(song)\n\n>>> song.song_mid\n'0044XSxC3rZYir'\n>>> song.url\n'https://y.qq.com/n/yqq/song/0044XSxC3rZYir.html'\n>>> song.name\n\"\u5c4a\u304b\u306a\u3044\u604b '13\"\n>>> song.title\n\"\u5c4a\u304b\u306a\u3044\u604b '13 (\u65e0\u6cd5\u4f20\u8fbe\u7684\u7231\u604b'13)\"\n>>> song.singer\n[]\n\n>>> song.song_url()\n'http://dl.stream.qqmusic.qq.com/C4000044XSxC3rZYir.m4a?vkey=0E9DBFC4D180A631CD62ED0784E3DFA450F3B21148A4A9BD5C8E916B6EFDEF2C7A3EA45067C288890EC1D40F6603C9545FE65E49D53D2BC4&guid=8388983860&fromtag=30'\n>>> import requests # \u751f\u6210\u7684\u94fe\u63a5\u53ef\u4ee5\u4f7f\u7528 requests \u76f4\u63a5\u4e0b\u8f7d\uff0c\u4e5f\u53ef\u4ee5\u5728\u6d4f\u89c8\u5668\u4e2d\u76f4\u63a5\u6253\u5f00\n>>> resp = requests.get(song.song_url(), headers={'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'})\n>>> with open('music.m4a', 'wb') as fw:\n... fw.write(resp.content)\n... \n4210605\n>>> song.subtitle # \u67e5\u8be2\u5230\u7684\u4ec5\u6709\u57fa\u7840\u4fe1\u606f\n>>> song.extract() # \u83b7\u53d6\u6b4c\u66f2\u7684\u8be6\u7ec6\u4fe1\u606f\n>>> song.subtitle\n'\u300a\u767d\u8272\u76f8\u7c3f2\u300bTV\u52a8\u753b\u7b2c1\u96c6\u7247\u5934\u66f2|\u300a\u767d\u8272\u76f8\u7c3f2\u300bTV\u52a8\u753b\u7b2c7-8\u96c6\u7247\u5934\u66f2|\u300a\u767d\u8272\u76f8\u7c3f2\u300bTV\u52a8\u753b\u7b2c10-12\u96c6\u7247\u5934\u66f2'\n>>> song.transname\n\"\u65e0\u6cd5\u4f20\u8fbe\u7684\u7231\u604b'13\"\n>>> song.extras_name\n\"\u5c4a\u304b\u306a\u3044\u604b '13\"\n```\n\n### Lyric\n\n```python\n>>> from QQMusicAPI import QQMusic\n>>> music_list = QQMusic.search('\u5c4a\u304b\u306a\u3044\u604b')\n>>> song = music_list.data[0]\n>>> lyric = song.lyric\n>>> type(lyric)\n\n>>> lyric.extract()\n>>> lyric.lyric\n\"[ti:\u5c4a\u304b\u306a\u3044\u604b '13(TV\u30a2\u30cb\u30e1\u300cWHITE ALBUM2\u300dOP)]\\n[ar:\u4e0a\u539f\u308c\u306a]\\n[al:TV\u30a2\u30cb\u30e1\u300cWHITE ALBUM2\u300dOP\u30c6\u30fc\u30de\u300c\u5c4a\u304b\u306a\u3044\u604b\u201913\u300d]\\n[by:]\\n[offset:0]\\n[00:00.01]\u5c4a\u304b\u306a\u3044\u604b '13 (\u65e0\u6cd5\u4f20\u8fbe\u7684\u7231\u604b'13) (\u300a\u767d\u8272\u76f8\u7c3f2\u300bTV\u52a8\u753b\u7b2c1\u96c6\u7247\u5934\u66f2|\u300a\u767d\u8272\u76f8\u7c3f2\u300bTV\u52a8\u753b\u7b2c7-8\u96c6\u7247\u5934\u66f2|\u300a\u767d\u8272\u76f8\u7c3f2\u300bTV\u52a8\u753b\u7b2c10-12\u96c6\u7247\u5934\u66f2) - \u4e0a\u539f\u308c\u306a (\u4e0a\u539f\u73b2\u5948)\\n[00:00.02]\u4f5c\u8a5e\uff1a\u9808\u8c37\u5c1a\u5b50\\n[00:00.03]\u4f5c\u66f2\uff1a\u77f3\u5ddd\u771f\u4e5f\\n \\n[00:00.04]\\n[00:25.10]\u5b64\u72ec\u306a\u3075\u308a\u3092\u3057\u3066\u308b\u306e?\\n[00:31.72]\u306a\u305c\u3060\u308d\u3046 \u6c17\u306b\u306a\u3063\u3066\u3044\u305f\\n[00:38.15]\u6c17\u3065\u3051\u3070 \u3044\u3064\u306e\u307e\u306b\u304b\\n[00:45.76]\u8ab0\u3088\u308a \u60f9\u304b\u308c\u3066\u3044\u305f\\n[00:54.06]\u3069\u3046\u3059\u308c\u3070 \u3053\u306e\u5fc3\u306f \u93e1\u306b\u6620\u308b\u306e?\\n[01:08.47]\u5c4a\u304b\u306a\u3044\u604b\u3092\u3057\u3066\u3044\u3066\u3082\\n[01:15.21]\u6620\u3057\u3060\u3059\u65e5\u304c\u304f\u308b\u304b\u306a\\n[01:21.45]\u307c\u3084\u3051\u305f\u7b54\u3048\u304c \u898b\u3048\u59cb\u3081\u308b\u307e\u3067\u306f\\n[01:29.38]\u4eca\u3082\u3053\u306e\u604b\u306f \u52d5\u304d\u51fa\u305b\u306a\u3044\\n[01:40.77]\\n[01:57.05]\u521d\u3081\u3066\u58f0\u3092\u304b\u3051\u305f\u3089\\n[02:04.23]\u632f\u308a\u5411\u3044\u3066\u304f\u308c\u305f\u3042\u306e\u65e5\\n[02:11.28]\u3042\u306a\u305f\u306f \u7729\u3057\u3059\u304e\u3066\\n[02:18.08]\u307e\u3063\u3059\u3050\u898b\u308c\u306a\u304b\u3063\u305f\\n[02:25.82]\u3069\u3046\u3059\u308c\u3070 \u305d\u306e\u5fc3\u306b \u79c1\u3092\u5199\u3059\u306e?\\n[02:37.67]\\n[02:40.30]\u53f6\u308f\u306a\u3044\u604b\u3092\u3057\u3066\u3044\u3066\u3082\\n[02:47.66]\u5199\u3057\u3060\u3059\u65e5\u304c\u304f\u308b\u304b\u306a\\n[02:53.84]\u307c\u3084\u3051\u305f\u7b54\u3048\u304c \u5c11\u3057\u3067\u3082\u898b\u3048\u305f\u3089\\n[03:02.26]\u304d\u3063\u3068\u3053\u306e\u604b\u306f \u52d5\u304d\u306f\u59cb\u3081\u308b\\n[03:12.99]\\n[03:34.65]\u3069\u3046\u3059\u308c\u3070 \u3053\u306e\u5fc3\u306f \u93e1\u306b\u6620\u308b\u306e?\\n[03:45.32]\\n[03:48.19]\u5c4a\u304b\u306a\u3044\u604b\u3092\u3057\u3066\u3044\u3066\u3082\\n[03:55.24]\u6620\u3057\u3060\u3059\u65e5\u304c\u304f\u308b\u304b\u306a\\n[04:01.67]\u307c\u3084\u3051\u305f\u7b54\u3048\u304c \u898b\u3048\u59cb\u3081\u308b\u307e\u3067\u306f\\n[04:09.34]\u4eca\u3082\u3053\u306e\u604b\u306f \u52d5\u304d\u51fa\u305b\u306a\u3044\"\n>>> lyric.trans\n\"[ti:\u5c4a\u304b\u306a\u3044\u604b '13(TV\u30a2\u30cb\u30e1\u300cWHITE ALBUM2\u300dOP)]\\n[ar:\u4e0a\u539f\u308c\u306a]\\n[al:TV\u30a2\u30cb\u30e1\u300cWHITE ALBUM2\u300dOP\u30c6\u30fc\u30de\u300c\u5c4a\u304b\u306a\u3044\u604b\u201913\u300d]\\n[by:]\\n[offset:0]\\n[00:00.00]//\\n[00:08.36]//\\n[00:16.73]//\\n[00:25.10]\u83ab\u975e\u4f60\u662f\u5728\u6545\u4f5c\u5b64\u72ec\uff1f\\n[00:31.72]\u4e3a\u4f55\u5fc3\u5982\u6b64\u4e3a\u4f60\u7275\u52a8\\n[00:38.15]\u56de\u8fc7\u795e\u6765 \u4e0d\u77e5\u4e0d\u89c9\\n[00:45.76]\u6211\u5df2\u7ecf\u88ab\u4f60\u6df1\u6df1\u5438\u5f15\\n[00:54.06]\u8981\u600e\u6837\u624d\u80fd\u5c06\u6211\u7684\u5fc3 \u6620\u5728\u955c\u4e2d\u8ba9\u4f60\u770b\u6e05\uff1f\\n[01:08.47]\u5373\u4f7f\u662f\u573a\u7ec8\u6210\u5962\u671b\u7684\u7231\u604b\\n[01:15.21]\u662f\u5426\u4e5f\u6709\u6620\u5728\u955c\u4e2d\u7684\u4e00\u5929\\n[01:21.45]\u5728\u80fd\u591f\u770b\u89c1\u9690\u7ea6\u7684\u66d9\u5149\u4e4b\u524d\\n[01:29.38]\u8fd9\u573a\u7231\u604b\u5982\u4eca\u4f9d\u7136\u5bf8\u6b65\u96be\u884c\\n[01:40.77]\\n[01:57.05]\u5f53\u6211\u7b2c\u4e00\u6b21\u51fa\u58f0\u76f8\u5524\\n[02:04.23]\u5f53\u4f60\u7b2c\u4e00\u6b21\u56de\u9996\u4e4b\u65f6\\n[02:11.28]\u4f60\u7684\u8eab\u5f71\u662f\u90a3\u4e48\u8000\u773c\\n[02:18.08]\u8ba9\u6211\u4e0d\u7981\u79fb\u5f00\u76ee\u5149\\n[02:25.82]\u8981\u600e\u6837\u624d\u80fd\u5c06\u6211\u7684\u540d\u6df1\u6df1\u5370\u5728\u4f60\u7684\u5fc3\u4e2d\uff1f\\n[02:37.67]\\n[02:40.30]\u5373\u4f7f\u662f\u573a\u6ca1\u6709\u7ed3\u679c\u7684\u7231\u604b\\n[02:47.66]\u662f\u5426\u4e5f\u6709\u6620\u5728\u4f60\u5fc3\u7684\u4e00\u5929\\n[02:53.84]\u54ea\u6015\u80fd\u770b\u89c1\u4e00\u4e1d\u9690\u7ea6\u7684\u66d9\u5149\\n[03:02.26]\u8fd9\u4efd\u7231\u604b\u4e00\u5b9a\u80fd\u591f\u5f00\u59cb\u8f6c\u52a8\\n[03:12.99]\\n[03:34.65]\u8981\u600e\u6837\u624d\u80fd\u5c06\u6211\u7684\u5fc3\u6620\u5728\u955c\u4e2d\u8ba9\u4f60\u770b\u6e05\uff1f\\n[03:45.32]\\n[03:48.19]\u5373\u4f7f\u662f\u573a\u7ec8\u6210\u5962\u671b\u7684\u7231\u604b\\n[03:55.24]\u662f\u5426\u4e5f\u6709\u6620\u5728\u955c\u4e2d\u7684\u4e00\u5929\\n[04:01.67]\u5728\u80fd\u591f\u770b\u89c1\u9690\u7ea6\u7684\u66d9\u5149\u4e4b\u524d\\n[04:09.34]\u8fd9\u573a\u7231\u604b\u5982\u4eca\u4f9d\u7136\u5bf8\u6b65\u96be\u884c\\n[04:20.90]\"\n```\n\n### Singer\n\n```python\n>>> from QQMusicAPI import QQMusic\n>>> music_list = QQMusic.search('\u5c4a\u304b\u306a\u3044\u604b')\n>>> song = music_list.data[0]\n>>> song.singer # \u4e00\u9996\u6b4c\u53ef\u80fd\u7531\u591a\u4eba\u5408\u5531\uff0c\u56e0\u6b64\u7ed3\u679c\u4e3a\u4e00\u4e2a\u5217\u8868\n[]\n>>> singer = song.singer[0]\n>>> type(singer)\n\n>>> singer.singer_mid\n'003jYRDr3aQCKi'\n>>> singer.name\n'\u4e0a\u539f\u308c\u306a'\n>>> singer.title\n'\u4e0a\u539f\u308c\u306a (\u4e0a\u539f\u73b2\u5948)'\n>>> singer.url\n'https://y.qq.com/n/yqq/singer/003jYRDr3aQCKi.html'\n>>> singer.extract() # \u83b7\u53d6\u8be6\u7ec6\u4fe1\u606f\n>>> singer.hot_music\n[, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]\n\n>>> singer_songs = singer.songs()\n>>> singer_songs\n, cursor_page=1, page_size=3, total_num=74>\n```\n\n### SingerSongPager\n\n\u7c7b\u4f3c [SongSearchPager](#SongSearchPager)\n\n## TODO\n\n- \u6b4c\u66f2\u6392\u884c\u699c\u7684\u83b7\u53d6\n- \u6b4c\u624b\u67e5\u8be2\n- \u5206\u7c7b\u6b4c\u5355\n- \u4e13\u8f91\n- MV\n\n\u4f18\u5148\u7ea7\uff1a\u65e0\uff08\u6ca1\u6709\u53cd\u9988\uff0c\u6211\u7684\u624b\u4f1a\u6296\uff09\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/MeiK-h/QQMusicAPI", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "qqmusic-api", "package_url": "https://pypi.org/project/qqmusic-api/", "platform": "", "project_url": "https://pypi.org/project/qqmusic-api/", "project_urls": { "Homepage": "https://github.com/MeiK-h/QQMusicAPI" }, "release_url": "https://pypi.org/project/qqmusic-api/0.1/", "requires_dist": [ "requests" ], "requires_python": ">=3.5.0", "summary": "some api about qqmusic", "version": "0.1" }, "last_serial": 5001778, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "82b7c4af5dc2cf258fb532b61ead3aae", "sha256": "a30570b6766965ea8fd95b25a7be595a7a1d964c083a6a94b3099846fb56e2d4" }, "downloads": -1, "filename": "qqmusic_api-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "82b7c4af5dc2cf258fb532b61ead3aae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 9306, "upload_time": "2019-03-29T06:28:09", "url": "https://files.pythonhosted.org/packages/b4/58/ab0944830f1ca27f513426965d6c18038f06e04a19ba1e086cf6ac546504/qqmusic_api-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f8504e8eac48cad9ac39562e30f4a7a", "sha256": "45b34e4de15cedb412b6a1f7baab74e150dd8f6342d9089a291c3e4ffd93bc27" }, "downloads": -1, "filename": "qqmusic-api-0.1.tar.gz", "has_sig": false, "md5_digest": "6f8504e8eac48cad9ac39562e30f4a7a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 11391, "upload_time": "2019-03-29T06:28:11", "url": "https://files.pythonhosted.org/packages/12/6b/4cdeae41763f4e256f0c4dcc4d75d4823a6e7b250fb590ef3042337a2efc/qqmusic-api-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "82b7c4af5dc2cf258fb532b61ead3aae", "sha256": "a30570b6766965ea8fd95b25a7be595a7a1d964c083a6a94b3099846fb56e2d4" }, "downloads": -1, "filename": "qqmusic_api-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "82b7c4af5dc2cf258fb532b61ead3aae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 9306, "upload_time": "2019-03-29T06:28:09", "url": "https://files.pythonhosted.org/packages/b4/58/ab0944830f1ca27f513426965d6c18038f06e04a19ba1e086cf6ac546504/qqmusic_api-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f8504e8eac48cad9ac39562e30f4a7a", "sha256": "45b34e4de15cedb412b6a1f7baab74e150dd8f6342d9089a291c3e4ffd93bc27" }, "downloads": -1, "filename": "qqmusic-api-0.1.tar.gz", "has_sig": false, "md5_digest": "6f8504e8eac48cad9ac39562e30f4a7a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 11391, "upload_time": "2019-03-29T06:28:11", "url": "https://files.pythonhosted.org/packages/12/6b/4cdeae41763f4e256f0c4dcc4d75d4823a6e7b250fb590ef3042337a2efc/qqmusic-api-0.1.tar.gz" } ] }