web-dev-qa-db-ja.com

YoutubeビデオソースをHTML5ビデオタグに表示しますか?

YouTubeビデオソースをHTML5 <video>タグに入れようとしていますが、うまくいかないようです。いくつかのグーグルの後、HTML5はソースとしてのYouTubeビデオURLをサポートしていないことがわかりました。

HTML5を使用してYouTubeビデオを埋め込むことはできますか?そうでない場合、回避策はありますか?

92
sri

ステップ1:&html5=Trueをお気に入りのYouTube URLに追加します

ステップ2:ソースで<video/>タグを見つける

ステップ3:ビデオタグにcontrols="controls"を追加:<video controls="controls"..../>

例:

<video controls="controls" 
       class="video-stream" 
       x-webkit-airplay="allow" 
       data-youtube-id="N9oxmRT2YWw" 
       src="http://v20.lscache8.c.youtube.com/videoplayback?sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Cratebypass%2Coc%3AU0hPRVRMVV9FSkNOOV9MRllD&amp;itag=43&amp;ipbits=0&amp;signature=D2BCBE2F115E68C5FF97673F1D797F3C3E3BFB99.59252109C7D2B995A8D51A461FF9A6264879948E&amp;sver=3&amp;ratebypass=yes&amp;expire=1300417200&amp;key=yt1&amp;ip=0.0.0.0&amp;id=37da319914f6616c"></video>

expireのようなものがあることに注意してください。 src文字列がどのくらいの期間機能するかわかりません。

まだ自分自身をテストしています。

編集(2011年7月28日)このビデオsrcはページソースの取得に使用するブラウザ。 YoutubeはこのHTMLを動的に(少なくとも現在)生成するので、Firefoxでコピーした場合のテストでは、これはChromeではなくFirefoxで動作します

14
Simon Flack

この答えはもう機能しませんが、解決策を探しています。

現在。 2015/02/24。website(youtubeinmp4) があり、.mp4 formatでyoutubeビデオをダウンロードできます。 )<video>タグでのYouTube動画の埋め込みを回避します。これが demo の動作中です。

長所

  • かなり実装が簡単
  • かなり高速サーバー応答実際(動画を取得するのにそれほど多くはかかりません)。
  • Abstraction(適切に動作したとしても、受け入れられるソリューションは、再生するビデオを事前に知っている場合にのみ適用されます。これは、ユーザーが入力したURLで機能します)。

短所

  • それは明らかにyoutubeinmp4.comサーバーとダウンロードリンクを提供する方法(<video>ソースとして渡すことができる)に依存するため、この回答は将来有効ではなくなる可能性があります。

  • ビデオ品質を選択することはできません。


JavaScript(loadの後)

videos = document.querySelectorAll("video");
for (var i = 0, l = videos.length; i < l; i++) {
    var video = videos[i];
    var src = video.src || (function () {
        var sources = video.querySelectorAll("source");
        for (var j = 0, sl = sources.length; j < sl; j++) {
            var source = sources[j];
            var type = source.type;
            var isMp4 = type.indexOf("mp4") != -1;
            if (isMp4) return source.src;
        }
        return null;
    })();
    if (src) {
        var isYoutube = src && src.match(/(?:youtu|youtube)(?:\.com|\.be)\/([\w\W]+)/i);
        if (isYoutube) {
            var id = isYoutube[1].match(/watch\?v=|[\w\W]+/gi);
            id = (id.length > 1) ? id.splice(1) : id;
            id = id.toString();
            var mp4url = "http://www.youtubeinmp4.com/redirect.php?video=";
            video.src = mp4url + id;
        }
    }
}

使用法(フル)

<video controls="true">
    <source src="www.youtube.com/watch?v=3bGNuRtlqAQ" type="video/mp4" />
</video>

Standartビデオ形式。

使い方(ミニ)

<video src="youtu.be/MLeIBFYY6UY" controls="true"></video>

少し一般的ではありませんが、かなり小さく、youtube.be短縮URLと<video>タグでsrc属性を直接使用します。

それが役に立てば幸い! :)

35
undefined

<video>タグは、サポートされている形式(ブラウザによって異なる場合があります)のビデオを読み込むためのものです。

YouTube埋め込みリンクは、単なるビデオではありません。通常、ユーザーがサポートするものと、YouTube5を再生する方法を検出するロジックを含むWebページです。これが、YouTubeビデオでビデオタグを使用するのが難しい理由です。

YouTubeは、YouTubeビデオをページに埋め込むための開発者APIを提供しています。

実例としてJSFiddleを作成しました: http://jsfiddle.net/zub16fgt/

YouTube APIの詳細については、こちらをご覧ください: https://developers.google.com/youtube/iframe_api_reference#Getting_Started

コードは以下にもあります

HTMLで:

<div id="player"></div>

Javascriptで:

var onPlayerReady = function(event) {
    event.target.playVideo();  
};

// The first argument of YT.Player is an HTML element ID. 
// YouTube API will replace my <div id="player"> tag 
// with an iframe containing the youtube video.

var player = new YT.Player('player', {
    height: 320,
    width: 400,
    videoId : '6Dc1C77nra4',
    events : {
        'onReady' : onPlayerReady
    }
});
16
Norman Breau