天天动听外链php源码

作者:matrix 被围观: 8,340 次 发布时间:2014-03-30 分类:兼容并蓄 零零星星 | 32 条评论 »

这是一个创建于 4044 天前的主题,其中的信息可能已经有所发展或是发生改变。

天天动

接口一:http://ting.hotchanson.com/detail.do?neid=音乐ID&size=0

接口二:http://ting.hotchanson.com/website/ting?song_id=音乐ID&code=音乐ID的KEY&from=search

使用接口二较为费劲,需要得到key。

以接口一示例:

打开http://ting.hotchanson.com/detail.do?neid=574285&size=0可以看到

{"code":1,"msg":"OK","data":{"hotList":[],"num":79230,"singerId":4140,"albumName":"Versus","source":"http://lty.bla.enligner.com","count":79095,"singerName":"Usher","itemList":[{"fileType":"压缩品质","dType":1,"downUrl":"http://ws.cs.hotchanson.com/mp3_64_5/52/d4/52ca1c3dcb8e4895de7024b115e45ed4.mp3?k=347f92be0b97ffb3&t=1396579062","size":"1.70M","duration":"03:42"},{"fileType":"标准品质","dType":2,"downUrl":"http://jdlbqc.tgg.yymommy.com/m4a_96_5/52/d4/52ca1c3dcb8e4895de7024b115e45ed4.m4a?k=347f92be0b97ffb3&t=1396579062","size":"2.55M","duration":"03:42"},{"fileType":"标准品质","dType":3,"downUrl":"http://nie.dfe.yymommy.com/mp3_128_5/52/d4/52ca1c3dcb8e4895de7024b115e45ed4.mp3?k=347f92be0b97ffb3&t=1396579062","size":"3.39M","duration":"03:42"}],"publish":"","songName":"DJ Got Us Fallin' In Love","neid":574285}}

之后再从中匹配到需要的mp3链接跳转下载,这就做到外链了。

php代码: 150323修改


<?php

if ($_GET['u']) {
$id = (is_numeric($_GET['u'])) ? $_GET['u'] : die('Do not see the expected value');//如果没有数字型的GET参数则退出
$url = "http://ting.hotchanson.com/detail.do?neid=$id&size=0";//拼接数据地址
$con = file_get_contents($url);//获取音乐ID的数据
$obj = json_decode($con);//准备提取json数据
$d = ($obj->data->itemList) ? $obj->data->itemList : die('Not Found "itemList"');//如果没有mp3的数据则退出

foreach ($d as $a) {//开始foreach循环遍历每个MP3链接
if (strpos($a->downUrl, ".mp3") && ($a->fileType == '压缩品质' || '标准品质'))//如果有.mp3且为'压缩品质' || '标准品质'则302跳转,否则继续找
{
header('Location: ' . $a->downUrl);
break;
} else {
continue;
}
}
}

说明:

上面代码保存为.php文件。

调用格式:http://XXXX/*.php?u=音乐ID

各行都有注释,不再细说。

再说接口二:

这接口二的玩意有些麻烦,不建议使用。

需要的话只是多一个步骤,得到key。

之前我也没注意这key是哪里来的,后来才晓得是js函数算出来的。

var u = {
song_id: t.song_id,
code: $.CRC32(t.song_id),
from: "search"
};

上面的第三行的CRC32()就是获取key的相关函数,里面的t.song_id是音乐ID
又从他页面上的其他js里找到这个代码,看来没错:

CRC32: function(f) {
var d = new Array(256);
var e, c;
var b;
for (e = 0; e < 256; e++) {
b = e;
for (c = 0; c < 8; c++) { if (b & 1) { b = ((b >> 1) & 2147483647) ^ 3988292384
} else {
b = ((b >> 1) & 2147483647)
}
}
d[e] = b
}
if (typeof f != "string") {
f = "" + f
}
b = 4294967295;
for (e = 0; e < f.length; e++) { b = ((b >> 8) & 16777215) ^ d[(b & 255) ^ f.charCodeAt(e)]
}
b ^= 4294967295;
return (b >> 3).toString(16)
},

这就是获取key的 CRC32函数。
然后再依葫芦画瓢翻译成php代码,Bingo!

