Hướng dẫn get link nhạc, video trang mp3.zing.vn

Bạn đang ở bài 5 trong 12 bài của serie Get Link.

Thấy có khá nhiều bạn hỏi về cách get link nhạc, video của trang mp3.zing.vn nên hôm nay mình hướng dẫn các bạn cách get link của website này.

Demo tool get link nhạc mp3.zing.vn:

Download code:

Hướng dẫn get link nhạc, video trang mp3.zing.vn

Ý tưởng:

Trên trang zing, mỗi bài hát hoặc video, data đều được lưu vào file xml, nên ta sẽ đi tìm file xml đó để lấy thông tin bài hát. Chỉ như vậy thôi, thật đơn giản phải không nào. Nhưng sẽ có 1 số bài hát chúng ta không lấy được link mp3 hoặc video chúng ta không lấy được các link 720p, 1080p do bài hát đó bản quyền hoặc nó đòi hỏi tài khoản vip.

Cách thức thực hiện:

Bước đầu ta phân tích các kiểu url trên trang mp3 zing

Trên mp3 zing có 4 kiểu link nhạc:

  • Track đơn: http://mp3.zing.vn/bai-hat/*
  • Album: http://mp3.zing.vn/album/*
  • Playlist: http://mp3.zing.vn/playlist/*
  • Video: http://mp3.zing.vn/video-clip/*

Vì mỗi link khác nhau nên có kiểu lưu data xml khác nhau(album và playlist giống nhau).

Chúng ta có 3 dạng lưu file xml:

  • Track đơn: http://mp3.zing.vn/xml/song-xml/*
  • Album và playlist: http://mp3.zing.vn/xml/album-xml/*
  • Video: http://mp3.zing.vn/xml/video-xml/*

Ví dụ như bài hát: http://mp3.zing.vn/bai-hat/Vo-Nguoi-Ta-Phan-Manh-Quynh/ZW7WBZBI.html

Các bạn có thể view source link nó ra: view-source:http://mp3.zing.vn/bai-hat/Vo-Nguoi-Ta-Phan-Manh-Quynh/ZW7WBZBI.html

Sẽ có file xml tại đây: data-xml=”http://mp3.zing.vn/xml/song-xml/LGxHtZHNpAnhZbutkFcTvmkm

Update: hiện tại zing mp3 đã thay đổi link file xml, và file xml cũng không trả về dạng xml nữa mà trả về dạng json: 
http://mp3.zing.vn/html5xml/song-xml/LGxHtZHNpAnhZbutkFcTvmkm

Khi truy cập vào file xml đó ta sẽ thấy rõ các thông tin của bài hát này. Trong đó có <source></source> chính là link mp3 của bài hát đó. Tương tự như vậy các kiểu album và playlist cũng thế, còn video thì nó sẽ trả ra <f240>, <f360>, <f480>, <f720>, <f1080> tương ứng với độ phân giải của video.

Vậy các bước thực hiện sẽ là:

view source -> tìm file xml -> đọc file xml -> trả ra kết quả

Để thực hiện được việc này trước tiên chúng ta phải có function curl:

