gonetone/hinet-hichannel-taiwan-radio

此包已被弃用且不再维护。未建议替代包。

获取 HiNet hichannel 台湾电台的 m3u8 流网址、节目表和其他信息!

v2.2.3 2021-06-09 10:10 UTC

This package is auto-updated.

Last update: 2022-07-29 02:26:40 UTC


README

获取 HiNet hichannel 台湾电台的 m3u8 流网址、节目表和其他信息!

Node.js 版本:https://github.com/GoneToneStudio/node-hinet-hichannel-taiwan-radio

注意

  • HiNet hichannel m3u8 流网址会阻止国外 IP 访问 (HTTP 403 Forbidden)。
  • 播放端 IP 和用来获取 m3u8 流网址的服务器 IP 必须相同,否则无法播放 (HTTP 403 Forbidden),可以尝试在服务器端处理后再串流给播放端,进行二次串流。

问题

如果发现任何 BUG,请在此报告:https://github.com/GoneToneStudio/php-hinet-hichannel-taiwan-radio/issues

要求

  • PHP 7.2 或更高版本

安装

使用 Composer 安装 HiNet hichannel 台湾电台 (PHP 包)。

composer require gonetone/hinet-hichannel-taiwan-radio

获取 Hichannel 频道名称方法

  1. 访问 HiNet hichannel 网站
  2. 点击您想要听的电台并确认可以播放
  3. 复制完整频道名称,使用时名称要完全一致(如果不能直接复制可以利用 F12,或者就乖乖用打的XDD)

使用方法

使用 HiNetHichannel 对象

$hichannel = new HiNetHichannel("Hichannel 完整頻道名稱 (string)");

获取 m3u8 流网址

try {
    $hichannel->loadApi(); //加載 HiNet hichannel API
    echo $hichannel->playUrl(); //HiNet hichannel m3u8 串流網址 (string)
} catch (Exception $e) {
    echo $e->getMessage();
}

获取频道名称

try {
    $hichannel->loadApi(); //加載 HiNet hichannel API
    echo $hichannel->title(); //HiNet hichannel 頻道名稱 (string)
} catch (Exception $e) {
    echo $e->getMessage();
}

获取频道 ID

try {
    $hichannel->loadApi(); //加載 HiNet hichannel API
    echo $hichannel->id(); //HiNet hichannel 頻道 ID (string)
} catch (Exception $e) {
    echo $e->getMessage();
}

获取频道描述

try {
    $hichannel->loadApi(); //加載 HiNet hichannel API
    echo $hichannel->desc(); //HiNet hichannel 頻道描述 (string)
} catch (Exception $e) {
    echo $e->getMessage();
}

获取频道区域

try {
    $hichannel->loadApi(); //加載 HiNet hichannel API
    echo $hichannel->area(); //HiNet hichannel 頻道區域 (string)
} catch (Exception $e) {
    echo $e->getMessage();
}

获取频道类型

try {
    $hichannel->loadApi(); //加載 HiNet hichannel API
    echo $hichannel->type(); //HiNet hichannel 頻道類型 (string)
} catch (Exception $e) {
    echo $e->getMessage();
}

获取频道图片网址

try {
    $hichannel->loadApi(); //加載 HiNet hichannel API
    echo $hichannel->imageUrl(); //HiNet hichannel 頻道圖片網址 (string)
} catch (Exception $e) {
    echo $e->getMessage();
}

获取频道节目表

try {
    $hichannel->loadApi(); //加載 HiNet hichannel API
    print_r($hichannel->programList()); //HiNet hichannel 頻道節目表 (array)
} catch (Exception $e) {
    echo $e->getMessage();
}

获取频道目前节目名称

try {
    $hichannel->loadApi(); //加載 HiNet hichannel API
    echo $hichannel->nowProgramName(); //HiNet hichannel 頻道目前節目名稱 (string)
} catch (Exception $e) {
    echo $e->getMessage();
}

示例

完整示例

use GoneTone\HiNetHichannel;

require_once(dirname(__FILE__) . "/vendor/autoload.php");

$hichannel = new HiNetHichannel("KISS RADIO 大眾廣播電台"); //請輸入完整頻道名稱

try {
    /* 加載 HiNet hichannel API */
    $hichannel->loadApi();

    /* 取得 HiNet hichannel m3u8 串流網址 */
    echo "m3u8 串流網址:" . $hichannel->playUrl() . "\n";

    /* 取得 HiNet hichannel 頻道名稱 */
    echo "頻道名稱:" . $hichannel->title() . "\n";

    /* 取得 HiNet hichannel 頻道 ID */
    echo "頻道 ID:" . $hichannel->id() . "\n";

    /* 取得 HiNet hichannel 頻道描述 */
    echo "頻道描述:" . $hichannel->desc() . "\n";

    /* 取得 HiNet hichannel 頻道區域 */
    echo "頻道區域:" . $hichannel->area() . "\n";

    /* 取得 HiNet hichannel 頻道類型 */
    echo "頻道類型:" . $hichannel->type() . "\n";

    /* 取得 HiNet hichannel 頻道圖片網址 */
    echo "頻道圖片網址:" . $hichannel->imageUrl() . "\n";

    /* 取得 HiNet hichannel 頻道目前節目名稱 */
    echo "頻道目前節目名稱:" . $hichannel->nowProgramName() . "\n";

    /* 取得 HiNet hichannel 頻道節目表 */
    echo "頻道節目表:\n";
    print_r($hichannel->programList());
} catch (Exception $e) {
    echo $e->getMessage();
}

网页播放电台示例

请查看 examples/webpage/play_radio.php

代理 (Proxy)

如果运行此程序的服务器不在台湾,请设置台湾的代理服务器,否则取得的串流网址会验证失败 (HTTP 403 Forbidden),但如果播放端 IP 和用来获取 m3u8 串流网址的服务器 IP 不同一样会被阻止就是了,可以尝试在服务器端处理好在串流给播放端,就二次串流。

use GoneTone\HiNetHichannel;
use GoneTone\Proxy;

require_once(dirname(__FILE__) . "/vendor/autoload.php");

/* 連線到 Proxy 伺服器 */
$proxy = new Proxy("主機名", 3128, "http");
//$proxy->login("帳號", "密碼"); //如果 Proxy 伺服器需要驗證,請調用這登入

$hichannel = new HiNetHichannel("電台名稱", $proxy);

补充

如果需要获取新数据,必须再次调用 $hichannel->loadApi() 才会获取最新数据。

try {
    /* 加載 HiNet hichannel API */
    $hichannel->loadApi();

    /* 取得最新 HiNet hichannel m3u8 串流網址 */
    echo "m3u8 串流網址:" . $hichannel->playUrl() . "\n";

    /* 取得最新 HiNet hichannel 頻道目前節目名稱 */
    echo "頻道目前節目名稱:" . $hichannel->nowProgramName() . "\n";
} catch (Exception $e) {
    echo $e->getMessage();
}

许可证

MIT