YouTubeチャンネルの動画一覧内から指定のワードがタイトルに含まれる動画の合計時間を出すブックマークレット
これはなに?
YouTubeチャンネルの動画一覧から、指定のワードがタイトルに含まれる動画の合計時間を出すブックマークレットです。
チャンネルの動画一覧ページ(channel/***/videos)を開いて下記ブックマークレットを実行し検索したいワードを入力すると、アラートで合計時間が出ます。
code:javascript
var h=3600,m=60,w=prompt("合計時間を検索するワード"),d=document,x=_=>{var r=[],e=d.evaluate('//*@id="video-title"contains(text(),"'+w+'")/ancestor::node()@id="dismissible"//*contains(@class,"ytd-thumbnail-overlay-time-status-renderer")/text()',d,null,XPathResult.ANY_TYPE,null),n=e.iterateNext();while(n){r.push(n);n=e.iterateNext()}return r},a=x(),t=a.reduce((acc,n)=>{var hms=n.textContent.trim().split(':').map(s=>parseInt(s));if(hms.length<3)hms.unshift(0);return hms.length==3?acc+hms0*h+hms1*m+hms2:0},0),f=Math.floor;alert("「"+w+"」をタイトルに含む"+a.length+"件の動画の合計時間: "+f(t/h)+":"+f((t%h)/m)+":"+(t%h)%m) 更新履歴
2021/06/27
要素 IDの誤り修正(dismissable -> dismissible)
2021/01/31
f=Math.floorが抜けてたので動かない不具合修正
アラートの脱字修正
アラートに対象動画の件数追加
ライブ中の動画がリストにあると合計時間が出ない不具合修正