b站多p视频时长统计,倍速播放

视频总时长分集时长统计(多p),倍速播放

目前为 2021-07-31 提交的版本。查看 最新版本

// ==UserScript==
// @name         b站多p视频时长统计,倍速播放
// @namespace    http://tampermonkey.net/
// @version      0.5
// @description  视频总时长分集时长统计(多p),倍速播放
// @author       Jackpapapapa
// @match        *://www.bilibili.com/video/*
// @require      https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js
// @grant        none
// ==/UserScript==

(function() {
         'use strict';
    //总集数时间
     $('body').append('<div id="episode-index" style="width:17rem; font-size: 12px; padding: 6px; background-color: rgb(0, 161, 214); color: black; display: block; position: fixed; top:0; right: 0px; z-index: 2147483657;"><label for="start">开始集数:</label><input type="number" id="start" value="0"><br/><label for="end">结束集数:</label><input type="number" id="end" value="0"><div> <button>总时间</button><button id="confirm">确定</button></div><div id="time"></div></div>')
    $('#episode-index>div>button:nth-child(1)').click(function(){
       if($('#episode-index').children().is('#totaltime')===true) return
         let $duration = $('#multi_page > div.cur-list > ul > li> a > div').find('.duration')
     let len = $duration.length
     let tmin=0,thour=0,tsec=0
     for(let i=0;i<=len-1;i++){
          tmin+=parseInt($duration[i].innerText.split(':')[0])
          tsec+=parseInt($duration[i].innerText.split(':')[1])
          if($duration[i].innerText.split(':')[2]!==undefined)
              thour+=parseInt($duration[i].innerText.split(':')[2])
     }
    tmin+=parseInt(tsec/60)
    tsec=tsec%60
    thour+=parseInt(tmin/60)
    tmin=tmin%60
        let ttime = thour+':'+tmin+':'+tsec
        let ht='<div id="totaltime">剧集总时长为:'+ttime+'</div>'
    $('#episode-index').append(ht)
     })
    //所选集数时间
     function select(start,end){
      $('#episode-index>input#start').val(start)
      $('#episode-index>input#end').val(end)
        let hour=0,minute=0,second=0
      for(let pre = start-1;pre<=end-1;pre++){
          minute+=parseInt($('#multi_page > div.cur-list > ul > li> a > div').find('.duration')[pre].innerText.split(':')[0])
          second+=parseInt($('#multi_page > div.cur-list > ul > li> a > div').find('.duration')[pre].innerText.split(':')[1])
          if($('#multi_page > div.cur-list > ul > li> a > div').find('.duration')[pre].innerText.split(':')[2]!==undefined)
             hour+=parseInt($('#multi_page > div.cur-list > ul > li> a > div').find('.duration')[pre].innerText.split(':')[2])
      }
    minute+=parseInt(second/60)
    second=second%60
    hour+=parseInt(minute/60)
    minute=minute%60
    let time = hour+':'+minute+':'+second
    $('#episode-index>#time').text('选择时长:'+time)
    }

     $('#episode-index>div>button:nth-child(2)').on('click',function(){
         let start = parseInt($('#episode-index>input#start').val())<=0?1:parseInt($('#episode-index>input#start').val())
     let end = parseInt($('#episode-index>input#end').val())>$('#multi_page > div.cur-list > ul > li> a > div').find('.duration').length?$('#multi_page > div.cur-list > ul > li> a > div').find('.duration').length:parseInt($('#episode-index>input#end').val());
     end=end<0?1:end;
         select(start,end)
     }
        )
    $('#episode-index>input#end').keydown(function(e){
        if(e.keyCode===13){
            let start = parseInt($('#episode-index>input#start').val())<=0?1:parseInt($('#episode-index>input#start').val())
     let end = parseInt($('#episode-index>input#end').val())>$('#multi_page > div.cur-list > ul > li> a > div').find('.duration').length?$('#multi_page > div.cur-list > ul > li> a > div').find('.duration').length:parseInt($('#episode-index>input#end').val());
     end=end<0?1:end;
            select(start,end)
        }
    })


    //倍速播放
     function setrate(rate){
         $('video')[0].playbackRate=rate
    }
     $('#episode-index').append('<div id="playbackrate"><label for="rate">倍速<input type="number" id="rate"></label><button>确定</button></div>')
     $('#episode-index>#playbackrate button').on(
         'click',function(){let rate = parseInt($('#episode-index>#playbackrate #rate').val());setrate(rate);console.log('clikc')}
     )
    $('#episode-index>#playbackrate input').on('keydown',function(e){if(e.keyCode===13){let rate = parseInt($('#episode-index>#playbackrate #rate').val());setrate(rate)}})

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址