.
(1073刷r12韌體適用)
雖然電腦、平板、chromecast...都能收看 TED。
但總覺得還是以坐在客廳拿著遙控器控制媒體播放機來收看最方便。
只是已經很久不能用媒體播放機收看TED節目了。
由於 PC/NB 都還可以看,所以PHP程式應該可以讓1073/1283 媒體播放機也能收看。
所以就嘗試看看了。
嘗試的步驟
1.
PC/NB 可以看
http://www.ted.com/talks?sort=newest&language=zh-tw
的TED繁體字幕節目。
2.
從
http://www.ted.com/talks?sort=newest&language=zh-tw
的網頁原始碼,可以找到每個節目的標題(title),
以及每個標題所對應的一個連結。
而真正需要的mp4檔案網址則放在該連結的網頁中。
3.
所以,整個運作機制是這樣的:
PHP程式到
http://www.ted.com/talks?sort=newest&language=zh-tw
抓取
十個標題
及
十個連結。
各連結各開啟一個網頁,再從裡面抓取真正的mp4網址。
最後將十個標題及十個mp4網址合併成 podcast格式。
為了建立十個標題供選擇,它總共會開啟1+10個網頁來解析,所以會讓1073/1283產生
十幾秒的delay。之後的選取---收看就沒有這樣的delay。
4.
TED 應該已改用 https 格式,所以在1283/vod/pvr/101t上都無法播放。
刷了r12韌體的HD-A5則可以順利播放。
5.
PHP 程式如下:
(逢山挖洞,遇河搭橋。先求能用,沒管能不能最佳化)
<?php
$link = "http://www.ted.com/talks?sort=newest&language=zh-tw";
podcasting($link);
#從 link 抓 480p-zh-tw.mp4 的 function
function get003($url2){
$url2='http://www.ted.com'.$url2;
$text = file_get_contents($url2);
preg_match('/zh-tw.mp4","high":"(.*)480p-zh-tw.mp4/', $text, $u001);
$mp4url = $u001[0];
$mp4url = str_replace("zh-tw.mp4\",\"high\":\"https","https",$mp4url);
return $mp4url;
}
function podcasting($s2){
$text = file_get_contents($s2);
$p_string = '<rss><channel>';
#抓title, 抓 link, 從link抓mp4, 合成 podcast
preg_match_all('/lang=\'zh\-tw\'>\n(.*?)\n<\/a>/im', $text, $t001,PREG_PATTERN_ORDER);
preg_match_all('/href=\'(.*)\' language=\'zh-tw\'>/', $text, $m001,PREG_PATTERN_ORDER);
for ($index=0;$index < 5; $index++){
$p_string .= '<item><title>';
$p_string .= $t001[1][$index];
$p_string .= '</title><description></description>';
$mlink = get003($m001[1][$index]);
$p_string .= '<enclosure'."\n".'url="'.$mlink.'"/>';
$p_string .= '</item>';
}
$p_string .= '</channel></rss>';
echo $p_string;
}
?>
2017年1月24日 星期二
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言