function curl($url)
{
	$ch = @curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	$head[] = "Connection: keep-alive";
	$head[] = "Keep-Alive: 300";
	$head[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
	$head[] = "Accept-Language: en-us,en;q=0.5";
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36');
	curl_setopt($ch, CURLOPT_ENCODING, '');
    curl_setopt($ch, CURLOPT_HTTPHEADER, $head);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
	curl_setopt($ch, CURLOPT_TIMEOUT, 60);
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
	curl_setopt($ch, CURLOPT_HTTPHEADER, array(
		'Expect:'
	));
	$page = curl_exec($ch);
	curl_close($ch);
	return $page;
}

Nếu các bạn theo dõi các bài viết get link của mình thì không lạ gì với function curl này rồi đúng không.

Các bước thực hiện:

  • View souce link ra, hay đọc nội dung link đó, chúng ta sử dụng function curl trên:
$data = curl($link);
  • Tìm file xml:
preg_match("/http:\/\/mp3.zing.vn\/xml\/song\-xml\/(.*?)\"/",$data,$arr_preg);
  • Đọc file xml, chúng ta sử dụng lại function curl:
$link_xml = str_replace('"','',$arr_preg[0]); // bỏ ký tự " trong chuỗi lấy được
$xml_data = curl($link_xml);
  • Trả ra kết quả, ở đây mình có 2 cách trả ra. Thứ 1 là dùng hàm preg_match để tách nội dung muốn lấy, thứ 2 là dùng simplexml_load_string chuyển nội dung file thành mảng.

– dùng preg_match get title và link mp3

preg_match("/&lt;title&gt;&lt;!\[CDATA\[(.*?)]]&gt;&lt;\/title&gt;/",$xml_data,$arrTitle);
$title = $arrTitle[1];
preg_match("/&lt;source&gt;&lt;!\[CDATA\[(.*?)]]&gt;&lt;\/source&gt;/",$xml_data,$arrLinkMp3);
$linkMp3 = $arrLinkMp3[1];

– dùng simplexml_load_string:

$xml_string = str_replace("&lt;![CDATA[","",$xml_data); // xóa bỏ &lt;![CDATA[ khỏi chuỗi $xml_string = str_replace("]]&gt;","",$xml_string); // xóa bỏ ]]&gt; khỏi chuỗi
$xml = json_decode(json_encode((array) simplexml_load_string($xml_string)), 1); // chuyển đổi thành mảng
if($xml['item']){
     $item = $xml['item'];
     $linkMp3 = $item['source'];
     $title = $item['title'];
}

Như vậy là chúng ta đã lấy được thông tin bài hát đó rồi function đầy đủ sẽ là:

function getMp3($link){
    $link = trim($link);
    $return = array();
    if (preg_match("/http:\/\/mp3.zing.vn\/bai\-hat\/(.*?).html/",$link)){
        $data = curl($link);
        preg_match("/http:\/\/mp3.zing.vn\/xml\/song\-xml\/(.*?)\"/",$data,$arr_preg);
        $link_xml = str_replace('"','',$arr_preg[0]);
        $xml_data = curl($link_xml);
        $xml_string = str_replace("&lt;![CDATA[","",$xml_data); $xml_string = str_replace("]]&gt;","",$xml_string);
        $xml = json_decode(json_encode((array) simplexml_load_string($xml_string)), 1);
        if($xml['item']){
            $item = $xml['item'];
            $return['source']      = $item['source'];
            $return['title']       = $item['title'];
            $return['performer']   = $item['performer'];
            $return['lyric']       = $item['lyric'];
            $return['image']       = $item['backimage'];
            $return['errormessage']= $item['errormessage'];
        }
    }
    return $return;
}
// update function (09/09/2016)
function getMp3($link){
    $link = trim($link);
    $return = array();
    if (preg_match("/http:\/\/mp3.zing.vn\/bai\-hat\/(.*?).html/",$link)){
        $data = curl($link);
        preg_match("/http:\/\/mp3.zing.vn\/html5xml\/song\-xml\/(.*?)\"/",$data,$arr_preg);
        $link_xml = str_replace('"','',$arr_preg[0]);
        $xml_data = curl($link_xml);
        $data = json_decode($xml_data);
        if(isset($data->data[0])){
            $item = $data->data[0];
            $return[0]['source']      = 'http://'.$item->source_list[1];
            $return[0]['title']       = $item->name;
            $return[0]['performer']   = $item->artist;
            $return[0]['lyric']       = $item->lyric;
            $return[0]['image']       = 'http://image.mp3.zdn.vn'.$item->cover;
        }
        $return[0]['errormessage']= $data->msg;
    }
    return $return;
}

Chỉ với 2 function curl và getMp3 chúng ta có thể get thông tin bài hát đó rồi, bạn chỉ cần điền link bài hát vào function getMp3, nó sẽ trả về cho bạn các thông tin cơ bản. Cách get album, playlist và video bạn có thể dựa vào các đoạn code trên để làm tương tự được rồi.

Hướng dẫn get link nhạc, video trang mp3.zing.vn
4 (80.39%) 51 votes

Từ khóa tìm kiếm:

  • share code getlink mp3 zing vn
  • getlink mp3 zing vn php
  • hd get link mp3
  • lấy link mp3 zing vn

Bình luận

18 Bình luận on "Hướng dẫn get link nhạc, video trang mp3.zing.vn"

Thông báo
avatar
Sắp xếp:   Mới nhất | Cũ nhất | Bình chọn nhiều
trackback

[…] trước mình đã hướng dẫn get link nhạc, video trang mp3.zing.vn. Hôm nay mình sẽ hướng dẫn các bạn get link nhạc và video của trang […]

trackback

[…] get link nhạc và video trang np3.zing.vn, bạn nào chưa xem qua thì có thể xem tại đây, để có thể dễ hiểu bài hướng dẫn này hơn vì mp3.zing với tv.zing khá giống […]

trackback

[…] Các bạn có thể xem ví dụ ở 1 bài viết bất kỳ trong serie nào đó, mình ví dụ bài này: Hướng dẫn get link nhạc, video trang mp3.zing.vn […]

Nguyễn Phúc Bảo
Guest

Bạn gửi mail php cái này dc ko?

LeeTA
Guest

Bác share em hết mấy cái code get link này đc ko :3 nếu được thì gửi vào mail giúp em nha :v

LeeTA
Guest
kha
Guest

Bạn có thể hướng dẫn sử get lời nhạc karaoke tại ikara.co được không. mình đã thử cách của bạn để làm trang đó nhưng không được.
Link https://www.ikara.co/karaoke/xxxxx-2216
Xin được chỉ giáo

Lee Hoang
Guest

Chào bạn bạn có thể làm 1 bài getlink download nhạc losless bằng ác víp zing dc không thanks

Ammar
Guest

Please give me the password 🙁

wpDiscuz