2012-09-09 58 views
0

在我的項目中,用戶將通過粘貼來自其他站點的URL來上傳視頻。我試圖嵌入,但不能正常工作,因爲它爲特定網站,YouTube等提供了嵌入代碼。我想完全像這個網站http://www.myvidster.com/。我試着用cURL代碼如下: -未獲得視頻的嵌入代碼

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $video_url); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_VERBOSE, true); // Display communication with server 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$json_reply = curl_exec($ch); 
curl_close($ch); 

和代碼file_get_contents是:

$video_url = $_POST['video_url']; 
$html = file_get_contents($video_url,true); 

但使用curl也我只是一些網站的HTML部分。我正在嘗試1周,但仍然沒有結果。是否有可能從每個站點獲取視頻的嵌入代碼?或者我做錯了什麼?

+0

簡答:「從每個網站」 - 號「從一堆最受歡迎的網站」 - 是的,但爲每個網站單獨工作。 – Stobor

回答

4

你應該尋找到oembed standard

該協議允許您從支持它,在一個標準的統一多個視頻網站收到的嵌入代碼。 點擊鏈接查看實現透過oEmbed

http://oembed.com/#section7

對於不支持該標準,你通常可以獲取通過開放圖形協議嵌入代碼中的其他網站(網站的列表元OG:。 ..)或寫HTML解析規則,每個站點提取嵌入

0

您需要重新編碼視頻以確保它們將在瀏覽器中查看。一個偉大的命令行軟件是FFmpeg。最好的是,它是免費的!

+0

有效,但不在此問題的上下文中。 –

11

對於所有視頻流媒體網站來說,沒有一種通用的方法可以做到這一點 - 每個網站都有點不同,並不是所有的網站都支持嵌入式視圖。

+0

感謝您的回覆,但如果您看到此網站http://www.myvidster.com/,他們會顯示來自其他網站的視頻。我想說的是他們從所有站點獲取嵌入代碼。我想要完全這樣做。 –

+0

你在這裏做了一個很大的假設。他們更有可能通過編寫代碼來根據用戶的輸入找出嵌入代碼。 – bradym

+0

是的 - 我最好的猜測是他們已經完成了一系列的工作來弄清楚如何從所有常見的視頻共享網站中嵌入視頻。這裏沒有簡單的答案。只是很多工作。 – duskwuff

0

我有一個類似的事情來處理我的網站www.youtubetutsite.com。雖然我只使用YouTube。

從看myvidster.com,他們不播放所有視頻。一個人不能玩,他們有一個截圖,作爲專有網站的播放頁面的鏈接。

我的方法是有一個嵌入式播放器代碼,但動態插入選擇的唯一視頻ID。這就是我爲我的網站所做的。

什麼,你需要做的是與字段的數據庫(僅作爲例子)VIDEO_IDVIDEO_LINKPLAYER_TO_USEOPTIONAL_URL等根據您的需要。視您的視頻而定,某些選項可能是空白的,因爲沒有用於每個視頻。

困難的部分將只抓取您正在處理的網站的唯一視頻ID(您可以讓用戶選擇他們上傳的網站以定位您的代碼)。 與YouTube相比,它是相當簡單的(即http://www.youtube.com/watch?v=HtPpaR3H8d8 &功能= g-user-lss),但我沒有看過所有其他網站看到他們如何索引。

從那裏你可以加載相應的玩家與選定的視頻ID。 不知道這是否對你有所幫助,但我希望它可以。

1

你可以試着檢索og:video meta標籤,確保og:video:type meta標籤是application/x-shockwave-flash

然後你就可以輕鬆地將它。儘管沒有完全自動的方法,但有時您需要爲特定網站實施特定的方式,因爲並非所有視頻網站都共享相同的「標準」。

相關問題