高清范

百度 论坛搜索
发表于 2011-7-6 20:46 | 显示全部楼层 |阅读模式
2015-0110 公告: ims-hdp.cloudfor.info 預計於一年後關閉 (預定為 2016-01-26)

2015-0218 更新: 1. 支援 YouTube Data API v3 (必須設定帳戶方可使用); 2. 增加數字按鍵之使用功能; 3. 提供多種播放模式; 4. 使用者自設輸入方式; 5. 減少 youtube.video.php 自遠端載入更新之次數
2014-1213 更新: 1. 以本機端 js (ossp-js package) 以解碼 YouTube 之 encrypted signature; 2. 顯示 YouTube video 無法使用之錯誤訊息
2014-1207 更新: 增加以本機端 curl/wget (須具 https 能力) 以解析 YouTube 之 video URL 之方式
2012-1014 更新: (皆與 IMS 功能無關) 1. 增加 host 重導功能; 2. 增加移除舊 DB 紀錄功能; 3. 增加記錄 request 功能; 4. 記錄訪問頁面
2012-1010 更新: 1. 新增使用者輸入觀賞 YouTube 頻道功能,可配合收藏功能使用;2. 新增 YouTube 傳回結果之排序常用選擇 (但目前 orderby 參數似乎尚待 Google 進行修復)
2012-1009 v2.0 -- 支援以 heroku 建置 IMS 網站
2012-1002 更新: 修正 youtube.video.php 的程式問題 (須至少將 v1.7 版刷入本機)
2012-0927 更新: 因應 YouTube 資訊格式改變,修正 youtube.video.php (須至少將 v1.7 版刷入本機)
2012-0926 更新: 1. 修正一堆無法使用的網站,其中包括蘋果動新聞和 TED.com 等; 2. 修正 youtube.video.php (須重新刷入本機)
2011-1209 更新: 1. 新增可直接觀賞 TED Talks on TED.com 並提供字幕顯示功能
2011-1201 更新: 1. 改進 youtube.video.php 字幕下載功能與顯示資訊; 2. 重整 YouTube 功能選單; 3. 修正一些小缺失 (例如: 新增楓林網格式、部分 YouTube 有年齡限制的影片可看等)
2011-1128 更新: 1. 新增 dereferenced git repository; 2. 修正 youtube.video.php 字幕行數算錯問題
2011-1125 更新: 修正 youtube.video.php 自動更新功能 (處理 Free Web Hosting 會外加 XML code 的問題)
2011-1124 更新: 1. 新增 YouTube 字幕顯示功能; 2. 支援 maplestage 新格式; 3. 重整選單; 4. 修正一些小缺失
2011-1012 更新: 1. 新增支援卡提諾影音 (video.ck101.com); 2. 移除動感小站; 3. 修正一些小缺失
2011-0822 更新: 1. 重整選單; 2. 支援 YouTube 搜索、頻道、播放清單 (含範例,如 1080p Trailers、動感小站... 等); 3. 增加使用播放機本身的內建輸入功能對 HAOIMS / HDPfans / YouTube 進行搜索; 4. youtube.video.php 增加自我由遠端下載以及使用者自己訂解析度喜好功能
2011-0803 更新: 1. 更換範例網站 (現在開始是使用完全免費的 web hosting); 2. 重整選單; 3. 加入 sugoideas; 4. 加入直接支援 youtube 公開播放清單的範例; 5. 修正先前 youtube 影片無法觀看的問題
2011-0706 更新: 結合 hdp_input 利用以注音輸入簡體字的功能,藉由 HDPfans 和 HAOIMS 的視訊搜索對土豆網、PPTV、優酷、奇藝、搜狐... 等等網站進行搜索

功能
        可用來自行建立 IMS 的 php 架構、亦可直接使用目前已實作的範例

取得
        1. 正常開發版本 (使用 symbolic links 來避免檔案內容重覆)
                由
                        https://github.com/ypchen/hdp_ims
                下載,或使用 git clone 取得
                        git clone git://github.com/ypchen/hdp_ims.git
        2. dereferenced 版本 (適合用於無法處理 symbolic links 之系統)
                由
                        https://github.com/ypchen/hdp_ims_dereferenced
                下載,或使用 git clone 取得
                        git clone git://github.com/ypchen/hdp_ims_dereferenced.git

