CURL получение содержимого m3u8

241
03 июня 2017, 17:30

В общем пишу api для граббинга m3u8, есть функция которая отдает ссылку на файл, ссылка в таком виде

http://site1.ru/moonlight/master.m3u8?host=site2.ru&path=video/a894e0eb9998c57a/index.m3u8?cd=0&expired=1496417577&frame_commit=623b1d65d52a72bf83b4da6991d305fe&mw_pid=null&signature=805ee6fcb593fa357deb2a853a5c15a3

Содержимое этого файла

#EXTM3U
#EXT-X-STREAM-INF:RESOLUTION=640x360,BANDWIDTH=390000 http://***/sec/1496432164/3637393389661ce0c892d1657fb875be9b22be83975b0e7d/ivs/27/ee/3512d095cf87.mp4/hls/tracks-3,4/index.m3u8
#EXT-X-STREAM-INF:RESOLUTION=854x480,BANDWIDTH=586000 http://***/sec/1496432164/343336310c78df1575d4bb4845c8042bbd6b67f39f8f4436/ivs/27/ee/3512d095cf87.mp4/hls/tracks-2,4/index.m3u8
#EXT-X-STREAM-INF:RESOLUTION=1280x718,BANDWIDTH=1053000 http://***/sec/1496432164/33363433b822f66ef82a19364ddafcbdd8bcb9982031a8ae/ivs/27/ee/3512d095cf87.mp4/hls/tracks-1,4/index.m3u8

Мне надо получить вот это содержимое через CURL, делаю запрос а курл отдает мне ошибку 3 malformed Вот код

public function parseM3U8($getVideoStream, $quality = null) {
    $getVideoStream = json_decode($getVideoStream['json']);
    $getVideoStream['manifest_url'] = $getVideoStream->manifest; //http://site1.ru/moonlight/master.m3u8?host=site2.ru&path=video/a894e0eb9998c57a/index.m3u8?cd=0&expired=1496417577&frame_commit=623b1d65d52a72bf83b4da6991d305fe&mw_pid=null&signature=805ee6fcb593fa357deb2a853a5c15a3
    $getVideoStream['_moon_session'] = $getVideoStream->cookies; //_moon_session=sd7nvzyr7vy8zl7rybo8gzsvkvs46is4vkk6tva;
    $param = array(
        'URL' => $getVideoStream['manifest_url'],
        'HEADER' => false,
        'ENCODING' => 'gzip, deflate',
        'USERAGENT' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; c) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
        'REFERER' => 'http://site.ru/',
        'HTTPHEADER' => array('X-Requested-With:XMLHttpRequest', 'Host:site1.ru', 'Origin:http://site1.ru'),
        'COOKIE' => $getVideoStream['_moon_session'],
        'COOKIEJAR' => 'cookie.txt',
        'COOKIEFILE' => 'cookie.txt'
    );
    $return = $this->curl->execute($param);
    return $return;
}

Использую свою простую curl оболочку для удобства, в ней ошибок нет точно. Функция отдает мне вот это

Array ( [url] => [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0 [namelookup_time] => 0 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [redirect_url] => [primary_ip] => [certinfo] => Array ( ) [errno] => 3 [errmsg] => malformed [content] => )

В чем ошибка не пойму. Может кто знающий поможет? Спасибо

READ ALSO
Указатели на функии С++

Указатели на функии С++

Разбираю указатели на функции,и решил реализоватьФункция, сама по себе простенькая, подсчет количества слов в строке

344
UML диаграммы в Visual Studio 2015

UML диаграммы в Visual Studio 2015

Как составить UML диаграммы по написанному коду в Visual Studio 2015 Community Edition?

533
Работа с файлами в с++ [требует правки]

Работа с файлами в с++ [требует правки]

Помогите пожалуйста, суть задания нужно создать игру,угадай числоесли диапазон чисел начинающихся с 0 и 1 и пользователь должен угадать число...

291
Как превратить массив в двумерный

Как превратить массив в двумерный

Написал код по рандомному формированию массиваТеперь хочу что бы он стал двумерным

380