百度音乐搜索API介绍

摘要:
op=12&count=1&title=%CF%E0%D0%C5%D7%D4%BC%BA$$%C1%E3%B5%E3%C0%D6%B6%D3$$$$//UTF-8编码的音乐搜索链接http://box.zhangmen.baidu.com/x?因此,要获取音乐的链接就需要重点分析和中的内容,下面会专门为读者进行介绍。4)表示音乐文件的类型,如rm、wma、mp3等;5)是歌词的ID,中的歌词ID为64644,那么如何得到歌词呢?为了便于说明,笔者将上面搜索结果中的和部分抽取出来,并进行了标注,如下图所示。上图中,1和2拼接起来是普通品质音乐的链接,3和4拼接起来是高品质音乐的链接。

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

  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均可)。例如,要搜索歌曲零点乐队的“相信自己”,可以像下面这样:

  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数据:

  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,那么如何得到歌词呢?本例并不关心歌词,只是附带提一下。歌词的地址如下:

  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>部分抽取出来,并进行了标注,如下图所示。

百度音乐搜索API介绍第9张

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

  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有效的前提下,通过浏览器访问上面的音乐链接,会提示下载音乐。

免责声明:文章转载自《百度音乐搜索API介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于D3D11,你必须了解的几件事情(二)Centos 文件系统 xfs、ext4、ext3 的区别下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

egret 自动播放音乐问题:ios 自动播放音乐失效

Egret Engine 2D 官方文档可见,音频有三种加载方式: 1.通过Sound加装音频 2.通过 res 加装音频 3.通过 URLLoader 加装音频 每种方式我都尝试了一下,测试发现这三种方式用PC浏览器(chrome)打开都可以正常自动播放。 然而我用自己手机(iphone8)测试(主要使用微信、safari和QQ打开测试)的时候,发现问题...

微信小程序开发中怎么设置转发(分享)的信息

如果什么都不设置,转发时默认名称是小程序的名称,转发的图片显示的是当前页面的截图,如图一 如何在自定义转发信息呢? 在进行转发的页面中: Page({ onShareAppMessage: function () { return { title: '做任务赢积分', imageUrl: '/images...

(二)微信小程序的三种传值方式

1.全局变量   app.js里   App({     //全局变量     globalData: {     userInfo: null,     host: 'http://localhost:8080/data.json'   }   在其他js页面取值:   const app = getApp()  //获取应用实例 必须有这个才能获取到a...

D版??班得瑞英文天籁CD13集(下载!!!)

庄严的僧侣合声的ENIGMA;古老神秘的SECRET GARDEN;这些清新纯音,富含灵气的音符,轻滑过满是尘埃的心头,让你进入一个浑然忘我的自然空间…… 清新自然,新世纪音乐阵营的一个标志。他们以透明的音乐质感,浪潮般律动的编曲,精简的乐器配置以及简单流畅的旋律抚慰着听者的心灵,使人悠然神往。还有那融合非洲部落打击、庄严僧侣合声的ENGMA;古老神秘和...

&amp;lt;转&amp;gt;主流蓝牙BLE控制芯片详解(3):创杰 IS1685S

[导读] IS1685S是一款高度集成的超低功耗芯片,应用于射频和基带芯片的蓝牙V3.0 + EDR单声道耳机。 智能型无线音频数据传输产品——S1685S单声道蓝牙芯片,是低成本的高效率单声道无线传输方案。采用免驱动方式,客户只需要把模块接入应用产品,通电,连接按键就可以快捷地实现音乐的无线传输,享受无线音乐的乐趣。   同系列芯片资料推荐:     主...

音乐播放

1.初始化mediaplay MediaPlay m = new MediaPlay(); 2.加载文件路径 m.setDataSource(“路径”); 3.准备播放 m.prepare(); 4.开始播放 m.stare(); 注意 如果文件在sd卡中需要加权限 如果手机为6.0版本以上 在onCreate()添加运行权限...