百度音乐非公开的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数据:

 <result>  
    <count>1</count>  
    <url>  
        <encode>  
            <![CDATA[http://zhangmenshiting.baidu.com/data2/music/44277542/ZWZla2xra2pfn6NndK6ap5WXcJVob5puZ2trbWprmnBjZ2xolpeZa2drZmWZmZmdl2hjZWhvnWlpYmRtZmltcGplZFqin5t1YWBobW5qcGxia2NmZ2twbzE$]]>  
        </encode>  
        <decode>  
            <![CDATA[44277542.mp3?xcode=a39c6698955c82594aab36931dcbef60139f180191368931&mid=0.59949419022597]]>  
        </decode>  
        <type>8</type>  
        <lrcid>64644</lrcid>  
        <flag>1</flag>  
    </url>  
    <durl>  
        <encode>  
            <![CDATA[http://zhangmenshiting2.baidu.com/data2/music/44277530/ZWZla2xramhfn6NndK6ap5WXcJVob5puZ2trbWprmnBjZ2xolpeZa2drZmWZmZmdl2hjaGhvnZ5qlGRpbpedamJla1qin5t1YWBobW5qcGxia2NmZ2twbzE$]]>  
        </encode>  
        <decode>  
            <![CDATA[44277530.mp3?xcode=a39c6698955c82594aab36931dcbef60439ff9b159af2138&mid=0.59949419022597]]>  
        </decode>  
        <type>8</type>  
        <lrcid>64644</lrcid>  
        <flag>1</flag>  
    </durl>  
    <p2p>  
        <hash>022bc0fbf66cd19bea96db49634419dc2600393f</hash>  
        <url>  
            <![CDATA[ ]]>  
        </url>  
        <type>mp3</type>  
        <size>5236902</size>  
        <bitrate>192</bitrate>  
    </p2p>  
</result>

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

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

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

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

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

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

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拼接起来是高品质音乐的链接。也就是说,普通品质和高品质的音乐链接如下:

// 普通品质音乐链接

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

时间: 2024-12-13 14:20:16

百度音乐非公开的api的相关文章

百度音乐API

今天分享的是的是百度音乐API 搜索歌曲API:http://musicmini.baidu.com/app/search/searchList.php?qword={0}&ie=utf-8&page={1} {0}=需要搜索的歌曲或歌手 {1}=页码数(第一页就是0,第二页是1) 返回的是一个html网页,需要分析网页,得到歌曲ID,歌曲名,歌手,专辑等 属性 歌曲详细API:http://ting.baidu.com/data/music/links?songIds={0} {0}=从

最新百度音乐api

一直都想做网络音乐播放器,但是自己又没有服务器,根本就不能实现,也没那个能力实现.唯一的办法就是借助别人的API. 网上公布的API特别少,像能够直接得到音乐文件的真是地址的几乎没有,有的也只是截取流量看到的.希望做音乐的大公司能够通过开放平台共享一些API. 方法一.http://box.zhangmen.baidu.com/x?op=12&count=1&title=song$$ 这个地址是最常用的,将song改为想要的歌名就可以得到歌曲的地址信息集,返回的是XML文件,得到的地址要应

百度音乐API抓取

百度音乐API抓取 前段时间做了一个本地音乐的播放器 github地址,想实现在线播放的功能,于是到处寻找API,很遗憾,不是歌曲不全就是质量不高.在网上发现这么一个APIMRASONG博客,有“获取榜单,搜索歌词,下载地址,专辑”信息等等接口. 后来发现有些接口使用起来不是很方便,比如获取专辑信息,只能得到歌曲列表的id信息,所以自己决定用fiddler来对百度音乐安卓客户端抓包. 下面是一系列的接口: 一. 关键词建议: GET: http://tingapi.ting.baidu.com/

QQ音乐的各种相关API

QQ音乐的各种相关API 分类: oc2014-01-29 15:34 2676人阅读 评论(2) 收藏 举报 基本上论坛里做在线音乐的都在用百度的API,进来发现百度的API不仅歌曲的质量不可以保证,而且返回信息里面只有URL,没有一些相关的属性信息.所以就想方设法弄到了QQ音乐的API 已经用xCode尝试过并且可行的API:★搜索音乐(歌词)http://shopcgi.qqmusic.qq.com/fcgi-bin/shopsearch.fcg?value=歌曲名&artist=歌手名&a

ZLMusic模仿百度音乐应用项目源码

func stopPlayMusic() { if (self.isStop == true) { self.player.pause() btn .setTitle("播放", forState:UIControlState.Normal) //var paused = player.currentTime self.songImageView.layer.speed = 0.0 }else{ self.player.play() btn .setTitle("暂停&quo

ubuntu 14.04 安装 深度音乐播放器与百度音乐插件

从window转到ubuntu真有点不习惯,之前玩玩虚拟机感觉还挺好,但看到ubuntu的界面感觉还蛮好看的,一狠心把硬盘给格了.我,从此IT男!!!囧 罗嗦完了,转正题,刚刚搞好的音乐播放器,把步骤写出来,以后重装少花点时间: 1: 更新源和安装deepin-music-player sudo add-apt-repository ppa:mc3man/trusty-media sudo add-apt-repository ppa:noobslab/deepin-sc sudo apt-ge

从百度音乐和酷狗音乐的分类想到的

夜也深了,看了一天的书,泪眼夜泪心了,程序员有时真的难免会逼格,不能太任性了,也不能蛮拼了,心里想着有着看书时适合听的歌曲就好了,度娘了一下音乐,知我心者度娘啊,请看下图,这就是百度音乐的首界面,工作.学习.寂寞...是不是还会有失恋.分手之类的?很随心地选择了学习,里边的歌曲编排地很不错,的确适合学习的味道. 又看了看酷狗的首页,是按照音乐专业的角度进行分类的,太专业了,还是敬而远之了. 从百度和酷狗的产品经理来看,应该酷狗的更专业,百度的更生活化,普通用户追求的不是要自己能变成音乐人,只是希

下载百度音乐无损品质音乐

1.<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVer

百度做各种各样的地图API教会你

注意api的密钥  ak在我的云盘里,您可以自己申请! 百度做各种各样的地图API教会你,布布扣,bubuko.com