自分用に。シロウトのツギハギなのでよくないコードだと思いますが、動くので使っています。
var time = document.getElementsByClassName('NC-VideoLength'); var arr = []; var min = sec = 0; for (const elem of time) { arr.push(elem.innerHTML.split(':')); } min = arr.map(x => x[0]).map(str => parseInt(str, 10)).reduce((acc, value) => acc + value); sec = arr.map(x => x[1]).map(str => parseInt(str, 10)).reduce((acc, value) => acc + value); min = min + Math.floor(sec / 60); sec = sec % 60; alert('Total - ' + min + 'm ' + sec + 's');
使い方
- マイリストのページを開く。
- 上のコードをブラウザのコンソールで実行する。
- あるいは下の変換したコードをブックマークに登録して押す。こっちの方が便利。
javascript:var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}};$jscomp.arrayIterator=function(a){return{next:$jscomp.arrayIteratorImpl(a)}};$jscomp.makeIterator=function(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):$jscomp.arrayIterator(a)}; for(var time=document.getElementsByClassName("NC-VideoLength"),arr=[],min=sec=0,$jscomp$iter$0=$jscomp.makeIterator(time),$jscomp$key$elem=$jscomp$iter$0.next();!$jscomp$key$elem.done;$jscomp$key$elem=$jscomp$iter$0.next()){var elem=$jscomp$key$elem.value;arr.push(elem.innerHTML.split(":"))}min=arr.map(function(a){return a[0]}).map(function(a){return parseInt(a,10)}).reduce(function(a,b){return a+b}); sec=arr.map(function(a){return a[1]}).map(function(a){return parseInt(a,10)}).reduce(function(a,b){return a+b});min+=Math.floor(sec/60);sec%=60;alert("Total - "+min+"m "+sec+"s");
こうなっていたら成功。Vivaldi, Firefoxでは動きました。検証が甘いので目安程度に。そもそも使えなかったら教えて下さい。