python调用QQ音乐API

1. 音乐搜索接口、其他接口

2. 获取token

3. 拼接播放地址

先上一份代码:

import requests
import pprint
import json
from selenium import webdriver# 音乐搜索接口p, n, w = 1, 5, '碰'
url_1 = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp?aggr=1&cr=1&flag_qc=0&p={}&n={}&w={}'.format(p, n, w)
response1 = requests.get(url_1)
# 获取返回参数并且删除多余空格
text = response1.text.strip()
# 删除多余的字符使之符合json格式进行转换
j_datas = json.loads(text[9 : len(text) - 1])
songmid = j_datas['data']['song']['list'][0]['songmid'] # 获取songmid
print('songmid:'+ songmid)url_2 = 'https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?format=json205361747&platform=yqq&cid=205361747&songmid={}&filename=C400{}.m4a&guid=126548448'.format(songmid, songmid)
response2 = requests.get(url_2)
#这个返回参数不会出错,可以直接转换json格式,并获取vkey
vkey = response2.json()['data']['items'][0]['vkey']
print('vkey:' + vkey)url_3 = 'http://ws.stream.qqmusic.qq.com/C400{}.m4a?fromtag=0&guid=126548448&vkey={}'.format(songmid, vkey)
borwser = webdriver.Chrome()
borwser.get(url_3)

解析

音乐搜索接口

url:

https://c.y.qq.com/soso/fcgi-bin/client_search_cp?aggr=1&cr=1&flag_qc=0&p=1&n=30&w=碰
  • p:页数,从1开始
  • n:每一页显示的条数
  • w:搜索关键字

通过p和n参数,可以实现分页请求加载。

链接可以放在浏览器上查看返回的数据格式,返回的数据需要进行处理,因为要转为json格式,所以要把callback(这段字符以及最后面的 “)” 这个字段删除,以符合json格式。

下面是返回的参数(不完整):


参数:

  • curPage:当前页数
  • totalnum:总数
  • list:返回的30条歌曲的数据
    • songname:歌曲名称
    • singer:歌手名称,是个列表结构
    • albumname:专辑名称
    • songmid:歌曲标识

获取token

'https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?format=json205361747&platform=yqq&cid=205361747&songmid=0014kBdU3LPmCA&filename=C4000014kBdU3LPmCA.m4a&guid=126548448'
参数:
  • songmid:在歌曲信息中找
  • filename:根据songmid生成C400 + songmid + .m4a
返回参数:

  • expiration:有效时长
  • vkey:播放歌曲密钥

拼接播放地址

http://ws.stream.qqmusic.qq.com/C4000014kBdU3LPmCA.m4a?fromtag=0&guid=126548448&vkey=286DB371BE286D676A4B0D7ACD2B49CD488389A3EF91B7728F80B52E2B4691CCD8028F5EAEFD4413F91E98D5D3CC7484B3C2C09EC61D131E

vkey:在token中的vkey字段

将播放地址放到浏览器中可以播放

附上代码链接:

https://github.com/SyJarvis/music_api

