38

最近では、#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 は #t 開始時間のサポートを終了したようで、上記は機能しなくなりました。特定の開始時間を持つビデオへの参照を配置するにはどうすればよいですか?

4

8 に答える 8

3

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

于 2013-12-20T09:21:32.583 に答える
1

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 );
于 2013-11-14T04:07:25.977 に答える
0

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

から:

http://www.youtube.com/embed/[動画 ID]

に:

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>
于 2014-05-07T10:46:55.563 に答える
0

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

于 2016-07-06T21:03:50.467 に答える