11/08/2018, 20:46

[Nghịch ngợm] Lấy link download 320kbps / lossless từ Mp3 Zing

Một link bài hát / video từ mp3.zing.vn Cũng vì dạo này mình hơi rảnh rỗi với có một chút phiền phức khi đang thưởng thức nhạc lossless / 320kbps ở Zing mà hết VIP, nên ngồi nghịch một chút xem có cách nào lấy được link download mà không cần VIP hay không và cuối cùng thì cũng đã thành công. ...

  • Một link bài hát / video từ mp3.zing.vn

Cũng vì dạo này mình hơi rảnh rỗi với có một chút phiền phức khi đang thưởng thức nhạc lossless / 320kbps ở Zing mà hết VIP, nên ngồi nghịch một chút xem có cách nào lấy được link download mà không cần VIP hay không :smile: và cuối cùng thì cũng đã thành công.

Nguồn gốc cách lấy link Mình tìm được cách lấy link này từ việc decompile app Zing Mp3 trên android mà ra. Cũng có thể có nhiều bạn cũng đã thực hiện việc này thành công rồi :smile: và cũng có thể là do các coder bên Zing có chút sơ xuất với API nên thành ra thế này...

Cách lấy link thì cũng đơn giản thôi. Đầu tiên ta lấy một link bài hát từ mp3.zing.vn
Ví dụ: http://mp3.zing.vn/bai-hat/Vo-Nguoi-Ta-Phan-Manh-Quynh/ZW7WBZBI.html
Bước 1: Ta tách lấy phần ID và lưu lại => ID: ZW7WBZBI
Bước 2:
Thay ID vào chỗ IDBAIHAT bên dưới và vào bằng browser

http://api.mp3.zing.vn/api/mobile/song/getsonginfo?requestdata={"id":"IDBAIHAT"}

Kết quả trả về từ browser là một chuỗi json, bạn có thể tách thủ công ra hoặc dùng cách nào đó để tách lấy link download rồi down về thôi :smile:

Ở đây mình hướng dẫn viết một đoạn code ngắn bằng PHP để lấy link download rồi show ra cho lẹ :smile:

Bước 1:
Tạo 1 file PHP và truyền link download thông qua phương thức get và tiện tách luôn cái ID bài hát

<?php
if(isset($_GET['url']))
{
    $arr = explode("/",$_GET['url']);
    $id = str_replace(".html","",$arr[count($arr)-1]);
}

Xong, như thế là đã tách xong cái chuỗi ID, tiếp theo là gửi request đến cái link API. Ở đây các bạn có thể dùng cURL cũng được. Nhưng mình dùng file_get_contents cho lẹ, đỡ rườm rà và code dài dòng :smile: rồi decode json thành array và lấy link download show ra HTML.
Fullcode:

<?php
if(isset($_GET['url']))
{
  $arr = explode("/",$_GET['url']);
  $id = str_replace(".html","",$arr[count($arr)-1]);
  $url = "http://api.mp3.zing.vn/api/mobile/song/getsonginfo?requestdata={"id":"$id"}";
  $json = json_decode(file_get_contents($url), true);
  ?>
  <a href="<?=$json['source'][320]?>">320 kbps</a> | <a href="<?=$json['source']['lossless']?>">Lossless</a>
  <?php
}

Các bạn có thể tùy biến theo ý mình, tức là có thể viết bằng javascript hay bất kì ngôn ngữ nào đó. Theo mình thì nên viết bằng javascript, sau đó add chuỗi javascript vào bookmark menu. Đến khi cần download chỉ cần nhấn bookmark là có thể download rồi :smile:
Cách gắn vào bookmark cũng khá đơn giản, bạn tạo mới 1 bookmark, phần location nhập

javascript:code java script ....

Vậy là xong, chúc các bạn vui vẻ và ngủ ngon :smile:

0