在线音乐播放器-----酷狗音乐api接口抓取

时间:2022-08-29 19:52:19

首先身为一个在线音乐播放器,需要前端和数据库的搭配使用。

在数据库方面,我们没有办法制作,首先是版权问题,再加上数据量。所以我们需要借用其他网络播放器的数据库。

但是这些在线播放器,如百度,酷狗,酷我等在线音乐播放器,是不会提供他们的数据库接口的,所以这个我们需要,在线抓取这些在线音乐播放器的接口,首先,这个事情,是属于违规的。是属于侵犯这些公司的版权的。所以,不能用于商业用途

我们以酷狗音乐为例子,抓取他的连接数据库的API接口

我是用的是谷歌,进入私密模式,因为在这种模式下,不会缓存歌曲

1. 进入酷狗的官网  www.kugou.com  然后随便打开一首歌曲

在线音乐播放器-----酷狗音乐api接口抓取

会出现上面的窗口

F12打开调试者工具

刷新页面,然后记录network中的页面传输信息

在线音乐播放器-----酷狗音乐api接口抓取

然后我们会发现,在记录中,有一个数据是加载时间最长的。这个数据,就是页面中数据量最大的,也就是歌曲

筛选数据类型 多媒体

在线音乐播放器-----酷狗音乐api接口抓取

然后就发现列表中的音乐

在线音乐播放器-----酷狗音乐api接口抓取

查看音乐头信息,就会发现歌曲的地址,

在线音乐播放器-----酷狗音乐api接口抓取

我们在新窗口中打开这个地址

在线音乐播放器-----酷狗音乐api接口抓取

这就会是一首歌曲

这时候我们,可以在查询一首歌,并添加到列表中

在线音乐播放器-----酷狗音乐api接口抓取

这时候我们查看开发者工具中,会最新加载的数据

查看这些数据会发现除了歌曲外,还会加载一些文本

在线音乐播放器-----酷狗音乐api接口抓取

查看这些文本的头部,发现,里面会传递一个参数callback。这是回调函数,用来进行json传递的,是传递数据的常用方式。但是这种方式通常是不安全的,所以说,歌曲下载地址一般不是在这里的

在线音乐播放器-----酷狗音乐api接口抓取

然后我们会找到一个传递到php页面的

在线音乐播放器-----酷狗音乐api接口抓取

查看内容

在线音乐播放器-----酷狗音乐api接口抓取

这里我们会发现有歌词地址,和歌曲名称,歌词,还有一个hash值,查看请求地址.

在线音乐播放器-----酷狗音乐api接口抓取

这里我们可以看到,网页向数据库发送了一个hash的数据。我们从中知道,这个hash值是歌曲在数据库唯一编码

接下来,我们只需要知道歌曲的hash值,便可以找到歌曲地址了。

再次打开搜索列表,用开发者工具拦截数据,筛选js,会找到其中这样的数据

在线音乐播放器-----酷狗音乐api接口抓取

随便打开其中一个列表我们会发现里面有一个filehash值,复制这段值

并且我们替换到之前查找歌曲时候,查找到的php文件,并替换那个hash值

在线音乐播放器-----酷狗音乐api接口抓取

这时候页面会返回一个json文件

我们可以通过在线json解析器,来格式化这个json

在线音乐播放器-----酷狗音乐api接口抓取

这里面有个play_url的参数,里面的值是一个地址

我们可以在新窗口打开这个地址

这里我们发现打开的一个熟悉的窗口,一个MP3,

 在线音乐播放器-----酷狗音乐api接口抓取

我们查看歌词列表的请求地址

在线音乐播放器-----酷狗音乐api接口抓取

这会有一个keyword的参数,后面是乱码,但是这是一种中文的转码方式,复制这个请求地址,并改变这个keyword的值。

在线音乐播放器-----酷狗音乐api接口抓取

返回的结果是一个json的文件,我们来格式化

在线音乐播放器-----酷狗音乐api接口抓取

我们观察后其实可以发现,这其实都是由搜索我们设置的那个关键词的歌曲

在线音乐播放器-----酷狗音乐api接口抓取

里面会有好多的歌曲

 

我们找到其中一首歌的filehash

