百度音乐搜索API的请求地址如下:

[html]   view plain copy
  1. http://box.zhangmen.baidu.com/x?op=12&count=1&title=TITLE$$AUTHOR$$$$

http://box.zhangmen.baidu.com为百度音乐盒的首页地址,上面的链接中不用管参数op和count,重点关注TITLE和AUTHOR,TITLE表示歌曲名称,AUTHOR表示演唱者,AUTHOR可以为空,参数TITLE和AUTHOR需要进行URL编码(UTF-8或GB2312均可)。例如,要搜索歌曲零点乐队的“相信自己”,可以像下面这样:

[html]   view plain copy
  1. // GB2312编码的音乐搜索链接
  2. http://box.zhangmen.baidu.com/x?op=12&count=1&title=%CF%E0%D0%C5%D7%D4%BC%BA$$%C1%E3%B5%E3%C0%D6%B6%D3$$$$
  3. // UTF-8编码的音乐搜索链接
  4. http://box.zhangmen.baidu.com/x?op=12&count=1&title=%E7%9B%B8%E4%BF%A1%E8%87%AA%E5%B7%B1$$%E9%9B%B6%E7%82%B9%E4%B9%90%E9%98%9F$$$$

通过浏览器访问上面的地址,返回的是如下格式的XML数据:

[html]   view plain copy
  1. <result>
  2. <count>1</count>
  3. <url>
  4. <encode>
  5. <![CDATA[http://zhangmenshiting.baidu.com/data2/music/44277542/ZWZla2xra2pfn6NndK6ap5WXcJVob5puZ2trbWprmnBjZ2xolpeZa2drZmWZmZmdl2hjZWhvnWlpYmRtZmltcGplZFqin5t1YWBobW5qcGxia2NmZ2twbzE$]]>
  6. </encode>
  7. <decode>
  8. <![CDATA[44277542.mp3?xcode=a39c6698955c82594aab36931dcbef60139f180191368931&mid=0.59949419022597]]>
  9. </decode>
  10. <type>8</type>
  11. <lrcid>64644</lrcid>
  12. <flag>1</flag>
  13. </url>
  14. <durl>
  15. <encode>
  16. <![CDATA[http://zhangmenshiting2.baidu.com/data2/music/44277530/ZWZla2xramhfn6NndK6ap5WXcJVob5puZ2trbWprmnBjZ2xolpeZa2drZmWZmZmdl2hjaGhvnZ5qlGRpbpedamJla1qin5t1YWBobW5qcGxia2NmZ2twbzE$]]>
  17. </encode>
  18. <decode>
  19. <![CDATA[44277530.mp3?xcode=a39c6698955c82594aab36931dcbef60439ff9b159af2138&mid=0.59949419022597]]>
  20. </decode>
  21. <type>8</type>
  22. <lrcid>64644</lrcid>
  23. <flag>1</flag>
  24. </durl>
  25. <p2p>
  26. <hash>022bc0fbf66cd19bea96db49634419dc2600393f</hash>
  27. <url>
  28. <![CDATA[ ]]>
  29. </url>
  30. <type>mp3</type>
  31. <size>5236902</size>
  32. <bitrate>192</bitrate>
  33. </p2p>
  34. </result>

返回结果中的主要参数说明如下:

1)<count> 表示搜索到的音乐数;

2)<url>中包含了普通品质的音乐链接,<durl>中包含了高品质音乐的链接;

3)<encode>中包含了加密后的音乐链接,实际上只是对音乐名称进行了加密,<decode>中包含了解密后的音乐名称。因此,要获取音乐的链接就需要重点分析<encode>和<decode>中的内容,下面会专门为读者进行介绍。

4)<type>表示音乐文件的类型,如rm、wma、mp3等;

5)<lrcid>是歌词的ID,<url>中的歌词ID为64644,那么如何得到歌词呢?本例并不关心歌词,只是附带提一下。歌词的地址如下:

[html]   view plain copy
  1. http://box.zhangmen.baidu.com/bdlrc/646/64644.lrc

其中,http://box.zhangmen.baidu.com/bdlrc/是固定值;646为歌词所在目录名,计算方法为歌词ID(64644)除以100,取整数部分;64644.lrc是歌词文件名。

下面来看如何从<encode>和<decode>中得到音乐链接。为了便于说明,笔者将上面搜索结果中的<url>和<durl>部分抽取出来,并进行了标注,如下图所示。

上图中,1和2拼接起来是普通品质音乐的链接,3和4拼接起来是高品质音乐的链接。也就是说,普通品质和高品质的音乐链接如下:

[html]   view plain copy
  1. // 普通品质音乐链接
  2. http://zhangmenshiting.baidu.com/data2/music/44277542/44277542.mp3?xcode=a39c6698955c82594aab36931dcbef60139f180191368931
  3. // 高品质音乐链接
  4. http://zhangmenshiting2.baidu.com/data2/music/44277530/44277530.mp3?xcode=a39c6698955c82594aab36931dcbef60439ff9b159af2138

