Редактор темы

Не работает парсер (httpversionnotsupported)

shadow6630

Зелёный
Регистрация
29 Окт 2018
Сообщения
1
Рейтинг реакций
0
Баллы
1
Возраст
37
1/3
Автор темы
Есть сайт www.soundclick.com, с него нужно ретранслировать две ссылки:
- первая на прослушивание трека (битрейт ниже)
- вторая на скачивание, соответственно качество получше

Что бы рестранслировать первую ссылку достаточно прописывать куки с главной страницы soundclick.com
А вот чтобы получить ссылку на скачивание, куки нужно писать с страницы https://www.soundclick.com/utils_download/download_song.cfm?ID=14061226 , а потом уже по ссылке https://www.soundclick.com/utils_download/download_songDeliver.cfm?songID=14061226&ppID=0&selectLevel=320 получать сам трек

Для этого написан парсер:
PHP:
<!--?php

$id = '14061226';

$track_name = isset($_GET['name']) ? $_GET['name'] : 'test';

$type = isset($_GET['type']) ? $_GET['type'] : null;

if ($type == 'play') {

   $file = getCurl('https://www.soundclick.com/playerV5/panels/audioStream.cfm?songID='. $id);

   file_download($file, $track_name);

} else if ($type == 'donwload') {

$link = 'https://www.soundclick.com/utils_download/download_song.cfm?ID='. $id;

$link_download = 'https://www.soundclick.com/utils_download/download_songDeliver.cfm?songID='. $id. '&ppID=0&selectLevel=320';

getCurl($link);

file_download( getCurl($link_download) , $track_name);

}

function getCurl($url) {

   $ch = curl_init($url);

   curl_setopt($ch, CURLOPT_COOKIEFILE, __DIR__ . '/cookie.txt');

   curl_setopt($ch, CURLOPT_COOKIEJAR, __DIR__ . '/cookie.txt');

   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

   $header_size = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

   $html = curl_exec($ch);

   curl_close($ch);

   return $html;

}

function file_download($file, $track_name) {

header('Content-Type: audio/mpeg');

header("Accept-Ranges: bytes");

header("Content-Length: ". mb_strlen($file, '8bit') );

header("Cache-Control: max-age=0");

header("Range: bytes=0-58367");

header('Content-Disposition: attachment; filename="'. $track_name. '.mp3"');

echo $file;

}

?-->

Проблема заключается в том что ссылка на прослушивание (/test.php?type=play) ретранслируется норм, а вот ссылка на скачивание (/test.php?type=dowload) отдает пустой файл с содержимым:
HTML:
<?xml version="1.0" encoding="UTF-8"?><Error><Code>HttpVersionNotSupported</Code><Message>The HTTP version specified is not supported.</Message><RequestId>4B988A15EDC9D2FE</RequestId><HostId>MWexueSVjDOfOaVdYRGG5qGcBBiNxRrH0Z1k3B+/d1L7IMeKXHVcXjNb7BgJ0TzvyJYXNDqKjCTjNuTT1f3as74e3O7w8uHJ</HostId></Error>

Просьба помочь в решении проблемы дельным советом.
Забыл уточнить что на локалхосте все работает и все дело в версии Curl (не работает на свежих версиях). Не особо хочу менять ОС на сервере на более старую из-за этого.
 

Похожие темы Последние темы Популярные темы

Назад
Сверху