前几天发了一篇QQ音乐直链的帖子:http://www.52pojie.cn/thread-419942-1-1.html

今晚利用空闲时间,折腾了一个百度音乐直链分析工具,也是网页在线的,

大家可以先看一下:http://dwz.cn/1WQoqW

---------------------------------------------蛋疼的分割线---------------------------------------------

论坛里面有人提供音乐接口:

①:http://music.baidu.com/data/music/fmlink?songIds={$SongId}&type={$SongType}

②:http://music.baidu.com/data/music/fmlink?songIds={$SongId}&type={$SongType}&rate={$Rate}

我测试了一下,可行,只不过现在修改了,跳转结果是

http://music.baidu.com/data/music/links?songIds=歌曲ID

至于上面的type和rate可忽略了。

百度音乐的ID就是点击一首歌曲的网址,不是播放音乐的音乐盒网址,例如:

http://music.baidu.com/song/134294423

QQ截图20151009224317.jpg (52.74 KB, 下载次数: 8)

2015-10-9 22:40 上传

复制上面网址中的那串数字,我随便看了一下,音乐ID从6位数到10位数都有,这个等下再说。

拼接网址和ID,结果如下:

http://music.baidu.com/data/music/links?songIds=134294423

直接粘贴浏览器地址栏,回车访问,得到以下结果:

{"errorCode":22000,"data":{"xcode":"0fa193606a6cf0e18156ebcf093b7cc0","songList":[{"queryId":"134294423","songId":134294423,"songName":"\u82b1\u4e3a\u5a92","artistId":"5976","artistName":"\u7396\u6708\u5947\u8ff9","albumId":134294430,"albumName":"\u82b1\u4e3a\u5a92","songPicSmall":"http:\/\/c.hiphotos.baidu.com\/ting\/pic\/item\/50da81cb39dbb6fd04ad51040d24ab18972b3719.jpg","songPicBig":"http:\/\/b.hiphotos.baidu.com\/ting\/pic\/item\/dbb44aed2e738bd43fb60613a58b87d6277ff979.jpg","songPicRadio":"http:\/\/b.hiphotos.baidu.com\/ting\/pic\/item\/18d8bc3eb13533faa840270cacd3fd1f41345b19.jpg","lrcLink":"\/data2\/lrc\/134331079\/134331079.lrc","version":"","copyType":0,"time":208,"linkCode":22000,"songLink":"http:\/\/yinyueshiting.baidu.com\/data2\/music\/134294564\/1342944231444312861128.mp3?xcode=0fa193606a6cf0e123407a79428c3f0f","showLink":"http:\/\/yinyueshiting.baidu.com\/data2\/music\/134294564\/1342944231444312861128.mp3?xcode=0fa193606a6cf0e123407a79428c3f0f","format":"mp3","rate":128,"size":3342029,"relateStatus":"0","resourceType":"0","source":"web"}]}}

这个就是返回结果,JSON格式,仔细看一下,里面有songLink后面的网址就是MP3链接,songPicBig是音乐封面的图片链接,只不过多了一些斜杠等等。

有了上面的数据,就可以使用编程语言封装了,本人使用的ASP.NET做演示。

我知道论坛很多人都会易语言,可是我不会,没有系统的学过,这里仅供思路参考。

---------------------------------------------蛋疼的分割线---------------------------------------------

/***

思路:

1、读取音乐网址里面的音乐ID

2、拼接网址和ID并且访问

3、解析&输出结果

***/

这个界面我就不说了,从按钮事件开始

QQ截图20151009224855.jpg (10.06 KB, 下载次数: 7)

2015-10-9 22:47 上传

