Как манипулировать API с другого сервера в PHP?

Я использую API для генерации видеопотоков, проблема в том, что я хочу изменить некоторые строки из ссылки ниже в PHP, а затем экспортировать их для использования в качестве новых:

https://api.blogit.vn/getlink.php?link=https://drive.google.com/file/d/0B1xQLLJtrzJoaWUxUHdqY01mRGM&json=jwplayer

Ссылка выше возвращает временный HTML-скрипт:

[{"label":360,"default":"false","type":"mp4","file":"https:\/\/redirector.googlevideo.com\/videoplayback?api=api.blogit.vn&id=002f5ad6c741e491&itag=18&source=webdrive&requiressl=yes&ttl=transient&mm=31&mn=sn-ab5l6ne7&ms=au&mv=u&nh=IgpwcjAzLmxnYTA3KgkxMjcuMC4wLjE&pl=48&mime=video\/mp4&lmt=1451968289958732&mt=1484794782&ip=2604:a880:400:d0::1300:b001&ipbits=32&expire=1484809258&sparams=ip%2Cipbits%2Cexpire%2Cid%2Citag%2Csource%2Crequiressl%2Cttl%2Cmm%2Cmn%2Cms%2Cmv%2Cnh%2Cpl%2Cmime%2Clmt&signature=2AA8E475C2979F19490C850FDAC99E5F55888F8E.8369F59FA0DF17DBDEB6727BD4805437E2F84F29&key=ck2&app=explorer"},
{"label":480,"default":"true","type":"mp4","file":"https:\/\/redirector.googlevideo.com\/videoplayback?api=api.blogit.vn&id=002f5ad6c741e491&itag=59&source=webdrive&requiressl=yes&ttl=transient&mm=31&mn=sn-ab5l6ne7&ms=au&mv=u&nh=IgpwcjAzLmxnYTA3KgkxMjcuMC4wLjE&pl=48&mime=video\/mp4&lmt=1451968288256365&mt=1484794782&ip=2604:a880:400:d0::1300:b001&ipbits=32&expire=1484809258&sparams=ip%2Cipbits%2Cexpire%2Cid%2Citag%2Csource%2Crequiressl%2Cttl%2Cmm%2Cmn%2Cms%2Cmv%2Cnh%2Cpl%2Cmime%2Clmt&signature=7E46471E73EA1D47A3E40A63C2F9B94559E39C67.085EFA564867C6D8226632185559F9EBECB388AD&key=ck2&app=explorer"}]

Как я могу изменить строки в этикетка а также дефолт, пример:
360 к 360p и это для по умолчанию: правда вместо 480, как указано выше
480 до 480p
720 до 720p * не видно в сценарии выше, но существует
1080 в 1080p * не видно в сценарии выше, но существует

* И, конечно, перечислите их правильно как:
1080p
720p
480p
360p

Полный пример API:

<?php
$link = 'https://drive.google.com/file/d/0BwBTO689s4TSeU84LU5DMkszejg';
$api = 'https://api.blogit.vn/getlink.php?link='.$link.'&json=jwplayer';;
$sources = curl($api);
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, 'gzip');
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);
$page = curl_exec($ch);
curl_close($ch);
return $page;
}
?>
<div id="player"></div>
<script type="text/javascript" src="https://api.blogit.vn/BITplayer/jwplayer/jwplayer-7.7.4/jwplayer.js"></script>
<script type="text/javascript">
jwplayer.key = "####jwplayer.key####";
var playerInstance = jwplayer("player");
playerInstance.setup({
id:'player',
sources: <?php echo $sources; ?>,
controls: true,
displaytitle: true,
width: "100%",
height: "100%",
aspectratio: "16:9",
fullscreen: "true",
autostart: true,
});
</script>

0

Решение

Я думаю, что я забыл преобразовать массив в JSON сын код не работает, попробуйте этот

<?php
$link = 'https://drive.google.com/file/d/0BwBTO689s4TSeU84LU5DMkszejg';
$api = 'https://api.blogit.vn/getlink.php?link='.$link.'&json=jwplayer';
$sources = changeValue(curl($api));

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, 'gzip');
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);
$page = curl_exec($ch);
curl_close($ch);
return $page;
}

function changeLabel($label) {
return $label."p";
}

function changeDefault($default) {
return "true";
}

function changeValue($datas){
//Define output
$outputs = [];
if (!empty($datas)) {
$datas = json_decode($datas, true);
rsort($datas);

foreach ($datas as $data) {
if (isset($data['label'])) {
$data['label']   = changeLabel($data['label']);

}
if (isset($data['default'])) {
$data['default'] = changeDefault($data['default']);

}

//keep to output
$outputs[] = $data;
}
}
return json_encode($outputs);
}
?>
<div id="player"></div>
<script type="text/javascript" src="https://api.blogit.vn/BITplayer/jwplayer/jwplayer-7.7.4/jwplayer.js"></script>
<script type="text/javascript">
jwplayer.key = "rqQQ9nLfWs+4Fl37jqVWGp6N8e2Z0WldRIKhFg=="; //This is a public key, do not remove it
var playerInstance = jwplayer("player");
playerInstance.setup({
id:"player",
sources: <?php echo $sources; ?>,
controls: true,
displaytitle: true,
width: "100%",
height: "100%",
aspectratio: "16:9",
fullscreen: "true",
autostart: true,
});
</script>
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector