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

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

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

我们以酷狗音乐为例子,抓取他的连接数据库的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接口抓取的更多相关文章

  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 - 音乐播放器需要获取音乐文件的一些数据信息(封装获取封面图片的类)

    // // 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. canvas动态小球重叠效果

    前面的话 在javascript运动系列中,详细介绍了各种运动,其中就包括碰壁运动.但是,如果用canvas去实现,却是另一种思路.本文将详细介绍canvas动态小球重叠效果 效果展示 静态小球 首先 ...

  2. 《JavaScript DOM 编程艺术 》 笔记

    一:这本书由几个案列带入知识点,通俗易懂.最大的收获莫过于作者多次提到的逐渐增强和平稳退化. "渐进增强"指的是给所用用户同等的基本使用体验,再根据用户终端的级别给予更高级的用户更 ...

  3. OVS vxlan 底层结构分析 - 每天5分钟玩转 OpenStack(148)

    上一节创建了 vxlan100_net 并部署 instance,今天我们来分析底层网络结构. 控制节点 执行 ovs-vsctl show: br-int br-int 连接了如下 port: ta ...

  4. yii2 邮件发送(有图有真相)

    经典的密码找回方案是发送邮件到用户邮箱然后修改密码,下面利用yii2 高级版的mail功能,进行邮件的发送,如下图 1.在comm/config/main-local.php中添加 'mailer' ...

  5. C-Swipe Mobile 一个适用于Vue2.x的移动端轮播组件

    近期在做的一个Vue2项目里需要一个可以滑动的轮播组件,但是又因为现有的传统轮播库功能过于繁琐和笨重.因此自己写了一个针对于Vue2.x的轻型轮播组件. 项目GitHub链接:C-Swipe Mobi ...

  6. java反射的理解与应用(某大神博客中看到的博文,写的真的太好了,果断转载作为笔记)

    原文地址:http://www.cnblogs.com/jqyp/archive/2012/03/29/2423112.html#undefined 一.什么是反射机制 简单的来说,反射机制指的是程序 ...

  7. 前端开发面试题总结之——JAVASCRIPT(一)

    ___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...

  8. EFcore与动态模型

    在开发商城系统的时候,大家会遇到这样的需求,商城系统里支持多种商品类型,比如衣服,手机,首饰等,每一种产品类型都有自己独有的参数信息,比如衣服有颜色,首饰有材质等,大家可以上淘宝看一下就明白了.现在的 ...

  9. nodejs 代码设计模式1:同步函数变异步

    同步函数变异步 1 问题: 1.1 碰到需要调用你刚正在创建的对像. function createServer(data, cb) { data.num = 1; cb(); return data ...

  10. iOS 图片裁剪方法

    iOS 图片裁剪方法 通过 CGImage 或 CIImage 裁剪 UIImage有cgImage和ciImage属性,分别可以获得CGImage和CIImage对象.CGImage和CIImage ...