最近在進行一次對酷狗**歌詞採集時發現酷狗**的歌詞直接瀏覽都是「亂碼」,自己平時所見的歌詞都是lrc格式的文字,這種酷狗專用的krc格式的顯然是經過特別處理過的,平時用酷狗聽**也沒仔細看www.cppcns.com他的歌詞有什麼不同,只是與天天靜聽等不同的是可以逐字高亮顯示歌詞。
對酷狗的flash**器進行反編譯,發現這段krc解密的actionscript**:
public function loadercompletehandler(param1:bytearray) : void
try catch (error:securityerror)
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_text = gzuncompress($krc_compress);
上面的$krc_content為krc歌詞壓縮加密的文字內容,得到了解析後的krc明文文字歌詞$krc_text,然後就可以很容易的轉www.cppcns.com換成lrc歌詞了,如下:
function krc2lrc($krc_content,$glue = "n")
$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),(d)](.+)/",$krc_text,$matches);
unset($krc_text,$krc_compress,$krc_content,$enkey);
if(!empty($matches[1]))]";
} }return $lrc_text;
}簡單示例如下:
$content = file_get_contents('1.krc');
echo krc2lrc($content,'
');本文標題: 將酷狗krc歌詞解析並轉換為lrc歌詞php原始碼
本文位址:
酷狗krc歌詞轉換為lrc格式
傳遞乙個krc格式歌詞的路徑,返回讀取並返回解密的字串public string krc2lrc string krc string krc text new string decompress zip byte utf 8 krc text krc text.replaceall 刪除krc多餘的...
krc歌詞檔案解析
做卡拉ok專案時,逐字歌詞同步需要很多高精度的lrc檔案,目前國內有2大家 擁有專利的kugou和沒有專利的qq 二者各推出了一種逐字同步歌詞檔案 krc和qrc。krc有加密處理,直接開啟的話只能看到亂碼。krc.h ioskrcdecoder created by zeng songgen on...
python3 歌詞檔案krc轉lrc
qrc因為明文顯示,很容易與lrc轉換,本 適用於krc轉換為lrc def decode krc krc name 接收 krc檔案路徑 str型別 返回 標準lrc文字 str型別.可以自行編寫指令碼,只需要匯入decode krc 方法 可以通過簡單修改krc to lrc直接使用指令碼,只需...