参数xcode可以理解为随机验证码,每次搜索得到的值都不一样,如果不带该参数会报未授权异常“401 Authorization Required”。需要注意的是,xcode是有时间限制的,超过限制再访问链接会报异常:{"Error":{"code":"2","Message":"object not exists","LogId":"3456414897"}}。在xcode有效的前提下,通过浏览器访问上面的音乐链接,会提示下载音乐。

转载于:https://www.cnblogs.com/simadi/p/3515028.html

百度音乐搜索API介绍相关推荐

  1. android 百度天气api,9.1 百度免费天气API介绍

    百度免费天气API介绍 百度的API Store 为开发者提供最全面的API服务,汇集了国内外应用开发所需要的Android API/SDK,IOS SDK,涉及设计开发,运维管理,云服务,app推广 ...

  2. 百度音乐api+c语言,百度音乐接口api - osc_d87glhzv的个人空间 - OSCHINA - 中文开源技术交流社区...

    百度音乐全接口 http://tingapi.ting.baidu.com/v1/restserver/ting 请求方式:GET 参数处理:format=json&calback=& ...

  3. 基于“新浪乐库”的音乐搜索API接口,返回JSON数据

    新浪开发平台提供的API接口非常丰富,可没有音乐搜索的接口,对于我们这些搞基于微博应用的孩子还是比较悲剧的. 于是我可爱的好基友@ACMer_耕畅写了一段代码,把"新浪乐库"返回的 ...

  4. 百度人脸识别api介绍(转)

    在百度AI开放平台使用百度的人脸识别能力,只需要三个核心步骤即可操作完成: 1.获取接口权限  2.准备接口调用工具  3.进行接口调用,全部流程走通只需要十分钟时间. 具体操作步骤如下: 1.  获 ...

  5. 获得百度音乐隐蔽API的源代码

    接着上篇文章,直接上源代码 header("Content-Type: text/html; charset=utf-8"); require_once "simple_ ...

  6. 百度API 应用实例之音乐搜索

    http://blog.csdn.net/lyq8479/article/details/17232631 引言及内容概要 微信公众平台支持向用户回复音乐消息,用户收到音乐消息后,点击即可播放音乐.通 ...

  7. 百度音乐非公开的api

    百度音乐搜索API介绍 上面提到,给用户回复音乐消息最关键在于如何根据歌曲名称获得歌曲的链接,我们必须找一个现成的音乐搜索API,除非读者自己有音乐服务器,或者只 向用户回复固定的几首音乐.百度有一个 ...

  8. 微信公众帐号开发教程第18篇-应用实例之音乐搜索

    引言及内容概要 微信公众平台支持向用户回复音乐消息,用户收到音乐消息后,点击即可播放音乐.通过音乐消息,公众账号可以实现音乐搜索(歌曲点播)功能,即用户输入想听的音乐名称,公众账号返回对应的音乐(歌曲 ...

  9. 二十八:微信公众帐号开发-应用实例之音乐搜索

    此篇文章为转载 引言及内容概要 微信公众平台支持向用户回复音乐消息,用户收到音乐消息后,点击即可播放音乐.通过音乐消息,公众账号可以实现音乐搜索(歌曲点播)功能,即用户输入想听的音乐名称,公众账号返回 ...

最新文章

  1. 如何打开python的交互窗口-使用Python显示图形交互窗口
  2. 升级OS10.11系统后 Xcode6.4的变化少了个按钮 could not launch “Xcode” Xcode 插件安装...
  3. VTK:相互作用之RubberBand3D
  4. python中print语句
  5. 王道考研 计算机网络18 私有IP地址 网络地址转发NAT 路由器 路由表 路由转发
  6. win10上如何启用或禁用Windows功能
  7. 1199元起!搭载120W神仙秒充 Redmi Note 11 系列发布
  8. mysql索引实现原理_Mysql索引原理
  9. win10电脑开机密码忘了怎么办_电脑开机密码忘了怎么办最简单的方法_windows7教程...
  10. java里赋值语句_java输入赋值语句
  11. 放弃FD渠道模式 诺基亚中国新攻略
  12. Java微信公众号开发之微信素材管理工具类
  13. 什么是组态?组态的概念及发展趋势
  14. MMC子系统之SDIO卡驱动
  15. 关于 css 中的转换属性,CSS3中的transform转换属性
  16. 计网必会:UDP差错检测,检验和、可靠数据传输原理
  17. 软件功能测试订票系统,QTP自动化测试自带订票系统登录功能
  18. 正点原子STM32F103精英版学习笔记(二)
  19. 3.8选择练习题之根据路程算折扣
  20. 读书笔记系列《增广贤文》

热门文章

  1. 我的梦想是当一个计算机英语,my dream(我的梦想)英语作文带翻译
  2. 女人,太晚看到这篇会后悔的
  3. 【计算机】X86 arm X64 X32.....
  4. unlegal android,yy99/cordova-baidu-location
  5. JAVA实现动态时钟倒计时
  6. 实战:调度器原理-2022.2.17
  7. Java虚拟机堆的内存分配和回收
  8. 兰石集团发力智能制造 看老牌国企的转型升级之路
  9. strdup与strcpy
  10. 【YBT2023寒假Day10 C】娄居吉勾(点分树)