2012-11-26 74 views
1

我需要將YouTube嵌入代碼僅刪除到其URL。如何捕捉YouTube嵌入代碼並將其轉換爲URL

這與StackOverflow中除了一個問題之外的所有問題完全相反。大多數人想把URL變成一個嵌入代碼。這個問題解決了我想要的patttern的用法,但是綁定了一個特定的嵌入代碼的正則表達式(Strip YouTube Embed Code Down to URL Only

我不熟悉YouTube多年來提供嵌入的方式 - 或者尺寸如何不同。根據他們當前的網站,有2種可能的嵌入模板和各種選項。如果是這樣,我可以自己處理一個正則表達式 - 但我希望有人可以分享更多的知識,所以我可以編寫適當的正則表達式來匹配它們,而不會遇到無窮的邊緣情況。

充分利用的情況下:

  • 用戶在基於web WYSIWIG編輯
  • 後端內容淘的YouTube &其他嵌入代碼;由於文本全部轉換爲降價,所以批准重新格式化爲內部格式。展出
  • ,生成用於YouTube或其他第三方網站相應的當前模板/代碼顯示

在以前的公司,我們的技術團隊設計,其中YouTube視頻中嵌入僅列出URL的計劃。這很有效,但它是在每個人都受過培訓的CMS中。我試圖創建一個類似的存儲,但是用戶生成的內容。

回答

0

您可能會考慮將BBCode用於用戶生成的內容(這裏是python module)。

vBulletin論壇軟件允許YouTube通過[youtube]標籤嵌入。您的用戶只需輸入視頻代碼而不是完整的URL,然後在服務器端創建嵌入代碼。

如果他們輸入視頻的完整URL,那麼您只需呈現鏈接即可。

From this example:

一些視頻在 http://youtube.com/watch?v={video_id}

發現在文本編輯器: [youtube]{video_id}[/youtube]

輸出此HTML: <object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/{video_id}"></param><embed src="http://www.youtube.com/v/{video_id}" type="application/x-shockwave-flash" width="425" height="350"></embed></object>

+0

感謝。我已經建立了這種功能。我們也致力於Markdown。我的問題是捕捉所有的YouTube對象/ iframe嵌入,如果有人分享這樣的,而不是像你所建議的簡寫代碼。 儘管我可以鎖定所有內容以禁止嵌入,但我發現新的用戶可以在啓用鎖定時關閉共享內容。因此,我不想僅僅刪除那些不應該存在的嵌入/內嵌框架,而是想抓住它們並將它們轉換爲速記。 –

+0

我的理解是不想鎖定嵌入,但是如果你允許他們,你是否會限制他們只有YouTube網址?你可能會讓人試圖嵌入各種視頻。爲他們提供一個與URL關聯的YouTube圖標prompt()可能更容易和更安全。 –

+0

我正在將人們限制在少數批准的視頻類型(基本上嵌入任何內容)。我們所支持的所有其他提供商的regexe更具可預測性/統一性,因爲這些年來它們的變化並沒有那麼大。 –