以前网易云音乐的公开api的接口现在升级了,用原有的api无法再正常读取到网易云音乐的歌曲链接了,现在必须要使用新的加密算法来计算网易云音乐的歌曲链接,但是我们还是可以通过改变思路来使用现有的api接口实现这些。我这里公布一下Shell下,PHP下和易语言下三种编程语言的写法,我也只会这三种。如果想要学习网易云音乐的歌曲链接加密算法的话,大家可以参考油猴里的网易云高清或下载的那两个插件的源码。
# !/bin/bash
. /etc/profile
############################################################################################################################################
#
# This is a lottery number automatic generation tool
# Autor: RucLinux
# Web: https://www.myzhenai.com.cn/ https://www.myzhenai.com/ https://www.haikou-china.com/ https://jiayu.mybabya.com/ https://www.0898-shop.com/
# 说明:转载引用请保留这段,谢谢
#
#############################################################################################################################################
pw="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
#https://music.163.com/#/song?id=310449
###########################################################################################################
function wangyi() {
id=$(echo "${1}" | awk -F "=" '{ print $2 }')
d=$(curl -s https://music.163.com/api/song/detail/"?id=${id}&ids=%5B${id}%5D&csrf_token=")
name=$(echo ${d} | awk -F "songs" '{ print $2 }' | awk -F "id" '{ print $1 }' | awk -F "\"name\":\"" '{ print $2 }' | awk -F "\",\"" '{ print $1 }')
auto=$(echo ${d} | awk -F "artists" '{ print $2 }' | awk -F "id" '{ print $1 }' | awk -F "\"name\":\"" '{ print $2 }' | awk -F "\",\"" '{ print $1 }')
ico=$(echo ${d} | awk -F "\"blurPicUrl\":\"" '{ print $2 }' | awk -F "\",\"" '{ print $1 }')
mp=$(echo "https://music.163.com/song/media/outer/url?id=${id}.mp3")
one=" {\n"
two=" title : "
three=" singer :"
four=" cover :"
fives=" src : "
six=" },\r"
echo -e "${one}${two}'${name}',\r${three}'${auto}',\r${four}'${ico}',\r${fives}'${mp}'\r${six}" >> ${pw}/in.log
wget -p ${pw} -O "${name}.mp3" "https://music.163.com/song/media/outer/url?id=${id}.mp3"
}
###########################################################################################################
wangyi ${1}
#pw 变量是获取当前用户所在目录
#function 是新建一个函数
#wangyi 是新建的函数
#id 这个变量是通过 $1 参数来获取当前用户输入的网页地址里的一段字符串,也就是歌曲的ID码
#d 这个变量是通过curl来读取网页信息
#name 这个变量是通过过滤返回的网页源码并获取歌曲标题这些关键词
#auto 这个变量是通过过滤返回的网页源码获取歌曲的演唱者
#ico 这个变量是通过过滤返回的网页源码获取歌曲唱片图片
#mp 这个变量是通过过滤返回的网页源码获取歌曲的链接地址
#one two three four fives six这几个变量是定义输出的格式的关键字
#in.log 这一行是将所有变量集中输出到一个文件里,以便其他方式调用
#wget 这一行是下载歌曲文件
PHP源代码
function wangyi($id)
/**
* 网易云音乐地址解析
* $id 这是歌曲链接变量
* $url 这是获得的网页源码变量
* $ql 这是歌单里的歌曲ID数组变量
* $idc 这是歌曲信息数组变量
* $mid 这是歌单里的歌曲ID
* $urlid 这是获取的歌曲信息的网页链接
* $durl 这是歌曲网页源码变量
* $sname 这是歌曲名称变量
* $aname 这是歌手名称变量
* $picurl 这是专辑图片地址变量
* $mpurl 这是音乐外链地址变量
*/
{
$id = getid($id, "=");
if (strstr($id, "163.com") == true || strstr($id, "126.net") == true) {
if (strstr($id, "playlist")) {
$url = file_get_contents($id);
$ql = array();
preg_match("\/song\?id=\d+", $url, $ql);
$arrlength = count($ql);
for ($x = 0; $x < $arrlength; $x++) {
$mid = str_replace("/song?id=", "", $ql[$x]);
$urlid = "https://music.163.com/api/song/detail/?id=$mid&ids=%5B$mid%5D&csrf_token=";
$durl = file_get_contents($urlid);
$sname = getmusiczid($durl, '{\"songs\":[{\"name\":\"', '\",\"id\"');
$aname = getmusiczid($durl, '\"artists\":[{\"name\":\"', '\",\"id\"');
$picurl = getmusiczid($durl, '\"picUrl\":\"', '\",\"img');
$mpurl = getmusiczid($durl, '\"mp3Url\":\"', '\",\"hMusic');
$muscz = array("歌曲名称" => $sname, "歌手名称" => $aname, "专辑图片" => $picurl, "歌曲地址" => $mpurl);
}
} else {
$urlid = "https://music.163.com/api/song/detail/?id=$id&ids=%5B$id%5D&csrf_token=";
$durl = file_get_contents($urlid);
$sname = getmusiczid($durl, '{\"songs\":[{\"name\":\"', '\",\"id\"');
$aname = getmusiczid($durl, '\"artists\":[{\"name\":\"', '\",\"id\"');
$picurl = getmusiczid($durl, '\"picUrl\":\"', '\",\"img');
#$mpurl = getmusiczid($durl, '\"mp3Url\":\"', '\",\"hMusic');
$mpurl = "https://music.163.com/song/media/outer/url?id=".$mid.".mp3"
$muscz = array("歌曲名称" => $sname, "歌手名称" => $aname, "专辑图片" => $picurl, "歌曲地址" => $mpurl);
}
}
return $muscz;
}
sicnature ---------------------------------------------------------------------
I P 地 址: 216.73.216.182
区 域 位 置: 美国加利福尼亚洛杉矶
系 统 信 息:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普 | 海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source https://myzhenai.com.cn/post/2889.html




1 评论
网易云音乐
歌手名称、歌单、歌曲名称等信息,get歌曲页面应该可以获得,歌曲链接,获取歌曲网址里的ID编号,然后post http://music.163.com/song/media/outer/url?id={}.mp3