网易云热评api

发布于 / API / 2 条评论

经过几天的查文档终于写完了,现在整理下接口文档。

请求方法:get
请求地址:点我

参数说明:

名称 作用 实例
id 歌曲对应id 558213187
user 用户名 yrh
pic 用户头像 点我查看
content 热评内容
song_url 歌曲地址

比如:

{"id":558213187,"user":"lngozi","pic":"http://p2.music.126.net/kio4tl6ODZ9xOTeSvDnJZg==/109951164847607044.jpg","content":"小朋友,阿姨以前很喜欢你爸爸哦","song_url":"https://m8.music.126.net/20200402125717/9919d8f662fd72e15e7e8a1ee712d29b/ymusic/3ba9/623f/21a7/12ee7fe1fa034844fdfd2c27929181f1.mp3"}

接口代码

<?php

/**
 * 获取歌单随机一首歌曲id
 */
function music_list_id()
{
    //歌单id
    $id = '2493852196';
    $data = file_get_contents('http://music.163.com/api/playlist/detail?id=' . $id);
    $json = json_decode($data, true);
    //获取长度
    $count = count($json['result']['tracks']);
    //生成0~count-1范围内的随机数
    $random = mt_rand(0, $count - 1);
    return $json['result']['tracks'][$random]['id'];
}

/**
 * curl_get函数
 */
function curl_get($url, $referurl = '')
{
    if (empty($referurl)) {
        $referurl = $url;
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    // 输出头
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    //模拟常用浏览器的 useragent
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19');
    // 不跟随跳转
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
    //模拟来源网址
    curl_setopt($ch, CURLOPT_REFERER, $referurl);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

/**
 * 根据歌曲id获取直链
 */
function song_url()
{
    $id = music_list_id();
    $api = 'http://music.163.com/song/media/outer/url?id=';
    $url = $api . $id . '.mp3';
    $data = curl_get($url);
    // 正则取连接
    preg_match_all('/Location:(.*?)\.mp3/', $data, $arr);
    // 判断一下是否成功
    if (!empty($arr[1][0])) {
        $play = $arr[1][0];
        return str_replace('http://', 'https://', trim($play) . '.mp3');
    }
}

/**
 * 根据音乐id获取热门评论
 */
function music_hot_comments()
{
    $id = music_list_id();
    $data = file_get_contents('http://music.163.com/api/v1/resource/comments/R_SO_4_' . $id);
    $json = json_decode($data, true);
    if ($json['total'] > 0) {
        $arr= [
            //歌曲id
            'id' => $id,
            //评论者
            'user' => $json['hotComments'][0]['user']['nickname'],
            //歌曲图片
            'pic' => $json['hotComments'][0]['user']['avatarUrl'],
            //评论内容
            'content' => $json['hotComments'][0]['content'],
            //歌曲url
            'song_url' => song_url()
        ];
        return $arr;
    }
}

echo music_hot_comments();
转载原创文章请注明,转载自: Yrh's Blog » 网易云热评api
  1. avatar

    所以说这个该放到哪里…

    1. avatar
      @张同学 你新建个php文件,把代码复制进去,然后访问 你就知道了