デスクトップ版 YouTube(ブラウザで見る YouTube)の再生リストの合計時間を調べる方法としてまず第一弾では「拡張機能編」、そして第二弾では「外部サイト編」をご紹介しましたが、拡張機能はできればブラウザに入れたくないし調べる度に外部サイトを開くのは面倒という方も中にはいらっしゃるかもしれません、という事で今回ご紹介する第三弾は「ブックマークレット編」です、再生リストのページを開いたらブックマークバーから作成したブックマークをワンクリックするだけ、これで再生リストの合計再生時間を調べられたら便利ですよね、という訳で試しにブックマークレットを作成してみたのですが今のところ気になる点もありますが動いています、ちなみに気になる点とは再生リストの動画の本数が少しズレる事があって、例えばとある再生リストで試してみたところ112本の動画が登録されているはずなのに110本分の再生時間になっていましまた、これは恐らく既に公開されていない動画が再生リストの中に2本混じってたんだと思うんですよね、もう一つが再生リストの一番下にオススメ動画などがちょろっと表示されているパターンです、その再生リストには128本の動画を登録してあるのですが結果には132本の動画と表示されていたので、恐らく再生リストの最後に表示されてしまっているオススメ動画が4本結果に含まれたのではないかと想像しているのですが、ちょっと試してみましたがこの問題は修正する事ができませんでした、ただ結果が大幅にズレる訳ではないので大体の総再生時間を調べることはできると思います。

ではブックマークレットを作成してみましょう、ちなみにブラウザの Chrome を例にご紹介していますが要は新規ブックマークを作成して「URL」をこちらでご紹介するコードに設定すれば機能します、まずはブックマークバーを右クリックして「ページを追加」を選択してください。

するとブックマークを編集する画面が開きますのでまずは「名前」を設定、この名前がブックマークバーに表示されますので分かりやすい名前にしましょう、次にその下の「URL」のボックスに下記のコードをコピーして貼り付けます、貼り付けたら最後に「保存」ボタンをクリックして完了ですね。
javascript:(function() {
let totalSeconds = 0;
let count = 0;
const timeElements = document.querySelectorAll(
"ytd-thumbnail-overlay-time-status-renderer span"
);
timeElements.forEach(el => {
const text = el.textContent.trim();
const parts = text.split(":").map(Number);
let seconds = 0;
if (parts.length === 3) {
seconds = parts[0] * 3600 + parts[1] * 60 + parts[2];
} else if (parts.length === 2) {
seconds = parts[0] * 60 + parts[1];
}
if (seconds > 0 && seconds < 86400) {
totalSeconds += seconds;
count++;
}
});
const hours = Math.floor(totalSeconds / 3600);
const minutes = Math.floor((totalSeconds % 3600) / 60);
const seconds = totalSeconds % 60;
alert(`【集計結果】\n合計再生時間: ${hours}時間 ${minutes}分 ${seconds}秒\n(動画数: ${count}本)`);
})();

これで YouTube で再生リストの総再生時間を調べるブックマークレットができました。

使い方は対象の再生リストのページを開いてこのブックマークレットをクリックするだけです、ユーチューブのページを開いたら左端のメニューから「再生リスト」をクリック。

再生リストの一覧が開いたら対象の再生リストの「再生リストの全体を見る」をクリック。

これで再生リストのページが開くのであとはブックマークレットをクリックすると「動画数」と「合計再生時間」のポップアップが開きます。





コメント