python调用QQ音乐API相关推荐

  1. python中调用音乐_调用咪咕音乐api的python命令行音乐下载器

    说明: 1.调用咪咕音乐api进行音乐下载(暂不支持批量) 2.使用自行安装import的库 效果: 源码: [Python] 纯文本查看 复制代码import requestsimport urll ...

  2. js封装QQ音乐api

    QQ音乐api文档地址:QQ音乐api文档 封装好后的api文件地址:需要引入请求封装文件-/ajax.js https://github.com/1015770492/yumbo-vue/blob/ ...

  3. python爬去新浪微博_!如何通过python调用新浪微博的API来爬取数据

    python抓取新浪微博,求教 爬手机端 可以参考的代码, #-*-coding:utf8-*- import smtplib from email.mime.text import MIMEText ...

  4. 送书|Python采集QQ音乐热歌榜首数据

    今天给大家带来用python采集QQ音乐的热评-文末有送书哦- 我们可以看到这首歌曲的评论有10881条,不愧是榜首热歌,评论比较高. 一.初步测试 我们首先使用selenium测试一下环境: fro ...

  5. 网易云音乐/QQ音乐API更新,支持多音质切换/MV获取

    自从上一版开源过后到现在音乐接口的调用量已经达到了快100W,但是最近由于网易云的更新,导致部分接口不能使用,最近在工作之余抽出时间把API重写. 本次API版本不再使用PHP,使用Java,相比以前 ...

  6. Python调用腾讯API合成语音

    Python调用腾讯API合成语音 腾讯语音合成 Python调用腾讯接口 说明 腾讯语音合成 腾讯AI开放平台中有ai语音合成的接口,其体验网址是https://ai.qq.com/product/ ...

  7. Python调用腾讯API进行人像动漫化

    Python调用腾讯API进行人像动漫化 1. 作者介绍 2. API获取 3. 代码调试 3.1整体结构 3.2 代码解析 3.3完整代码 3.4效果展示: 4. 问题与分析 1. 作者介绍 李犇, ...

  8. python实现简单的api接口-简单实现Python调用有道API接口(最新的)

    # ''' # Created on 2018-5-26 # # @author: yaoshuangqi # ''' import urllib.request import urllib.pars ...

  9. 用Python调用华为云API接口发短信

    [摘要] 用Python调用华为云API接口实现发短信,当然能给调用发短信接口前提条件是通过企业实名认证,而且有一个通过审核的短信签名,话不多说,showcode #!/usr/bin/python3 ...

  10. python 调用 .netcore api_浅谈Python调用XBee的API来进行通讯

    浅谈Python调用XBee的API来进行通讯 用python编程来控制串口(COM口),来让一对XBee进行通讯.不需要借助终端来发送和接收数据,增大了XBee使用的灵活性.这才是使用XBee模块的 ...

最新文章

  1. 三坐标测量圆直径_RationalDMIS 7.1 如何准确测量圆/圆弧直径
  2. .NET Core 3.0 新 JSON API - Utf8JsonWriter
  3. C语言模拟实现标准库函数之strstr()
  4. Building designing UVA - 11039
  5. (2)机器学习_train_test_split
  6. optistruct中的DRESP2响应设置
  7. Latex学习--参考文献排版(ieee access 模板)
  8. Ubuntu操作系统MTK刷机工具失败解决方案
  9. Apache Flink 在双十一流量洪峰下的最佳实践
  10. drive翻译成中文_drive是什么意思_drive翻译_读音_用法_翻译
  11. Virtual Private Network(虚拟专用网络隧道)详解
  12. 网络教育计算机和英语难度怎样,网络教育统考大学英语b难吗?
  13. Code review是个数学问题:从二向箔说起
  14. Office服务器意外响应,Office 所有使用过程中未响应,崩溃,意外关闭
  15. 怎么调试S12X微控制器的XGATE上的软件
  16. PS文件的打开与关闭
  17. 真正从零开始,TensorFlow详细安装入门图文教程!(linux)
  18. 无极性的电容能代替有极性的电容吗?
  19. 干货 | 什么是高频电解电容,它有普通电解电容有什么区别?
  20. 数字货币与我们普通投资者的关系

热门文章

  1. OpManager引领智能运维未来的发展方向
  2. 企业级多用户发卡平台源码
  3. PC通过adb连接手机 无需root连接 需要root连接
  4. 新增汉字英文数字标点转区位码api
  5. LeaRun低代码开发平台 助推物联网应用快速落地
  6. imageJ使用手册
  7. (二)Latex编译与xelatex编译
  8. python关于pyaudio无法import的一系列问题
  9. 最新三网免挂码支付系统源码+免授权版
  10. VS下更新Qt语言家ts文件没反应