首先身为一个在线音乐播放器,需要前端和数据库的搭配使用。
在数据库方面,我们没有办法制作,首先是版权问题,再加上数据量。所以我们需要借用其他网络播放器的数据库。
但是这些在线播放器,如百度,酷狗,酷我等在线音乐播放器,是不会提供他们的数据库接口的,所以这个我们需要,在线抓取这些在线音乐播放器的接口,首先,这个事情,是属于违规的。是属于侵犯这些公司的版权的。所以,不能用于商业用途
我们以酷狗音乐为例子,抓取他的连接数据库的API接口
我是用的是谷歌,进入私密模式,因为在这种模式下,不会缓存歌曲
1. 进入酷狗的官网 www.kugou.com 然后随便打开一首歌曲
会出现上面的窗口
F12打开调试者工具
刷新页面,然后记录network中的页面传输信息
然后我们会发现,在记录中,有一个数据是加载时间最长的。这个数据,就是页面中数据量最大的,也就是歌曲
筛选数据类型 多媒体
然后就发现列表中的音乐
查看音乐头信息,就会发现歌曲的地址,
我们在新窗口中打开这个地址
这就会是一首歌曲
这时候我们,可以在查询一首歌,并添加到列表中
这时候我们查看开发者工具中,会最新加载的数据
查看这些数据会发现除了歌曲外,还会加载一些文本
查看这些文本的头部,发现,里面会传递一个参数callback。这是回调函数,用来进行json传递的,是传递数据的常用方式。但是这种方式通常是不安全的,所以说,歌曲下载地址一般不是在这里的
然后我们会找到一个传递到php页面的
查看内容
这里我们会发现有歌词地址,和歌曲名称,歌词,还有一个hash值,查看请求地址.
这里我们可以看到,网页向数据库发送了一个hash的数据。我们从中知道,这个hash值是歌曲在数据库唯一编码
接下来,我们只需要知道歌曲的hash值,便可以找到歌曲地址了。
再次打开搜索列表,用开发者工具拦截数据,筛选js,会找到其中这样的数据
随便打开其中一个列表我们会发现里面有一个filehash值,复制这段值
并且我们替换到之前查找歌曲时候,查找到的php文件,并替换那个hash值
这时候页面会返回一个json文件
我们可以通过在线json解析器,来格式化这个json
这里面有个play_url的参数,里面的值是一个地址
我们可以在新窗口打开这个地址
这里我们发现打开的一个熟悉的窗口,一个MP3,
我们查看歌词列表的请求地址
这会有一个keyword的参数,后面是乱码,但是这是一种中文的转码方式,复制这个请求地址,并改变这个keyword的值。
返回的结果是一个json的文件,我们来格式化
我们观察后其实可以发现,这其实都是由搜索我们设置的那个关键词的歌曲
里面会有好多的歌曲
我们找到其中一首歌的filehash
用之前同样的方法,就可以获得这首歌的MP3的地址,
由此我们获得了这两个url的请求地址,第一个就是歌曲的查询列表,可以获取歌曲的hash值,第二个是歌曲的地址,可以根据一个查询列表中的hash值来获取歌曲的地址
http://songsearch.kugou.com/song_search_v2?callback=jQuery191034642999175022426_1489023388639&keyword={歌曲名称}&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=1489023388641
http://www.kugou.com/yy/index.php?r=play/getdata&hash={歌曲hash值}
在线音乐播放器-----酷狗音乐api接口抓取的更多相关文章
-
Ubuntu 14.04 用户如何安装深度音乐播放器和百度音乐插件
播放本地音乐或者收听国外的音乐电台,Ubuntu 14.04 自带的音乐播放器 Rhythmbox 完全能够满足,但是如果你想有像酷狗那样的国内播放器就需要折腾一下,还好有深度音乐播放器,这是一款完全 ...
-
iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)
代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...
-
22_Android中的本地音乐播放器和网络音乐播放器的编写,本地视频播放器和网络视频播放器,照相机案例,偷拍案例实现
1 编写以下案例: 当点击了"播放"之后,在手机上的/mnt/sdcard2/natural.mp3就会播放. 2 编写布局文件activity_main.xml <Line ...
-
iOS - 音乐播放器需要获取音乐文件的一些数据信息(封装获取封面图片的类)
// // AVMetadataInfo.h // AVMetadata // // Created by Wengrp on 15/10/27. // Copyright © 2015年 Wengr ...
-
记一次酷狗音乐API的获取,感兴趣的可以自己封装开发自己的音乐播放器
1.本教程仅供个人学习用,禁止用于任何的商业和非法用途,如涉及版权问题请联系笔者删除. 2.随笔系作者原创文档,转载请注明文档来源:http://www.cnblogs.com/apresunday/ ...
-
酷狗、QQ、天天动听——手机音乐播放器竞品对比
如果说什么艺术与人们生活最贴近,那应该属音乐了,因此当代人不离身的手机里必然会有自己喜欢的音乐播放器APP存在. 在当今无论PC端还是手机端音乐播放器都越来越同质化,我们应该选择哪款手机音乐播放器?它 ...
-
解决ubuntu系统中firefox无法播放网页版音乐播放器音乐
Reference: https://blog.csdn.net/h736131708/article/details/80775382 因为网页版的qq音乐或者网易云音乐都把音频换成了AAC格式,这 ...
-
swift 音乐播放器项目-《lxy的杰伦情歌》开发实战演练
近期准备将项目转化为OC与swift混合开发.试着写一个swift音乐播放器的demo,体会到了swift相对OC的优势所在.废话不多说.先上效果图: watermark/2/text/aHR0cDo ...
-
仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)
转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出 ...
随机推荐
-
mac安装mongodb
一,安装方法1 ,下载mongodb 1,官网下载mongodb程序 https://www.mongodb.org/downloads#production 2,解压后启动mongodb服务 下载 ...
-
2013长沙赛区现场赛 J - Josephina and RPG
J - Josephina and RPG Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I6 ...
-
HTML5 直播协议之 WebSocket 和 MSE
当前为了满足比较火热的移动 Web 端直播需求, 一系列的 HTML5 直播技术迅速的发展了起来. 常见的可用于 HTML5 的直播技术有 HLS, WebSocket 与 WebRTC. 今天我要向 ...
-
tcp timestamp
Description Protocol suite: TCP/IP. Protocol type: Transport layer protocol. Option length: 10 bytes ...
-
IE9-10 option BUG
IE 9-10下如果option元素没有定义value而在设置innerText时没有把两边的空白去掉,那么 取el.text,浏览器会进行trim, 并且伪造一个value值,此值会在刚才trim的 ...
-
JSTL之迭代标签库
JSTL之迭代标签库 JSTL的全称是 Java Server Pages Standard Tag Library,翻译过来就是JSP标准标签库,它包含了在开发JSP页面时经常用到的一组标准标签.这 ...
-
thymelef 布局 fragment
需求:布局页面, 把首页分成四个页面: header footer ,content ,aside ,从githua 下载的原型, 所有内容是在一起的,这里拆分, 重用, 减少代码量 做法: 新建页 ...
-
Android建立模拟器进行调试
安装好android开发环境后.用到下面几个命令.android, adb, emulator android - 最主要的android命令.能够进行sdk更新,列出设备源,生成虚拟设备等. adb ...
-
iOS- UITextView与键盘回收与键盘遮挡输入框
一.UITextView 可以实现多行输入的文本框,基本属性与UITextField相似,可以输入多行,可以滚动.UITextView还有个代理方式- (BOOL)textView:(UITextVi ...
-
cmd返回上一级和根目录
https://jingyan.baidu.com/article/066074d6154cf4c3c21cb013.html