@rikorit746

Yandex music: как скачать полный трек?

Добрый день! Подскажите, раньше получалось таким образом загрузить аудио с яндекс музыки, сейчас получается скачать только отрезки в 30 секунд, каким образом сейчас можно загрузить песню полностью?
<?php
$ch = curl_init('https://api.music.yandex.net/tracks/' . $ID . '/download-info');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$json = json_decode(curl_exec($ch));
curl_close($ch);
 
foreach ($json->result as $track) {
    if ($track->codec == 'mp3') {
        $InfoUrl = $track->downloadInfoUrl;
        break;
    }
}
 
$ch = curl_init($InfoUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$xml = new SimpleXMLElement(curl_exec($ch));
curl_close($ch);
 
$md5      = md5('XGRlBW9FXlekgbPrRHuSiA' . substr($xml->path, 1) . $xml->s);
$urlBody  = "/get-mp3/$md5/" . $xml->ts . $xml->path;
$url      = "https://" . $xml->host . $urlBody;
$fileName = __DIR__ . '/filename.mp3';
 
$fp = fopen($fileName, 'w+') or die('Unable to write a file');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1000);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
  • Вопрос задан
  • 347 просмотров
Пригласить эксперта
Ответы на вопрос 1
vitaly_74
@vitaly_74
только сначала атворизация как пользователь, а потом эммитировать прослушивание - он во время прослушивания будет давать части mp3 их склеиваешь и сохраняешь. только так. гемору побольше = но зато работает)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы