如何像在Facebook中一样实现后期视频功能

How to implement post video functionality like in Facebook

本文关键字:实现 一样 功能 视频 何像 Facebook      更新时间:2023-09-26

我想实现类似的功能,比如在facebook上发布视频。所以当你复制链接时,脸书会创建一些快照,然后你发布它。我正在谷歌上搜索如何做到这一点,但不幸的是,没有发现任何有用的东西。

我想知道是否有什么已经实现的插件或教程来执行这样的操作。

我发现的唯一一个例子是如下所示的标记jQuery库。除了这个,还有什么更优雅的吗。

marked.setOptions({
    gfm: true,
    pedantic: false,
    sanitize: true,
    highlight: null,
    urls: {
        youtube : function(text, url) {
            var cap;
            if((cap = /(youtu'.be'/|youtube'.com'/(watch'?(.*&)?v=|(embed|v)'/))([^'?&"'>]+)/.exec(url))) {
                return '<iframe width="420" height="315" src="https://www.youtube.com/embed/' + cap[5] + '" frameborder="0" allowfullscreen</iframe>';
            }
        },
        vimeo : function(text, url) {
            var cap;
            if((cap = /^.*(vimeo'.com'/)((channels'/[A-z]+'/)|(groups'/[A-z]+'/videos'/))?([0-9]+)/.exec(url))) {
                return '<iframe src="https://player.vimeo.com/video/' + cap[5] +'" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';
            }
        },
        dailymotion : function(text, url) {
            var cap;
            if((cap = /^.+dailymotion.com'/(video|hub)'/([^_]+)[^#]*(#video=([^_&]+))?/.exec(url))) {
                return '<iframe frameborder="0" width="480" height="271" src="https://www.dailymotion.com/embed/video/' + cap[2] +'"></iframe>';
            }
        }
});

您应该解析页面的元标记。例如,如果你查看youtube页面的源代码,你会发现这样的标签,它们是定义的标准。

<meta property="og:site_name" content="YouTube">
  <meta property="og:url" content="http://www.youtube.com/watch?v=lB6a-iD6ZOY">
<meta property="og:title" content="Sting - Fragile">
<meta property="og:image" content="http://i.ytimg.com/vi/lB6a-iD6ZOY/maxresdefault.jpg">
  <meta property="og:description" content="Music video by Sting performing Fragile. YouTube view counts pre-VEVO: 1,794,143. (C) 1991 A&amp;M Records">
<meta property="al:ios:app_store_id" content="544007664">
<meta property="al:ios:app_name" content="YouTube">
  <meta property="al:ios:url" content="vnd.youtube://www.youtube.com/watch?v=lB6a-iD6ZOY&amp;feature=applinks">
<meta property="al:android:url" content="http://www.youtube.com/watch?v=lB6a-iD6ZOY&amp;feature=applinks">
<meta property="al:android:app_name" content="YouTube">
<meta property="al:android:package" content="com.google.android.youtube">
<meta property="al:web:url" content="http://www.youtube.com/watch?v=lB6a-iD6ZOY&amp;feature=applinks">
<meta property="og:type" content="video">
    <meta property="og:video" content="http://www.youtube.com/v/lB6a-iD6ZOY?autohide=1&amp;version=3">
    <meta property="og:video:secure_url" content="https://www.youtube.com/v/lB6a-iD6ZOY?autohide=1&amp;version=3">
  <meta property="og:video:type" content="application/x-shockwave-flash">
  <meta property="og:video:width" content="853">
  <meta property="og:video:height" content="480">
    <meta property="og:video:tag" content="Sting">
    <meta property="og:video:tag" content="A&amp;M">
    <meta property="og:video:tag" content="Rock">

您可以看到例如"og:image"元标签,它基本上指向视频的快照。这样你就可以获得所有需要的信息。这几乎就是实现该功能所需要知道的全部内容。

我发现了这个。。。http://embedly.github.io/jquery-preview/demo/

看起来非常优雅的解决方案