我正在使用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 这个到默认值:true 而不是480以上
480至 480p
720到 720p *在上面的脚本中不可见但确实存在
1080到 1080p *在上面的脚本中不可见但确实存在
*当然,正确列出它们:
1080
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 :(得分: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>