百川影音等APP网络自定义接口的运用

前言

诸如 Prefect Player 提供了多个可以自定义的在线直播源文件添加接口,甚至可以根据需求无限添加,而友窝、骆驼、百川影音等都是只内置唯一的用户自定义通道。习惯性地,大部分人都是直接把TXT或PHP格式的源文件只扔上去。

之前百川为了解决部分人提出的一个接口不够用的问题,他是给大家一个文件,大概目录如下。

接口
  ├──── list.php 
  └──── list
          ├── 10001.txt

注意list文件夹下可以放置多个txt文件,这边只是列出一举栗。其中PHP文件的内容为:

<?php
header('Content-Type: text/json;charset=UTF-8');
$dir=dirname(__FILE__);
$files = glob('./list/*.txt');
$result='';
foreach ($files as $file) {
        $fsize=filesize($file);
        $myfile = fopen($file, "r") or die("Unable to open file!");
        $txt= fread($myfile,$fsize);
        fclose($myfile);
        $txt=$txt."\r\n";
        $result=$result.$txt;
}
echo $result;
?>

这样只要在APP上填写 /list.php 的地址,就相当于读取了 list 文件夹下的所有txt源文件内的直播源了。

这是段很简单的代码,但当时还是眼前一亮,那种挣脱束缚,发现新大陆的感觉。大佬这是以后台开发者的角度提供处理接口方式,这是对APP单一接口的扩展方法。

在 Black-Player 中的应用

最初直播源的列表同步也想靠FTP协议来做,就像PeteDB播放器那样,如果服务器上安装的是宝塔这类可视化面板,点几下鼠标就可以完成服务端的配置,还是很方便的。当时用的是军哥的LNMP命令行面板,由于站长是小菜,配置两次没成功,遂放弃。

这次受到启发和刺激就先用POST提交数据的方式来实现直播源的推送。

以下是播放器设置面板新增的内容:

《百川影音等APP网络自定义接口的运用》

数据以表单的方式提交,默认的服务端的PHP需要使用 $_POST[‘c’] 来接收直播源内容,附件参数是用来提交自定义的表单,用于服务扩展功能,举个例子服务端可以通过判断自定义的参数来决定是要覆盖写入还是追加写入txt。

《百川影音等APP网络自定义接口的运用》

直播源的推送格式最初计划只输出一个通用格式,考虑到减轻服务端编程压力,目前增加提供了 M3U 列表和百川影音的列表格式。

服务端举例

服务端的功能最好自行扩展,此处只是验证播放器接口的可用性,当然不嫌弃功能单一代码丑陋的话也可以直接拿去用。不要被本例束缚了。

接口
  ├──── list.php 
  ├──── list
         └── 10001.txt
  └──── receive.php

如上图文件结构,增加一个 receive.php 文件并写入以下内容。

<?php
//* 黑鸟博客 *
$strF = isset($_POST['c']) ? $_POST['c'] : '';
if($strF!==''){
  $myfile = fopen("./list/10001.txt", "w") or die("Unable to open file!");
  fwrite($myfile, $strF);
  fclose($myfile);
}
echo "完毕";
?>

这段源码做的事情就是接收来自黑鸟播放器推送的内容,并以覆盖原内容的方式写入 10001.txt 内。在APP上依然通过 list.php 来读取列表。

以上linux服务器需要特别注意文件权限,否则可能无法读写文件,实在不懂就都设置 777 权限(不建议)。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

  1. JACKY 说道:

    等待自定义的源可以根据EPG选择节目可以回看,IPTV的源一周都可以回看了,但只能时移拉,而不能根据EPG进行回看。

  2. colinjian22 说道:

    APP遥控填写地址有点麻烦。