2012-03-28 17 views
1

私は、ユーザーがURLのみを提供して自分のサイトに動画を投稿できるようにしようとしています。今は、URLを解析してIDを取得し、そのIDを埋め込みコードに挿入して、そのIDをページに配置するだけで、YouTube動画を許可することができます。C#ビデオをURL(Facebookなど)で埋め込む方法は?

これは私をYouTubeのビデオだけに制限していますが、私がやっているのは、YouTubeの "共有" URLまたはページのURL、または他のビデオURLを直接入力することができるFacebookのようなものです。ビデオをプレーヤーに読み込みます。

どうやってこれを行うのですか?または単にURLに基​​づいてビデオを表示する他の同等の方法? YouTubeのビデオは(おそらく最も人気があると思われる)、ビデオURLを与えないが、YouTubeページのビデオへのURL(なぜなら、IDだけで埋め込みコードが必要な理由)を覚えておいてください。

うまくいけば、これは理にかなっていて、誰かが私にどこを見てもらうためのアドバイスを提供してくれることを願っています。

ありがとうございます。

答えて

3

OpenGraph attributesのサポートを追加することをお勧めします。これは、他のサイトがコンテンツを埋め込むことを可能にするコンテンツサービスに共通しています。ページの情報は、あなたがHtmlAgilityPackのようなものを経由してURLをロードしなければならないことを意味する、その<meta>タグに含まれます:

var doc = new HtmlDocument(); 
doc.Load(webClient.OpenRead(url)); // not exactly production quality 

var openGraph = new Dictionary<string, string>(); 
foreach (var meta in doc.DocumentNode.SelectNodes("//meta")) 
{ 
    var property = meta["property"]; 
    var content = meta["content"]; 
    if (property != null && property.Value.StartsWith("og:")) 
    { 
     openGraph[property.Value] 
      = content != null ? content.Value : String.Empty; 
    } 
} 

// Supported by: YouTube, Vimeo, CollegeHumor, etc 
if (openGraph.ContainsKey("og:video")) 
{ 
    // 1. Get the MIME Type 
    string mime; 
    if (!openGraph.TryGetValue("og:video:type", out mime)) 
    { 
     mime = "application/x-shockwave-flash"; // should error 
    } 

    // 2. Get width/height 
    string _w, _h; 
    if (!openGraph.TryGetValue("og:video:width", out _w) 
    || !openGraph.TryGetValue("og:video:height", out _h)) 
    { 
     _w = _h = "300"; // probably an error :) 
    } 

    int w = Int32.Parse(_w), h = Int32.Parse(_h); 

    Console.WriteLine(
     "<embed src=\"{0}\" type=\"{1}\" width=\"{2}\" height=\"{3}\" />", 
     openGraph["og:video"], 
     mime, 
     w, 
     h); 
} 
+0

これは素晴らしい助けで、そんなにありがとう! – Goose

+0

この質問に戻ってみると、誰かにとって助けになると、このようなソリューションを実装した直後にブログ記事を書くことになりました。 YouTube、Vimeoなどとは違った動作をするサイトにはいくつか追加しました。http://goosedotnet.wordpress.com/2012/06/27/embed-video-by-url-web-scraping-c/ – Goose

関連する問題