[C#] 纯文本查看 复制代码//获取音乐直链地址

protected void btnGo_Click(object sender, EventArgs e)

{

string mid = "";//定义存放音乐ID的变量

//这里使用正则表达式,匹配输入网址里面的音乐ID,也就是一串数字,使用\d+可以匹配连续的多个数字,符合我们的要求

ArrayList alist = new HttpHelper().PiPeiText(this.txtMusicUrl.Text.Trim(), "\\d+");

//判断是否有返回结果

if (alist.Count > 0)

{

mid = alist[0].ToString();//如果有,就读取结果

}

if (string.IsNullOrEmpty(mid))//如果没有结果,说明音乐网址不正确,返回错误信息

{

this.txtMp3Url.InnerText = "错误:请检查音乐网址是否正确,是否可以正常播放";

return;

}

string requestUrl = "http://music.baidu.com/data/music/links?songIds=" + mid;//拼接访问网址

//获得访问网址返回的JSON信息

string responseHTML = new HttpHelper().GetDocumentText(requestUrl);

//由于我电脑网络问题,打不开json网站,不能下载类库,就没有用Json解析了,

//如果你用解析的方法,可以获得更多信息:音乐封面图片(大和小),音乐时长,大小等。

//这里我使用了正则表达式匹配想要的信息

ArrayList mp3List = new HttpHelper().PiPeiText(responseHTML, "songLink\":\".*\",\"show");

string musicUrl = "";//定义MP3音乐直链的变量

if (mp3List.Count == 0)

{

/*这里验证是否匹配到了mp3链接,如果没有,那么可能是下面这种情况:

* 一开始音乐网址就不对,虽然有音乐ID,但是可能因为网址里面有一串数字而已,并不是要求的网址页面,

* 所以,一开始的匹配音乐ID,要做严格的网址验证,也是使用正则表达式,这块自己升级一下

* */

this.txtMp3Url.InnerText = "错误:请检查音乐网址是否正确,是否可以正常播放";

return;

}

else

{

//如果匹配到了mp3链接,就保存网址到上面定义的变量

musicUrl = mp3List[0].ToString();

}

//使用正则表达式匹配的结果,要过滤一下,如果使用json解析,就不用这么麻烦,直接取出来再replace一次就可以了

musicUrl = musicUrl.Replace("\"", "").Replace("songLink:", "").Replace(",show", "").Replace("\\", "");

//输出结果到网页上

this.txtMp3Url.InnerHtml = musicUrl;

}

.NET老鸟别嫌我注解写的太多,照顾新人吧。

如果你直接复制上面的代码到VS里面编译,会出错,因为缺少HttpHelper类,这个是我自己写的下面发出来

HttpHelper.txt

(4.91 KB, 下载次数: 6)

2015-10-9 23:09 上传

点击文件名下载附件

下载积分: 吾爱币 -1 CB

用的时候,修改txt为cs,复制到VS,修改命名空间即可。

音乐直链php,【原创】百度音乐直链 + 实现方法相关推荐

  1. linux安装深度播放器,分享|Ubuntu 14.04 用户如何安装深度音乐播放器和百度音乐插件...

    播放本地音乐或者收听国外的音乐电台,Ubuntu 14.04 自带的音乐播放器 Rhythmbox 完全能够满足,但是如果你想有像酷狗那样的国内播放器就需要折腾一下,还好有深度音乐播放器,这是一款完全 ...

  2. 【百度音乐外链网】百度音乐官方版如何进行外链推广

    百度音乐官方版如何进行外链?大家在利用百度音乐听歌的时候,有没有发现在上面可以将连接地址外链到别的地方呢,相信很多小伙伴们还没有体验过这个功能吧,下面l老齐SEO就详细的给大家介绍一下,希望能够帮助到 ...

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

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

  4. 百度音乐api+c语言,百度音乐API全接口

    百度音乐API http://tingapi.ting.baidu.com/v1/restserver/ting 获取方式:GET 参数:format=json或xml&calback=&am ...

  5. python爬去百度音乐_Python抓取百度音乐。

    今天挑战下百度音乐抓取,先用Chrome分析下请求的链接. 最关键的就是这个链接 http://play.baidu.com/data/music/songlink 请求这个带上songid就能返回给 ...

  6. 仿百度音乐html5,js仿百度音乐全选操作

    本文实例为大家分享了js全选操作的具体代码,供大家参考,具体内容如下 无标题文档 *{margin:0;padding:0;} ul{list-style:none;} #content{width: ...

  7. 如何将百度音乐下载的MP3音乐转换为m4r格式

    在周末或者平时休息的时间,小编我会听听音乐,放松一下,小编比较常用的音乐播放器就是百度音乐,它下载的音乐一般是MP3格式的,所以也不用担心不能播放的问题,但是最近小编遇到了一个问题,我听到一首很好听的 ...

  8. ​百度音乐播放器2015 v9.1.7 官方版

    百度音乐播放器2015 v9.1.7 官方版 软件大小:8.26MB 软件语言:简体中文 软件类别:影音播放 软件授权:官方版 更新时间:2015-02-06 应用平台:/Win8/Win7/WinX ...

  9. 系数移动硬盘驱动错误和百度音乐不能播放解决办法

    1.百度音乐没有声音 当百度音乐灭有声音,在设备管理器中可以看到一个realtek的适配器被禁用了,我们启用后发现可以播放声音了. 2.当西数移动硬盘插入电脑显示无法正常安装驱动时,此时我们在设备管理 ...

  10. pygame系列_原创百度随心听音乐播放器_完整版

    程序名:PyMusic 解释:pygame+music 之前发布了自己写的小程序:百度随心听音乐播放器的一些效果图 你可以去到这里再次看看效果: pygame系列_百度随心听_完美的UI设计 这个程序 ...

最新文章

  1. Java 异步与同步的区别
  2. 【11平台天梯】【原理分析】11平台天梯原理分析
  3. 友盟-统计不到线上应用数据的坑
  4. 解决delphi10.2.3 android tools闪退
  5. 【CyberSecurityLearning 28】批处理与简单病毒
  6. python get post区别_大话Python, webpy教程之GET和POST区别
  7. Java 集合HashSet TreeSet HashMap ArrayList TreeList
  8. [django]自定义标签和过滤器
  9. 写python程序最佳实践_Python后台程序打包最佳实践
  10. python中空间的位置怎么放置_如何在空间中对齐一个位置?
  11. 华硕电脑(博主电脑型号为天选FA506IH)Fn组合键屏幕不显示对应操作的解决办法!!
  12. Laplace锐化算子和LOG算子
  13. MessageQueue消息队列——基础(笔记)
  14. 幼儿园数学目标_幼儿园数学教育的总目标包括哪些
  15. mysql的genelog_小白实战课堂!转录因子的候选靶基因查询~~
  16. 贤鱼的刷题日常【c++动态规划】4978:宠物小精灵之收服
  17. python selenium UI自动化解决验证码的4种方法
  18. 使用Python进行数据分析——线性回归分析
  19. 基于Scrapy对更新后的Dmoz进行抓取(网上旧版本不靠谱)
  20. time of our lives---从世界杯主题曲看厚脸皮的德国人:)

热门文章

  1. 【LBS】高德地图、百度地图的经纬度科普|MySQL和编程语言是如何计算两个坐标之间的距离?
  2. Lingo软件的基本语法
  3. 迅捷CAD格式转换器专业版
  4. 转载:Visio2013的密钥
  5. XenCenter为虚拟机C盘扩容
  6. testlink xml转excel
  7. 用linux运行vasp,科学网—VASP使用 - 李继存的博文
  8. Linux系统p4vasp使用教程,科学网—p4vasp on Linux - 单光存的博文
  9. html日期控件默认设置为当天日期,以及获取当前日期前的指定天数
  10. PUBG雷蛇鼠标宏,简单易学,有手就行。