在线音乐播放器-----酷狗音乐api接口抓取

用之前同样的方法,就可以获得这首歌的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接口抓取的更多相关文章

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

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

  2. iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)

    代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...

  3. 22_Android中的本地音乐播放器和网络音乐播放器的编写,本地视频播放器和网络视频播放器,照相机案例,偷拍案例实现

    1 编写以下案例: 当点击了"播放"之后,在手机上的/mnt/sdcard2/natural.mp3就会播放. 2 编写布局文件activity_main.xml <Line ...

  4. iOS - 音乐播放器需要获取音乐文件的一些数据信息&lpar;封装获取封面图片的类)

    // // AVMetadataInfo.h // AVMetadata // // Created by Wengrp on 15/10/27. // Copyright © 2015年 Wengr ...

  5. 记一次酷狗音乐API的获取,感兴趣的可以自己封装开发自己的音乐播放器

    1.本教程仅供个人学习用,禁止用于任何的商业和非法用途,如涉及版权问题请联系笔者删除. 2.随笔系作者原创文档,转载请注明文档来源:http://www.cnblogs.com/apresunday/ ...

  6. 酷狗、QQ、天天动听——手机音乐播放器竞品对比

    如果说什么艺术与人们生活最贴近,那应该属音乐了,因此当代人不离身的手机里必然会有自己喜欢的音乐播放器APP存在. 在当今无论PC端还是手机端音乐播放器都越来越同质化,我们应该选择哪款手机音乐播放器?它 ...

  7. 解决ubuntu系统中firefox无法播放网页版音乐播放器音乐

    Reference: https://blog.csdn.net/h736131708/article/details/80775382 因为网页版的qq音乐或者网易云音乐都把音频换成了AAC格式,这 ...

  8. swift 音乐播放器项目-《lxy的杰伦情歌》开发实战演练

    近期准备将项目转化为OC与swift混合开发.试着写一个swift音乐播放器的demo,体会到了swift相对OC的优势所在.废话不多说.先上效果图: watermark/2/text/aHR0cDo ...

  9. 仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)

    转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出 ...

随机推荐

  1. mac安装mongodb

    一,安装方法1 ,下载mongodb 1,官网下载mongodb程序 https://www.mongodb.org/downloads#production​ 2,解压后启动mongodb服务 下载 ...

  2. 2013长沙赛区现场赛 J - Josephina and RPG

    J - Josephina and RPG Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6 ...

  3. HTML5 直播协议之 WebSocket 和 MSE

    当前为了满足比较火热的移动 Web 端直播需求, 一系列的 HTML5 直播技术迅速的发展了起来. 常见的可用于 HTML5 的直播技术有 HLS, WebSocket 与 WebRTC. 今天我要向 ...

  4. tcp timestamp

    Description Protocol suite: TCP/IP. Protocol type: Transport layer protocol. Option length: 10 bytes ...

  5. IE9-10 option BUG

    IE 9-10下如果option元素没有定义value而在设置innerText时没有把两边的空白去掉,那么 取el.text,浏览器会进行trim, 并且伪造一个value值,此值会在刚才trim的 ...

  6. JSTL之迭代标签库

    JSTL之迭代标签库 JSTL的全称是 Java Server Pages Standard Tag Library,翻译过来就是JSP标准标签库,它包含了在开发JSP页面时经常用到的一组标准标签.这 ...

  7. thymelef 布局 fragment

    需求:布局页面, 把首页分成四个页面: header  footer ,content ,aside ,从githua 下载的原型, 所有内容是在一起的,这里拆分, 重用, 减少代码量 做法: 新建页 ...

  8. Android建立模拟器进行调试

    安装好android开发环境后.用到下面几个命令.android, adb, emulator android - 最主要的android命令.能够进行sdk更新,列出设备源,生成虚拟设备等. adb ...

  9. iOS- UITextView与键盘回收与键盘遮挡输入框

    一.UITextView 可以实现多行输入的文本框,基本属性与UITextField相似,可以输入多行,可以滚动.UITextView还有个代理方式- (BOOL)textView:(UITextVi ...

  10. cmd返回上一级和根目录

    https://jingyan.baidu.com/article/066074d6154cf4c3c21cb013.html