音乐直链php,【原创】百度音乐直链 + 实现方法
前几天发了一篇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,【原创】百度音乐直链 + 实现方法相关推荐
- linux安装深度播放器,分享|Ubuntu 14.04 用户如何安装深度音乐播放器和百度音乐插件...
播放本地音乐或者收听国外的音乐电台,Ubuntu 14.04 自带的音乐播放器 Rhythmbox 完全能够满足,但是如果你想有像酷狗那样的国内播放器就需要折腾一下,还好有深度音乐播放器,这是一款完全 ...
- 【百度音乐外链网】百度音乐官方版如何进行外链推广
百度音乐官方版如何进行外链?大家在利用百度音乐听歌的时候,有没有发现在上面可以将连接地址外链到别的地方呢,相信很多小伙伴们还没有体验过这个功能吧,下面l老齐SEO就详细的给大家介绍一下,希望能够帮助到 ...
- 百度音乐api+c语言,百度音乐接口api - osc_d87glhzv的个人空间 - OSCHINA - 中文开源技术交流社区...
百度音乐全接口 http://tingapi.ting.baidu.com/v1/restserver/ting 请求方式:GET 参数处理:format=json&calback=& ...
- 百度音乐api+c语言,百度音乐API全接口
百度音乐API http://tingapi.ting.baidu.com/v1/restserver/ting 获取方式:GET 参数:format=json或xml&calback=&am ...
- python爬去百度音乐_Python抓取百度音乐。
今天挑战下百度音乐抓取,先用Chrome分析下请求的链接. 最关键的就是这个链接 http://play.baidu.com/data/music/songlink 请求这个带上songid就能返回给 ...
- 仿百度音乐html5,js仿百度音乐全选操作
本文实例为大家分享了js全选操作的具体代码,供大家参考,具体内容如下 无标题文档 *{margin:0;padding:0;} ul{list-style:none;} #content{width: ...
- 如何将百度音乐下载的MP3音乐转换为m4r格式
在周末或者平时休息的时间,小编我会听听音乐,放松一下,小编比较常用的音乐播放器就是百度音乐,它下载的音乐一般是MP3格式的,所以也不用担心不能播放的问题,但是最近小编遇到了一个问题,我听到一首很好听的 ...
- 百度音乐播放器2015 v9.1.7 官方版
百度音乐播放器2015 v9.1.7 官方版 软件大小:8.26MB 软件语言:简体中文 软件类别:影音播放 软件授权:官方版 更新时间:2015-02-06 应用平台:/Win8/Win7/WinX ...
- 系数移动硬盘驱动错误和百度音乐不能播放解决办法
1.百度音乐没有声音 当百度音乐灭有声音,在设备管理器中可以看到一个realtek的适配器被禁用了,我们启用后发现可以播放声音了. 2.当西数移动硬盘插入电脑显示无法正常安装驱动时,此时我们在设备管理 ...
- pygame系列_原创百度随心听音乐播放器_完整版
程序名:PyMusic 解释:pygame+music 之前发布了自己写的小程序:百度随心听音乐播放器的一些效果图 你可以去到这里再次看看效果: pygame系列_百度随心听_完美的UI设计 这个程序 ...
最新文章
- Java 异步与同步的区别
- 【11平台天梯】【原理分析】11平台天梯原理分析
- 友盟-统计不到线上应用数据的坑
- 解决delphi10.2.3 android tools闪退
- 【CyberSecurityLearning 28】批处理与简单病毒
- python get post区别_大话Python, webpy教程之GET和POST区别
- Java 集合HashSet TreeSet HashMap ArrayList TreeList
- [django]自定义标签和过滤器
- 写python程序最佳实践_Python后台程序打包最佳实践
- python中空间的位置怎么放置_如何在空间中对齐一个位置?
- 华硕电脑(博主电脑型号为天选FA506IH)Fn组合键屏幕不显示对应操作的解决办法!!
- Laplace锐化算子和LOG算子
- MessageQueue消息队列——基础(笔记)
- 幼儿园数学目标_幼儿园数学教育的总目标包括哪些
- mysql的genelog_小白实战课堂!转录因子的候选靶基因查询~~
- 贤鱼的刷题日常【c++动态规划】4978:宠物小精灵之收服
- python selenium UI自动化解决验证码的4种方法
- 使用Python进行数据分析——线性回归分析
- 基于Scrapy对更新后的Dmoz进行抓取(网上旧版本不靠谱)
- time of our lives---从世界杯主题曲看厚脸皮的德国人:)