function co($f) {
$d = Array();
$e = '';
$c = '';
$b = '';
for ($e = 0; $e < 256; $e++) {
$b = $e;
for ($c = 0; $c < 8; $c++) {
if ($b & 1) {
$b = (($b >> 1) & 2147483647) ^ 3988292384;
} else {
$b = (($b >> 1) & 2147483647);
}
}
$d[$e] = $b;
}
if (!is_string($f)) {
$f = "" + $f;
}
$b = 4294967295;
for ($e = 0; $e < strlen($f); $e++) {
$b = (($b >> 8) & 16777215) ^ $d[($b & 255) ^ get_bianma(substr($f, $e, 1))];
}
$b ^= 4294967295;// $b = $b ^ 4294967295;
$fuhao = (!is_numeric(substr($b >> 3, 0, 1))) ? substr($b >> 3, 0, 1) : '';
return $fuhao.base_convert($b >> 3, 10, 16);//base_convert会去掉($b >> 3)的负号,这里不要用dechex()转换为16进制
}

function get_bianma($str)//等同于js的charCodeAt()
{
$result = array();
for ($i = 0, $l = mb_strlen($str, 'utf-8'); $i < $l; ++$i) {
$result[] = uniord(mb_substr($str, $i, 1, 'utf-8'));
}
return join(",", $result);
}

function uniord($str, $from_encoding = false) {
$from_encoding = $from_encoding ? $from_encoding : 'UTF-8';
if (strlen($str) == 1)
return ord($str);
$str = mb_convert_encoding($str, 'UCS-4BE', $from_encoding);
$tmp = unpack('N', $str);
return $tmp[1];
}

说明:代码放到php文件的<?php 和?>之间
echo co('1757517');//显示出音乐id为1757517的KEY
之后再拼接接口二的地址,与接口一的代码同理获取MP3链接。

MP3外链测试:

其他文章:
本文固定链接:https://www.hhtjim.com/ttpod-outside-chain-php-source-code.html
matrix
本文章由 matrix 于2014年03月30日发布在兼容并蓄, 零零星星分类下,目前没有通告,你可以至底部留下评论。
转载请注明:天天动听外链php源码-HHTjim'S 部落格
关键字:, , ,

有32 条评论 »

  1. 逗妇乳 逗妇乳 2014-04-05T13:04:58+08:00#10

    突然发现你的feed延迟好几篇文章

    • Matrix Matrix 2014-04-05T14:22:55+08:00

      延迟? 哦,最近懒得管了

  2. 快乐淘 快乐淘 2014-04-04T17:07:36+08:00#9

    😀 😀 高大上的说,以后完全可以在自己的网站方歌曲了~~~

    • Matrix Matrix 2014-04-05T14:37:56+08:00

      嗯 这些国内音乐站速度老快了~

  3. mooc mooc 2014-04-04T16:21:20+08:00#8

    好极了。。

  4. maillot trek maillot trek 2014-04-04T11:21:55+08:00#7

    收了~

  5. KiKi KiKi 2014-04-02T22:10:39+08:00#6

    高大上(´・ω・)つ

  6. 逗妇乳 逗妇乳 2014-03-31T20:39:11+08:00#5

    用hermit特别方便

    • Matrix Matrix 2014-04-02T17:44:45+08:00

      hermit 这是什么玩意

      • 逗妇乳 逗妇乳 2014-04-05T13:04:29+08:00

        牧风的插件

        • Matrix Matrix 2014-04-05T14:23:29+08:00

          刚去看了。插件的确很巴适!

  7. 厦门品讯 厦门品讯 2014-03-31T15:37:03+08:00#4

    收藏了

  8. xilouqingzhu xilouqingzhu 2014-03-31T10:04:11+08:00#3

    差,这货也可以丫,,不知道长久不

    • Matrix Matrix 2014-03-31T12:51:04+08:00

      应该还好吧 早就看到有人用了

  9. Soar、毅 Soar、毅 2014-03-31T09:43:20+08:00#2

    Nice, 收了~

  10. 周小姐 周小姐 2014-03-30T13:20:22+08:00#1

    意思是可以音乐外链了吗

    • Matrix Matrix 2014-03-30T13:58:14+08:00

      嗯 很多都可以外链的

添加新评论 »

 🙈 😱 😂 😛 😭 😳 😀 😆 👿 😉 😯 😮 😕 😎 😐 😥 😡 😈 💡

插入图片

NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!
 
载入中...