酷狗krc歌词解析并转换为lrc歌词php版

最近在进行一次对酷狗音乐歌词采集时发现酷狗音乐的歌词直接浏览都是“乱码”,自己平时所见的歌词都是lrc格式的文本,这种酷狗专用的krc格式的显然是经过特别处理过的,平时用酷狗听音乐也没仔细看他的歌词有什么不同,只是与天天静听等不同的是可以逐字高亮显示歌词。

于是搜索了下发现有个java版的半成品解密代码,测试了下竟然还是“乱码”,巨坑!于是只有采用最原始的办法,对酷狗的flash播放器进行反编译,发现这段krc解密的ActionScript代码:

 代码如下 复制代码

public function loaderCompleteHandler(param1:ByteArray) : void{
 this.newkeyBytes = [64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105];
 var result:* = param1;
 var krcBytes:* = new ByteArray();
 result.position = 4;
 result.readBytes(krcBytes);
 var l:* = krcBytes.length;
 var i:int;
 while (i < l) {
  krcBytes[i] = krcBytes[i] ^ this.newkeyBytes[i % this.newkeyBytes.length];
  i = (i + 1);
 }
 try {
  krcBytes.uncompress();
 } catch (error:SecurityError) {
  errorfun("uncompressError");
  return;
 }
 krcBytes.position = 0;
 this.myLyric.dataStr = krcBytes.readUTFBytes(krcBytes.length);
 this.successfun();
 return;
}

根据这段代码可以很快转换成php解析代码:

 代码如下 复制代码

$enKey = array(64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105);
$krc_content = substr($krc_content,4);
$len = strlen($krc_content);
$krc_compress = '';
for ($k = 0; $k < $len; $k++){
 $krc_compress .= chr(ord($krc_content[$k]) ^ $enKey[$k % 16]);
}
$krc_text = gzuncompress($krc_compress);

上面的$krc_content为krc歌词压缩加密的文本内容,得到了解析后的krc明文文本歌词$krc_text,然后就可以很容易的转换成lrc歌词了,如下:

 代码如下 复制代码

/**
 * krc歌词解析并转换为lrc歌词
 * $Name: krc2lrc  2014-4-18  qaulau<qaulau@hotmail.com>$
 *
 * @param string $krc_content 加密的krc歌词内容
 * @param string $glue   处理后的lrc歌词连接字符,默认为换行符n
 */
function krc2lrc($krc_content,$glue = "n"){
    $enKey = array(64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105);
 $krc_content = substr($krc_content,4);
 $len = strlen($krc_content);
 $krc_compress = '';
 for ($k = 0; $k < $len; $k++){
  $krc_compress .= chr(ord($krc_content[$k]) ^ $enKey[$k % 16]);
 }
 $krc_text = gzuncompress($krc_compress);

 preg_match_all("/[(ar|ti|offset):(.+)]/",$krc_text,$matches);
 $lrc_text = implode($glue,$matches[0]).$glue;
 preg_match_all("/[(d{0,8}),(d{0,8})](.+)/",$krc_text,$matches);
 unset($krc_text,$krc_compress,$krc_content,$enKey);
 if(!empty($matches[1])){
  foreach($matches[1] as $k=>$v){
   list($seconds, $millis) = explode('.', $v / 1000);
   $lrc_time = date('i:s',1388534400 + $seconds).'.'.substr($millis,0,2);
   $lrc_cont = preg_replace("/<d{1,8},d{1,8},d{1,8}>/",'',$matches[3][$k]);
   $lrc_text .= "[{$lrc_time}]{$lrc_cont}{$glue}";
  }
 }
 return $lrc_text;
}

简单的示例:

 代码如下 复制代码

$content = file_get_contents('1.krc');
echo krc2lrc($content,'<br/>');

分享一下,方便日后有类似需要的人查询!

时间: 2024-10-04 16:14:12

酷狗krc歌词解析并转换为lrc歌词php版的相关文章

将酷狗krc歌词解析并转换为lrc歌词php源码_php技巧

