web-dev-qa-db-ja.com

YouTubeは、直接URLの#t開始時間サポートを廃止し、動画を埋め込みますか?

最近では、#t=2m0sまたは#t=120直接リンクの開始時間を設定するには:

http://www.youtube.com/watch?v=Fk2bUvrv-Uc#t=2m30s

埋め込み動画の場合:

<iframe width="420" height="315" \
src="http://www.youtube.com/embed/Fk2bUvrv-Uc#t=2m30s" \
frameborder="0" allowfullscreen></iframe>

YouTubeは開始時間のサポートを開始しなかったようで、上記はもう機能しません。特定の開始時間の動画への参照を配置するにはどうすればよいですか?

36
ivanzolotov

動画を埋め込む

別のパラメーターが現在使用されているようです-start=<number of seconds>このブログ および ドキュメント を参照)。

例:

<iframe width="420" height="315" frameborder="0" allowfullscreen
        src="http://www.youtube.com/embed/Nc9xq-TVyHI?start=110&end=119"></iframe>

直接リンク

直接リンクの場合は、単に# ために &

http://www.youtube.com/watch?v=Fk2bUvrv-Uc&t=2m30s
58
ceasar

#t =の代わりに&t =を使用できます

14
Nick

YouTubeは、埋め込み動画の#t開始時間サポートを廃止しました。今度は、新しいAPIに従って_start=N&end=M_パラメータを数秒で直接使用するか、古い#t=(n)m(n)s表記を新しいAPI互換スタイルに変換する追加のコードを記述する必要があります。

3
ivanzolotov

開始と終了に基づいてビデオクリップを機能させることができましたが、正確なコードは次のようにする必要があります。

?start = x&end = y

ここで、xは秒単位の開始時間、yは秒単位の終了時間です

「?」存在しない、それは動作しません。また、コードはスペースなしでURLの直後に配置する必要があります。そうしないと機能しません。

3
dbldutch

このメソッドとJQueryプラグインを使用してチャプター化された多数のビデオがありました。 (n)m(n)s表記を引き続き使用できるように、プラグインを調整しました。これをかなり簡単に変更して、保存しているdata属性の代わりにURLから#t値を取得できます。

(function( $ ) {    
    $.fn.videoChapters = function(iframeID) {
        if(typeof window.orig_video === 'undefined') {
            window.orig_video = [];
        }
        window.orig_video[iframeID] = $('#'+iframeID).clone();

        var chapterContainer = this;
        $(this).find('a').on('click', function(e) {
                e.preventDefault();
                $('#'+iframeID).remove();
                $(chapterContainer).prevAll('.video-iframe').first().find('h3').after(window.orig_video[iframeID]);

                var video = $('#'+iframeID);
                if(typeof window.video_source === 'undefined') {
                    window.video_source = [];
                }

                if(typeof window.video_source[iframeID] === 'undefined') {
                    window.video_source[iframeID] = $(video).attr('src');
                }
                /*  to use it with a normal anchor change this to something like the below, of course it will vary for URL
                 *  so it'd be better to use a regex, but I'll let someone else worry about that.
                 *
                 *   var str = $(e.target).attr('href').split('#t')[1];
                 *   var nstr = $(str).split("s")[0];
                 *   var mstr = $(nstr).split("m");
                 *   var min = Number(mstr[0]);
                 *   var sec = Number(mstr[1]);
                 *   
                 * */

                var seconds = $(e.target).data('seconds');

                /* youtube dropped old min/secs format, now we convert what's there to pure seconds */
                var splsec = seconds.split('m');
                var min = Number(splsec[0]);
                var sec = Number(splsec[1].split('s')[0]);

                min = min * 60;

                var total = min + sec; 

                var newSource = window.video_source[iframeID] + "?start="+total+"&autoplay=1&rel=0";
                $(video).attr('src', newSource);
        });

    };  
})( jQuery );
1
sijpkes

Iframe埋め込みコードを使用した開始時間と終了時間は、私のテストでは機能しません。私のために働くのはこのコードです:

から:

http://www.youtube.com/embed/ [VIDEOID]

に:

http://www.youtube.com/v/ [VIDEOID]&start = [SECONDS]&end = [SECONDS]

<object width="640" height="385">
<param name="movie" value="http://www.youtube.com/v/[VIDEOID]&start=100&end=500" />
<param name="allowscriptaccess" value="always" />
<embed src="http://www.youtube.com/v/[VIDEOID]&start=100&end=500" type="application/x-shockwave-flash" allowscriptaccess="always" width="640" height="385" />
</object>
0
Leoj Etagram

少なくとも直接URLの場合、#t =で(再び?)動作するようです。指定されたURL: https://www.youtube.com/watch?v=Fk2bUvrv-Uc#t=2m30s は機能します。つまり、2分30秒にジャンプします。これをFF、Chrome、IE11でテストしました。ただし、おそらく&t =を使用する方がよいでしょう。&は、URL引数を連結する一般的な文字です。

0
Paul Gobée