[Chrome] 使用 Tampermonkey 自動重新播放 VoiceTube Hero 影片

[Chrome] 使用 Tampermonkey 自動重新播放 VoiceTube Hero 影片

去年底開始加入了 VoiceTube Hero 的第一屆零元挑戰

它有網頁版和手機版本,

雖然每星期都得完成要求的進度,有點壓力,

不過也確實讓我多記了一些單字,也多聽了不少英文影片~

 

但操作上還是有一些地方不足,

像是每部影片開始的時候,就是播放一次無字幕的,

接著就會停下來,要嘛就開始作答,要嘛就點重新播放,

想當然爾,我怎麼可能聽一次就完全聽懂每一句每個字呢?

所以幾乎都是要再點重新播放鈕,重聽個好幾次:

 

如果人在電腦前也就算了,

但我比較喜歡在安靜做家事時 (像收碗盤、摺衣服、擦地板) 順便聽,

這時候還得一直跑去電腦前面點重新播放,真的是蠻不方便的…

雖然它用的是 Youtube 的播放器,按右鍵有循環播放 (Loop),

但不知道是不是 VoiceTube Hero 有做什麼事,那個循環播放的功能是無效的…

 

跟 VoiceTube Hero 客服反應,是說會加入改善考慮,

不過… 據我身為 RD 的直覺,通常排入改善清單的,

大概有九成五會再延到下一個版本,然後再延到下下一個版本…

 

幸好 Tampermonkey 可以再次派上用場,

只要寫段小 JavaScript,

當發現有重新播放鈕跑出來的時候,去點它一下就好了~

 

下面是寫好的程式,基本上就是每一秒檢查一下播放鈕的圖片,

如果現在是重新播放鈕 (replay.png) 的話,

就等 5 秒鐘後再點它一下 (不然一直接續聽,有時會分不出開頭結尾):

// ==UserScript==
// @name         VoiceTube Hero: Auto Replay
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Auto replay video on VoiceTube Hero
// @author       ephrain.net
// @match        https://tw.voicetube.com/hero/play/*
// @grant        none
// ==/UserScript==

function setupRepeatCheck(play_btn_img)
{
    // Check every 1 second
    setTimeout(function() { doCheck(play_btn_img); }, 1000);
}

function doCheck(play_btn_img)
{
    if (play_btn_img.attr("src").indexOf("replay.png") >= 0)
    {
        setTimeout(function() { clickReplay(play_btn_img); }, 5000);
    }
    else
    {
        // Check every 1 second
        setupRepeatCheck(play_btn_img);
    }
}

function clickReplay(play_btn_img)
{
    // Click replay
    play_btn_img.click();

    // Continue check after a period
    setupRepeatCheck(play_btn_img);
}

(function() {
    'use strict';

    // Check if this page contains a replay button
    var play_btn_img = $("#progressbar_play_btn img");
    if (play_btn_img.length > 0)
    {
        setupRepeatCheck(play_btn_img);
    }
})();

 

寫好這個之後,就可以一邊做家事,一邊一直重聽影片了,

感覺效率好多啦~^^

(本頁面已被瀏覽過 65 次)

發表迴響

你的電子郵件位址並不會被公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料