注意
        1. 若欲將 IMS 裝設於本機,或者透過 IMS 網站欲觀賞 YouTube 內容
                (含以 YouTube 為 back-end 之影音網站),則本機必須具備運行中之
                web server 以及可執行 php 程式之能力。
        2. 若使用 FTP 來傳輸 IMS code,請一定要強制以二進位 (binary) 方式傳輸
                [感謝 zorron@HDPfans]

說明
        1. 有興趣的人可以使用這整套 php code 來建立自己 (或者公開給別人使用) 的 IMS
        2. 也可以直接使用我目前實作來當範例的幾個站台:
                A. 眾遙電視 (不卡點播、網星電視)
                B. 楓林網
                C. sugoideas
                D. 卡提諾影音 (ck101)
                E. TED Talks on TED / YouTube / podcast
                F. YouTube 帳戶功能 (YouTube Data API v3)
                        個人清單建立與播放、YouTube 搜索
                G. 台灣蘋果動新聞
                H. CNN 影音 podcast
                I. IMS 搜索: 以本機 hdp_input 或播放機機內建或線上 hdp_input 搭配 HDPfans/HAOIMS 進行搜索
        3. 兩種層級搭配 (01_base 和 02_query) 可做出數種不同觀看流程
                A. 眾遙電視 (不卡點播、網星電視)
                                01 -> 02 -> 02 -> 播放
                B. 楓林網
                        a. 每日熱門、最新節目
                                01 -> 02 -> 播放
                        b. 綜藝節目、偶像戲劇
                                01 -> 02 -> 02 -> 播放
                C. sugoideas
                                01 -> 02 -> 02 -> 播放
                D. 卡提諾影音 (ck101)
                                01 -> 02 -> 02 -> 播放
                E. TED Talks on TED / YouTube / podcast
                        a. TED Talks on TED / YouTube
                                01 -> 02 -> 播放
                        b. podcast
                                01 -> podcast
                F. YouTube 帳戶功能 (YouTube Data API v3)
                                複雜交互叫用流程
                G. 台灣蘋果動新聞
                                01 -> 01 -> 02 -> 02 -> 播放
                H. CNN 影音 podcast
                                01 -> podcast
                I. IMS 搜索
                                01 -> HDPfans/HAOIMS 搜索各大站台
        4. 可以播放 YouTube 的搜索結果、頻道、以及公開的播放清單 (YouTube Data API v2)
        5. 內建歷史自動記錄功能: 最近瀏覽、最近觀看、本地收藏
        6. 具有當網站錯誤發生時通知管理者進行處理的功能
        7. 具有使用 MySQL database 記錄使用者動作的功能
        8. IMS 線上搜索可讓使用者自訂由 hdp_input 模組所做成的線上輸入功能
        9. [v1.4] youtube.video.php 將會由 IMS 來源網站載入 scripts/youtube.video.php 來執行
        10. [v1.6] 可播放 YouTube 字幕 (請將至少 v1.6.2 版之 youtube.video.php 刷入本機)
        11. [v1.6.2] 提供存放於 github 之 dereferenced 版本,以利追蹤版本變更時檔案之異同
        12. [v1.6.4] 可直接觀賞 TED.com 上的 TED Talks,並支援字幕顯示
        13. [v1.7] 因應多個網站之變更,包括蘋果動新聞及 TED.com
                        * 敬請改用 v1.7 版之 youtube.video.php
                        * 不再支援 v1.7 版之前版本中自動由 IMS 來源網站載入功能
        14. [v2.0] 開始支援 heroku deployment
        15. [v2.3] 使用 ossp-js (of ipkg) 進行 YouTube signature 解碼
        16. [v2.4] 加入支援使用飛驢下載 (http://flv.cn or http://flvxz.com) 進行視訊解析
        17. [v3.0] 支援 YouTube Data API v3; 部分操作介面增加使用數字按鍵; 支援多種播放模式與切換; 設定輸入方式
                        * 支援 YouTube Data API v3
                                -- 必須設定 YouTube 帳戶方能使用,詳情請見: http://hdp-ims.neocities.org/
                                -- 可新建個人播放清單 (新建清單之隱私模式為「私人」)
                                -- 可管理個人播放清單內之項目 (加入視訊、設定順序、刪除視訊)
                                -- 可查詢個人頻道
                                -- 可使用不同搜索條件對視訊、清單、頻道進行搜索
                                -- 結合本版 (v3.0) 其他新功能,可實現以下使用情境:
                                        a. 新建個人播放清單,並指定之
                                        b. 透過 YouTube 搜索功能,將視訊加入指定之播放清單
                                        c. 若有必要可調整清單內之視訊順序或刪除
                                        d. 開始播放清單內之項目,預設為正序連續播放模式
                                        e. 在視訊播放中,可按 [重覆/6] 切換播放模式,例如:隨機播放
                                -- 破壞性高 (例如: 刪除清放清單)、操作複雜 (例如: 清單資訊變更) 之功能恕不支援
                        * 部分操作介面增加使用數字按鍵
                                -- 目前含此功能之模組為 02_query.php 與 03_play.php
                                -- 為因應各遙控器之按鍵設置不同而增加使用數字按鍵功能,安排原則如下:
                                         綠: 1                停止: 2                 黃: 3
                                        信息: 4                放大: 5                重覆: 6
                                         紅: 7                播放: 8                 藍: 9
                        * 支援多種播放模式與切換
                                -- 共六種播放模式
                                        個別視訊播放、正序連續播放、正序循環播放、隨機視訊播放、反序連續播放、反序循環播放
                                -- 可於 03_play.php 作用時,使用 [重覆/6] 切換播放模式
                                -- 連續、循環、隨機等播放模式之範圍限制於「同一頁」之中 (而非「整個播放清單內之項目」)
                        * 設定輸入方式
                                -- 可將本 IMS 中之輸入方式設定為播放機內建輸入法、hdp_input、或使用者自訂之輸入方式

使用
        1. 直接放在本機使用

                步驟一:
                將 common/ scripts/ video/ 這些目錄放在 /opt/share/www 下
                即可在 menu.rss 或其他適當的地方加入 (port 8081 是 iMax 韌體預設)
                        <item>
                                <title>IMS: video</title>
                                <link>http://localhost:8081/video/scripts/siteList.php</link>
                                <mediaDisplay />
                        </item>

                步驟二:
                common/settings.php 裡的 $imsUseCurl 要設定成 false,亦即
                        $imsUseCurl = false;

                如果本機有裝
                        https://github.com/ypchen/hdp_filemanager
                的話,最新版本的同名檔案都已經同步成一樣的了,所以不必擔心會有衝突

        2. 建立 IMS 網站

                如果是建立 IMS 網站的話,YouTube 上的影片仍然必由本機進行處理而得到 URL
                因此,scripts/ 這個目錄 (裡面只有一個 youtube.video.php 用來處理 back-end
                為 YouTube 的網站,如範例中的楓林網和 sugoideas) 還是必須放在本機

                --- v2.0 開始,支援以下兩種建置方式:

                A. 使用 heroku (建議使用此方式,以便於後續更新)
                        有關 heroku 與 git 的使用,請參考他們各自的文件及資料
                        利用 heroku 來建立 hdp_ims 只需要以下幾個步驟:

                                ### 用 git 把 hdp_ims 從 github.com 上抓下來
                                $ git clone git://github.com/ypchen/hdp_ims.git
                                ### 進入 hdp_ims 然後產生 heroku 專案
                                $ cd hdp_ims
                                $ heroku create
                                ### 用 git 上傳到 heroku 上
                                $ git push heroku master
                                ### 設定 heroku 環境變數
                                $ heroku config:add IMS_ON_HEROKU=true

                        完成後,畫面會顯示出此專案的 URL,例如:
                                http://sleepy-lake-1234.herokuapp.com
                        這樣一來,就可以使用
                                http://sleepy-lake-1234.herokuapp.com/video/scripts/siteList.php
                        進入 IMS 了

                        使用 heroku 建置 IMS 網站後,未來更新 IMS code 只要執行以下指令便能完成

                                ### 進入原先下載 hdp_ims 的目錄
                                $ cd hdp_ims
                                ### 更新本地版本
                                $ git pull
                                ### 再把新版本上傳至 heroku
                                $ git push heroku

                        所有的 settings.php 內的設定,都可以用 heroku config 來設定,
                        所以可以在不必編輯任何程式碼的情形下,完成 heroko 建置

                B. 自建 web server
                        將 common/ video/ 這些目錄放在適當的地方 (參考安裝在本機的做法)
                        然後使用正確的 URL 即可

        3. 範例網站

                *** 範例網站預計於 2016 年 1 月中關閉 (domain name 到期日為 2016-01-26) ***

                我直接把這組 code 建立成範例網站,有興趣的可以直接用用看,
                但原則上不提供任何技術支援

                楓林網、sugoideas、TED Talks 中文字幕版等 back-end 為 YouTube 則須參考下點說明

                <item>
                        <title>IMS: video</title>
                        <link>http://[HOSTNAME].[DOMAIN]/video/scripts/siteList.php</link>
                        <mediaDisplay />
                </item>
                目前的 [HOSTNAME] 為 ims-hdp 而 [DOMAIN] 為 cloudfor.info

        4. 有關 youtube.video.php

                目前程式假設 youtube.video.php 在本機上的 URL 是 (port 8081 是 iMax 韌體預設)
                        http://localhost:8081/scripts/youtube.video.php
                如果有人要建立 IMS 網站,但是想使用該 IMS 網站的使用者們的本機上
                的 youtube.video.php 有可能在不同位置,在這種情形下,使用者可以藉由提供
                        youtube_video
                這個變數讓 IMS 網站知道自己的 youtube.video.php 放置的 URL,例如
                        http://ims.your.site/video/scrip ... 2Fyoutube.video.php
                就是放在 utils 下,而 lighttpd 使用的 port 為 2345

                --- v3.0 支援 YouTube Data API v3

                A. 必須設定 YouTube 帳戶方能使用,詳情請見: http://hdp-ims.neocities.org/

                B. 新增使用 temporary local copy,在一回開機使用過程中只會向 remote source 進行一次更新

                --- v2.4 加入支援使用飛驢下載 (http://flv.cn or http://flvxz.com) 進行視訊解析

                A. 必須於 /usr/local/etc/dvdplayer/ims_flv_token.dat 存入自行向 flvxz.com 申請之 token 資料

                B. /usr/local/etc/dvdplayer/ims_flv_token.dat 的內容格式為 (請勿使用下面做為範例而亂寫的字串)
                        token/1234567890abcedfghijklmnopqrstuv

                C. 目前先用於楓林網中用到 Tudou2 及 Tv56 做為後端的部分 (BiliBili 似乎不易成功)

                --- v2.3 改用 ossp-js (of ipkg) 進行 YouTube signature 解碼以及提供影片無法觀看之訊息

                A. 在此版中,增加使用本機 ossp-js (ipkg 之 package) 之方式,來解析 YouTube 之加密 signature

                B. 使用方式為於 /usr/local/etc/dvdplayer/ims_yv_sig_redir.dat 中指定存取本機 js 之 URL
                        例如:http://localhost/cgi-bin/js_youtube

                C. js_youtube (參考實作提供於 scripts/js_youtube)
                        為一個參考實作,需依使用者之本機狀況更改其內容,以及調整其存放位置
                        使用者亦可依本身喜好或所需,自行製作具相同功能之 script 程式

                D. 在設定 ims_yv_js_redir.dat 後並安裝完成 js_youtube 的情形下,解碼 YouTube 之 signature 過程為
                        (1) youtube.video.php 讀取 YouTube 正常網頁 (https://www.youtube.com/watch?v=<<ID>>)
                        (2) 由網頁中取出 video URL,若含有 "s=<<加密之 signature>>",則將進行以下步驟
                        (3) 取得 YouTube 提供之 JS 檔案
                        (4) 將相關資料存入 /usr/local/etc/dvdplayer/ims_yv_sig_data.dat
                        (5) 叫用 ims_yv_sig_redir.dat 中所設定之 URL 來使用本機上之 js (ossp-js) 進行解碼
                        (6) 若發現有 undefined reference,則重覆上二步驟再次嘗試

                --- v2.2.3.26 YouTube 錯誤修復
                        *不確定是不是因為 YouTube 在 302 重導時給了太長的 URL 而導致無法觀看

                A. 在此版中,增加使用本機 curl (或具 https 能力之 wget) 之方式,來解析 YouTube 之 URL

                B. 使用方式為於 /usr/local/etc/dvdplayer/ims_yv_url_redir.dat 中指定存取本機 curl/wget 之 URL
                        例如:http://localhost/cgi-bin/curl_youtube

                C. curl_youtube (參考實作提供於 scripts/curl_youtube)
                        為一個參考實作,需依使用者之本機狀況更改其內容,以及調整其存放位置
                        使用者亦可依本身喜好或所需,自行製作具相同功能之 script 程式

                D. 在設定 ims_yv_url_redir.dat 後並安裝完成 curl_youtube 的情形下,解析 YouTube 之 URL 過程為
                        (1) youtube.video.php 讀取 YouTube 正常網頁 (https://www.youtube.com/watch?v=<<ID>>)
                        (2) 由網頁中取出 video URL
                        (3) 將 URL 存入 /usr/local/etc/dvdplayer/ims_yv_url_data.dat
                        (4) 叫用 ims_yv_url_redir.dat 中所設定之 URL 來使用本機上之 curl/wget 進行解析
                        (5) [若使用 curl_youtube] curl_youtube 將處理可能之 302 重導,並向 YouTube 取得資料轉送

                --- v1.7 更動部分程式碼,以期未來能支援更多影音網站
                        * 敬請改用 v1.7 版之 youtube.video.php
                        * 不再支援 v1.7 版之前版本中自動由 IMS 來源網站載入功能

                A. 請將 v1.7 版之 youtube.video.php 刷入本機

                --- v1.6 增加了 youtube 影片的字幕功能: 設定載入喜好後即可顯示有提供 CC 的 youtube 影片

                A. 請將至少 v1.6.2 版之 youtube.video.php 刷入本機
                        希望將來真的不必再更新本機內的這個檔案

                B. 影片開始會比平常慢一些,因為要先下載字幕

                C. 因為播放機的時間解析度只能到約 0.1 秒,所以字幕的出現和消失可能會有點不順
                        在影片一開始的兩、三分鐘內,因為 onRefresh 被叫用的間隔並不穩定,
                        所以可能會不太順有些播放機可能無法順利顯示字幕
                        (我自己好幾部 HD300B plus 就有不行的)

                D. 按 [藍] 可切換字幕的顯示; 按 [信息] 則有影片相關資訊:
                        (1) 34/640x360/9/0/115 為 youtube 解析度資訊
                        (2) 字幕相關資訊
                                [-] 表示使用者設定為不自動載入字幕
                                {-} 表示此影片不提供字幕
                                [#] 表示此影片提供的字幕中,並無使用者接受的
                                [X] 表示字幕下載失敗
                                [zh-Hant]{zh-Hant,en} 表示正在使用正體中文(zh-Hant)字幕
                                                而此影片提供正體中文與英文字幕

                E. v1.6.4 可直接觀賞 TED.com 上的 TED Talks,並支援字幕顯示
                        部分 TED.com 上的影片實際存放於 YouTube 且不一定有字幕

                --- v1.4 增加了 youtube.video.php 兩個重要的新功能:
                        * 敬請改用 v1.7 版之 youtube.video.php
                        * 不再支援 v1.7 版之前版本中自動由 IMS 來源網站載入功能

                A. 由 IMS 來源網站載入 scripts/youtube.video.php 來執行
                        如此一來,只要將 v1.4 這份 youtube.video.php 刷入機中,以後應該就不必再更新這個檔案

                        這個功能是由 IMS 來源網站透過 yv_rmt_src 這個 URL 變數來告知 youtube.video.php
                        下載位置,如果有需要的話,可以手動設定或取消此功能

                        如果整個 IMS code 是放在本機執行的話,自然就沒有這個功能了 (因為 IMS 來源是本機)

                B. 可以用 fmt_prefs 來指定 YouTube 的解析度喜好,預設為 22,35,34,18,5
                        請參考 http://en.wikipedia.org/wiki/YouTube

                        也可以把喜好放在本機檔案 /usr/local/etc/dvdplayer/ims_fmt_prefs.dat
                        放在這個本機檔案的優先次序高於使用 fmt_prefs 來進行的設定

                        在 IMS code 中,有提供了幾個讓使用者可以簡單在本機上設定的功能:
                                最高 1920x1080、最高 1280x720、最高 854x480、以及取消本機解析度設定

                        觀賞 1080p Trailers 和動感小站等頻道,應該可以看出差別
                        此外,可以使用遙控器上的 [信息] 鍵顯示目前播放的 YouTube video clip 的解析度資訊

備註
        1. 奠基於 iMax.Live 韌體 20110401
                這個 php IMS 架構發展之初,參考了 iMax 韌體中的許多部分,
                非常感謝 maxjojo@HDPfans!
        2. 因為我使用的 image 都是去抓那些網站的 logo 還有用 images.google.com
                從網上抓下來的,所以無法一併 release 在 code 中,請見諒。

本帖评分记录RP值 金钱 收起 理由
abcd69675 + 5
jzmno1 + 10 很给力!
crm_007 + 5 超讚的啦!! 大力的推~~
akira + 1 + 10 又有更新啦! 棒
absentfriend + 10 神马都是浮云
总评分: RP值 + 12  金钱 + 107 
发表于 2011-7-6 21:02 | 显示全部楼层
估计枫林网等这边无法看吧。
回复 支持 1 反对 0

使用道具 举报

发表于 2011-7-6 21:02 | 显示全部楼层
本帖最后由 zhw3038 于 2011-7-6 21:04 编辑

发重了。。
 楼主| 发表于 2011-7-6 21:05 | 显示全部楼层
zhw3038 发表于 2011-7-6 21:02
估计枫林网等这边无法看吧。

不能嗎?因為它的影片其實都是放在 youtube 上的... (如果 youtube 不能看的話,可能真的就沒辦法了)
本帖评分记录RP值 金钱 收起 理由
maxjojo + 2 + 10
总评分: RP值 + 2  金钱 + 10 
发表于 2011-7-6 22:00 | 显示全部楼层
感谢分享,枫林是看不了,有空学着做个国内能看的,呵呵
发表于 2011-7-6 22:41 | 显示全部楼层
學到了.....
发表于 2011-7-6 23:18 | 显示全部楼层
學到了.....
发表于 2011-7-8 01:08 | 显示全部楼层
本帖最后由 jhzhem 于 2011-7-8 01:09 编辑

我用方法1:將 adult/ common/ scripts/ video/ 這四個目錄放在 /opt/share/www 下
在 menu.rss 或其他適當的地方加入
<item>
<title>IMS: video</title>                              <link>http://localhost/video/scripts/siteList.php</link>
<mediaDisplay />
</item>
或 <item>
<title>IMS: adult</title>                               <link>http://localhost/adult/scripts/siteList.php</link> <mediaDisplay />
</item>
localhost我替换成127.0.0.1:8081,对吗?
这么做了,但无法执行。我的机器是R5,原来装有IMAX。请解答。
发表于 2011-7-8 10:01 | 显示全部楼层
本帖最后由 jhzhem 于 2011-7-8 10:03 编辑

回复 jhzhem 的帖子

我是这么替换的,但打不开。楼主的範例網站可以打开,其中的CNN能看,但本地的不行。
 楼主| 发表于 2011-7-8 10:34 | 显示全部楼层
本帖最后由 ypchen 于 2011-7-11 09:40 编辑
jhzhem 发表于 2011-7-8 10:01
回复 jhzhem 的帖子

我是这么替换的,但打不开。楼主的範例網站可以打开,其中的CNN能看,但本地的不行。 ...


本地的部分不行我也沒有辦法囉
本帖评分记录RP值 金钱 收起 理由
maxjojo + 2 + 2
总评分: RP值 + 2  金钱 + 2 

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表