百度音乐非公开的api

2020-12-13 15:14

阅读:357

标签:百度音乐   api   

百度音乐搜索API介绍

上面提到,给用户回复音乐消息最关键在于如何根据歌曲名称获得歌曲的链接,我们必须找一个现成的音乐搜索API,除非读者自己有音乐服务器,或者只 向用户回复固定的几首音乐。百度有一个非公开的音乐搜索API,之所以说非公开,是因为笔者没有在百度官网的任何地方看到有关该API的介绍,但这并不影 响读者对本例的学习,我们仍然可以调用它。百度音乐搜索API的请求地址如下:

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

// GB2312编码的音乐搜索链接 

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$$$$

// UTF-8编码的音乐搜索链接  

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  
      
          
              
          
          
              
          
        8  
        64644  
        1  
      
      
          
              
          
          
              
          
        8  
        64644  
        1  
      
      
        022bc0fbf66cd19bea96db49634419dc2600393f  
          
              
          
        mp3  
        5236902  
        192  
      


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

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

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

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

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

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

http://box.zhangmen.baidu.com/bdlrc/646/64644.lrc  

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

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

soscw.com,搜素材

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

// 普通品质音乐链接 

http://zhangmenshiting.baidu.com/data2/music/44277542/44277542.mp3?xcode=a39c6698955c82594aab36931dcbef60139f180191368931  

// 高品质音乐链接 

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



本文出自 “流星雨的IT路程” 博客,请务必保留此出处http://lxy2020.blog.51cto.com/2528961/1571348

百度音乐非公开的api

标签:百度音乐   api   

原文地址:http://lxy2020.blog.51cto.com/2528961/1571348


评论


亲,登录后才可以留言!