2016年6月15日 星期三

1073/1283 媒體播放機收看大愛電視

.

相關前文
http://electronmania.blogspot.tw/2016/06/10731283-php.html




大愛電視網站上有個 RSS 連結:

http://www.daai.tv/daai-web/aboutdaai/rss.php

我們可以先用電腦的瀏覽器看看它的版面排列與內容,再看看它的原始碼。

它的原始碼與 podcast 格式並不相同,所以無法直接用1073/1283 媒體播放機收看。


podcast 格式

podcast 格式主要包含三個項目

<title></title>
<description></description>
<enclosure />


例如:

<title>法國足球暴動</title>
<description>英法足球迷場外衝突一波波</description>
<enclosure url="http://aaa.bbc.net/1240.mp4"/>


<title></title> 就是標題
<description></description> 是影片說明
<enclosure />指向實際的影片檔案

美國之音、CNN student news、NASA...等等都是同樣的架構。


點子

把大愛電視的 RSS 改成 podcast 格式是不是就可以了?

是的,沒錯。

但是我們沒辦法要求大愛改變 RSS 格式。



那就在 1073/1283 媒體播放機這一端改

也就是把
http://www.daai.tv/daai-web/aboutdaai/rss.php
的原始碼讀進來,然後在 1073/1283 媒體播放機這一端將它改成 podcast 格式,再執行它,
就可以了。

而讀原始碼、轉換格式,都可以用底下這段 PHP 程式來完成。


daai_tv.php

(剪貼存成 UTF-8 格式)

<?php

$link = "http://www.daai.tv/daai-web/aboutdaai/rss.php";

gettitle($link);


function gettitle($link)
{
$text = file_get_contents($link);

preg_match_all('/<item><title>.*?<\/title>/is', $text, $matches);
preg_match_all('/&lt;a href=.*?&lt;\/a&gt;/is', $text, $matches2);
$text = str_replace("<description>大愛網站</description>","",$text);
preg_match_all('/<description>.*?&lt;img/is', $text, $matches1);

$p_string = '<rss><channel>';

for ($index=0;$index < count($matches[0]); $index++){
$p_string .= '<item><title>';
$m = strip_tags($matches[0][$index]);
$p_string .= $m;
$p_string .= '</title><description>';
$m1 = strip_tags($matches1[0][$index]);
$m1 = str_replace("&lt;img","",$m1);
$m1 .= '</description>';
$p_string .= $m1;
$m2 = strip_tags($matches2[0][$index]);
$m2 = str_replace("&lt;a&gt;"," ",$m2);
$m2 = str_replace("&lt;a href=","<enclosure url=",$m2);
$m2 = str_replace("&lt;/a&gt;","",$m2);
$m2 = str_replace("影片觀賞","",$m2);
$m2 = str_replace("&gt;",">",$m2);
$m2 = str_replace("&lt;","<",$m2);
$m2 = str_replace("target='_blank'>","target='_blank' />",$m2);
$m2 = str_replace("'","\"",$m2);
$p_string .= $m2;
$p_string .= '</item>';
}

$p_string .= '</channel></rss>';
echo $p_string;

}
?>


實作

1.
1073/1283 媒體播放機安裝 MoServices 模組,已能收看 YouTube。

2.
把 daai_tv.php 拷貝到 /tmp/www。

3.

「Add URL-自行增加 IMS 項目」
中輸入
http://localhost/daai_tv.php
然後執行它就可以了。


















問題提醒

放在 /tmp/www/ 的 daai_tv.php ,在經過一段時間或斷電後,就會被清除。

如果想要一直都能看,就要視自己的需求,再參考先前的相關貼文找出最適合的解決方法。





如果只想看國際新聞

大愛電視的新聞有多種分類,如果只想看「國際新聞」,只要加
if (strpos($m, '國際新聞') !== false) {
}
把它分離出來就可以了:























<?php

$link = "http://www.daai.tv/daai-web/aboutdaai/rss.php";

gettitle($link);


function gettitle($link)
{
$text = file_get_contents($link);

preg_match_all('/<item><title>.*?<\/title>/is', $text, $matches);
preg_match_all('/&lt;a href=.*?&lt;\/a&gt;/is', $text, $matches2);
$text = str_replace("<description>大愛網站</description>","",$text);
preg_match_all('/<description>.*?&lt;img/is', $text, $matches1);

$p_string = '<rss><channel>';

for ($index=0;$index < count($matches[0]); $index++){

$m = strip_tags($matches[0][$index]);
if (strpos($m, '國際新聞') !== false) {
    $p_string .= '<item><title>';
$p_string .= $m;
$p_string .= '</title><description>';
$m1 = strip_tags($matches1[0][$index]);
$m1 = str_replace("&lt;img","",$m1);
$m1 .= '</description>';
$p_string .= $m1;
$m2 = strip_tags($matches2[0][$index]);
$m2 = str_replace("&lt;a&gt;"," ",$m2);
$m2 = str_replace("&lt;a href=","<enclosure url=",$m2);
$m2 = str_replace("&lt;/a&gt;","",$m2);
$m2 = str_replace("影片觀賞","",$m2);
$m2 = str_replace("&gt;",">",$m2);
$m2 = str_replace("&lt;","<",$m2);
$m2 = str_replace("target='_blank'>","target='_blank' />",$m2);
$m2 = str_replace("'","\"",$m2);
$p_string .= $m2;
$p_string .= '</item>';
}
}

$p_string .= '</channel></rss>';
echo $p_string;

}
?>






.

沒有留言: