【问题标题】:How to catch YouTube embed code and turn into URL如何捕捉 YouTube 嵌入代码并转换为 URL
【发布时间】:2012-11-14 04:59:39
【问题描述】:

我只需要将 YouTube 嵌入代码剥离到其网址。

这与 StackOverflow 上的所有问题完全相反,但只有一个问题。大多数人都希望将 URL 转换为嵌入代码。这个问题解决了我想要的使用模式,但与特定的嵌入代码的正则表达式(Strip YouTube Embed Code Down to URL Only)相关联

我不熟悉 YouTube 多年来提供的嵌入内容 - 或者大小有何不同。根据他们当前的站点,有 2 种可能的嵌入模板和多种选项。如果是这样的话,我可以自己处理一个正则表达式——但我希望有人可以分享更多知识,这样我就可以编写一个合适的正则表达式模式来匹配它们,而不会遇到无穷无尽的边缘情况。

完整的用例场景:

  • 用户在基于 Web 的所见即所得编辑器中输入内容
  • 后端清除 youtube 和其他嵌入代码;将批准的嵌入重新格式化为内部格式,因为文本全部转换为降价。
  • 显示,为 youtube 或其他第 3 方网站生成适当的当前模板/代码显示

在之前的一家公司,我们的技术团队制定了一项计划,通过仅列出 URL 来嵌入 YouTube 视频。效果很好,但它是在每个人都接受培训的 CMS 中。我正在尝试创建一个类似的存储,但用于用户生成的内容。

【问题讨论】:

    标签: python regex youtube


    【解决方案1】:

    您可以考虑将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>

    【讨论】:

    • 谢谢。我已经构建了那种功能。我们也致力于 Markdown。我的问题是如果有人分享这样的内容而不是像您建议的那样使用速记代码,则捕获 YouTube 的所有对象/iframe 嵌入。虽然我可以锁定所有内容以不允许嵌入,但我发现启用锁定后新用户可能无法共享内容。因此,我不想只删除不应该存在的嵌入/iframe,而是想捕捉它们并将它们转换为速记。
    • 我知道不想锁定嵌入,但如果您允许它们,您是否要将它们限制为仅限 YouTube 网址?你可以让人们尝试嵌入各种视频。为他们提供与 URL 的 JavaScript prompt() 相关联的 YouTube 图标可能更容易、更安全。
    • 我将人们限制在少数经过批准的视频类型(基本上是嵌入的任何内容)。我们支持的所有其他提供商都有更可预测/统一的正则表达式,因为它们多年来没有发生太大变化。
    猜你喜欢
    • 2015-03-02
    • 2013-03-27
    • 2012-08-03
    • 2014-01-21
    • 2018-08-13
    • 2014-03-03
    • 2012-01-22
    • 2012-01-02
    • 1970-01-01
    相关资源
    最近更新 更多