最近在进行一次对酷狗音乐歌词采集时发现酷狗音乐的歌词直接浏览都是"乱码",自己平时所见的歌词都是lrc格式的文本,这种酷狗专用的krc格式的显然是经过特别处理过的,平时用酷狗听音乐也没仔细看他的歌词有什么不同,只是与天天静听等不同的是可以逐字高亮显示歌词. 对酷狗的flash播放器进行反编译,发现这段krc解密的ActionScript代码: public function loaderCompleteHandler(param1:ByteArray) : void{ this.new

酷狗怎么下载歌词?

酷狗拥有最新最全的音乐,有时候我们想要学歌,就必须需要歌词,不知道各位有没有感觉QQ音乐下载的时候连带歌词下载的,方便多了,就是歌曲少.酷狗却找不到按下载歌词的键,纳闷ing...那么我们怎么才能把歌词下载下来呢?下面就来看看小编为您准备的图文教程. 首先,我们需要找到学习的歌曲,点击搜索 一般情况下,下面会出现歌词的,如果没有,那么我们可以进行搜索歌词,自己下载 把鼠标放在歌词上,在上方会出现一些设置,点击齿轮,浏览歌词文件,这个就是大家需要的歌词了!!! 如果大家觉得歌曲的歌词不对,大家可以

酷狗音乐桌面歌词怎么解锁?

  1.打开酷狗,找一首播放 2.点击桌面右下角的隐藏的图标,右击. 3.右击后会出现酷狗的设置选项,里面有歌词解锁的选项,只需点击即可. 还有一种方法是在遥控器上面解锁

酷狗桌面歌词怎么解锁

  1.打开酷狗,找一首播放 2.点击桌面右下角的隐藏的图标,右击. 3.右击后会出现酷狗的设置选项,里面有歌词解锁的选项,只需点击即可. 还有一种方法是在遥控器上面解锁

酷狗音乐盒怎么在桌面显示歌词

  酷狗音乐盒怎么在桌面显示歌词? 你要首先要歌曲下载下来放在酷狗的本地列表中,然后点击歌词,桌面上就回出现,并且当你把播放器最小化的时候,歌词依旧在桌面上,不会影响你做其他的事情.

酷狗音乐下载的歌词保存位置

酷狗下载的歌词默认是保存在哪? 酷狗音乐安装目录里面有一个Lyric文件夹里(如D:\Kugou2010\Lyric\). 当然我们了会在酷狗音乐[选项设置]-[歌词设置]在此来调整音乐歌曲下载保存路径了 好了到此关于酷狗音乐歌词保存的路径就介绍到此了,希望例子能够帮助到大家.

iPhone音乐应用大PK酷狗音乐完美胜出

不管果粉们愿不愿意承认,iPhone成为街机已经是不争的事实.不管你在公司.餐厅.商场,都可以看到人手一台.而iPhone之所以能受到如此狂热的追捧,除了时尚的外观.酷炫的硬件及iOS系统强大的功能之外,App Store中众多的应用软件也是用户热爱它的重要原因.音乐作为不少果粉喜好的休闲娱乐方式之一,在面对各种APP功能手机端应用程序,该如何选择又成为每个手机用户选择性上的障碍.今天笔者就精选了其中几款热门的免费音乐应用进行相关评测,分别是酷狗音乐,QQ音乐,酷我音乐,天天动听,供众多音乐爱好

酷狗“蝰蛇音效”一出谁与争锋!

在智能机更新换代极速的时代,用手机在地铁,在等公交时听音乐似乎是不错的选择.不过相对于手机各项并不那么高的硬件水准而言,PC因硬件的全面胜出依旧赢得了普通白领的首选.因而挑选一款好的播放器成了广大用户能否享受到更好的音乐的关键,各大音乐播放器品牌也纷纷推出新功能,以应对需求.为了音质,多年战友在酷狗"蝰蛇"面前惨遭卸载!历经N代PC的播放器品牌,酷狗在2015年跨年推出的"蝰蛇"音效版以3D丽音.HiFi现场.超重低音.纯净人声四种模式以满足广大用户对音质的追求,对

LRC 歌词同步

LRC 歌词同步,大家看到了baidu在线歌词同步功能,现在我们也用flash实现lrc歌词同步下载和lrc歌词同步显示  大家也可以把这个文本内容复制下来,然后在"C:\My Player\LRC\"下创建一个文本文档,将内容粘贴上去,再将文档保存为"青花瓷.lrc",注意扩展名是".lrc". 二.LRC 内容分析     准备工作完成了,下面分析一下这个 LRC 文件.之所以叫 LRC ,是因为它是 Lyric (歌词) 的缩写.这种格式真