[分享] 字幕閱讀器(支援 Netflix, Disney+, Youtube, KKTV 等影音平台) - 討論區

[分享] 字幕閱讀器(支援 Netflix, Disney+, Youtube, KKTV 等影音平台)

文章瀏覽次數 20373 文章回覆數 169

留言

#166

cch

cch圖像(預設)

2026-04-16 19:34:45

From:114.24.250.161

謝老師可以考慮增加:

  1. 手勢:學習目前字幕容器
    (也要有使用說明:按[NVDA+數字鍵]就那幾個移到…物件,讀到字幕才算找到容器,然後讓程式抓容器…學習目前…)
  2. 偏好設定:正規表達式過濾(每行一個):
    (過濾容器字幕以外雜訊。)
  3. 手勢:複製最後一條字幕到剪貼簿
    (方便過濾雜訊)

這樣不論什麼瀏覽器、串流影音平台、國家、位置…,至少Movie Subtitles的字幕都可以報讀。

#167

Maxe

Maxe圖像(預設)

2026-04-17 15:17:24

From:211.23.21.202

字幕閱讀器的運作原理,其實不是告訴她「這個是播放器、這個是字幕容器、這個是字幕文字」
而是告訴他,我要往哪個方向找東西,而這個東西的特徵是什麼。
所以你指定了某個物件,告訴她這個是字幕容器,其實你 F5 重整之後,閱讀器就認不出來了,因為不知道特徵是什麼。

#168

cch

cch圖像(預設)

2026-04-17 17:28:50

From:114.24.250.161

原來如此。
難怪我切下一集時都要重抓一次…
可能是AI取名不夠精準吧~大概因為剛開始它只盯文字,報讀結果就一直重複同一句。然後它就自己轉換說改盯容器了…
它是有提議說:可以改成有記憶的(好像是依照螢幕位置),我嫌繁複就没做了。
不過,
還是很爽
雖然每次都要手動一次…[被踢飛]

#169

cch

cch圖像(預設)

2026-06-12 22:30:01

From:122.100.114.150

Maxe
回復 @cch 這個擴充功能比較特別的是,他會把多長時間沒有字幕顯示出來,我有找到 Silence Indicator 不知道是否跟這個有關,也不知道怎麼開關他。
------我是分隔線------
回覆謝老師
在點擊Movie Subtitles圖示要載入字幕那個介面底下就有。
不過,
它的<核許方塊>勾選和取消没那麼即時,必須要關掉介面再點進去才看得到變化。
今晚才拆Movie Subtitles問AI。

------我是分隔線------
Q:
介面裡的Silence Indicator是做什麼的?
可以介紹原本介面裡的功能嗎
AI:
在您提供的「Movie Subtitles」擴充功能中,針對您的提問,我整理了該介面功能的解析。

1. 關於 "Silence Indicator" 的功能

在字幕外掛的語境中,Silence Indicator (靜音指示器/留白指示器) 通常是用於處理「字幕與語音節奏不對稱」的問題。

  • 它的用途:當您在看電影時,如果字幕檔中存在大量連續的「空白區間」(即長時間沒有對話),Silence Indicator 的作用是協助系統標記或跳過這些無聲片段,避免在沒有台詞的時間點出現擾人的殘留字幕,或是在音軌處理時進行對齊校正。
  • 具體執行邏輯:它會偵測字幕檔(如 SRT 格式)的時間戳。如果兩段字幕之間的時間差超過了預設的「靜音閾值」,它會介入處理,確保播放器不會錯誤地顯示前一段的字幕,或是觸發靜音狀態下的特殊邏輯(例如在完全安靜時暫停顯示功能)。

2. 介面既有功能簡介

為了讓您更清楚「Movie Subtitles」的核心邏輯,以下是常見的介面功能分佈說明(對應您上傳的 contentScriptmanifest 架構):

功能模組 功能描述
Subtitle Loader (字幕載入) 核心功能,負責讀取本機的 .srt.vtt 檔案,並將其解析為時間對應的文字物件。
Icon Wrapper (工具列) 即您程式碼中的 npm-video-player-detector-icon-wrapper,這是外掛在影片播放器上的「掛載點」。它負責在頁面中注入控制按鈕(如播放、設定、字幕開關)。
Sync Control (同步控制) 調整字幕出現時間的延遲(Offset)。若影片與字幕慢了 1 秒,使用者可在此手動增減時間軸。
Container Controller 負責創建 npm-video-player-detector-container,這是一個覆蓋在影片播放器之上的透明層,用來確保字幕渲染的位置不會被網頁的 CSS 干擾。
Settings (設定面板) 即您檔案中的 icons8-settings-32.png 對應的面板,用於調整字體大小、顏色、透明度,以及開關「自動偵測播放器」等功能。

Q:
Edit Mode的功能?
AI:
在「Movie Subtitles」這類擴充功能中,Edit Mode (編輯模式) 的核心價值在於解決字幕與影片內容的不一致。當您載入的字幕檔時間軸不準、翻譯錯誤,或是想要針對特定段落進行「客製化處理」時,Edit Mode 就是您的專屬編輯台。

Edit Mode 的核心功能與作業邏輯

編輯模式通常允許您在不離開當前頁面的情況下,即時修正字幕資訊:

  1. 字幕內容修正

    • 允許您直接選取畫面上的字幕文字進行覆寫。若自動翻譯的語句不通順,您可以在觀影當下立刻修正。
  2. 時間軸微調 (Timing Adjustment)

    • 字幕與聲音總是差了幾百毫秒嗎?在編輯模式下,您可以針對當前出現的字幕片段進行「時間位移」調整,將其與當下聽到的聲音同步。
  3. 片段刪除或隱藏

    • 若某段字幕是不必要的雜訊,或因為網頁廣告導致字幕誤顯示,您可以透過編輯模式標記該片段為「不可見」。
  4. 樣式即時預覽

    • 調整字體大小、顏色、背景透明度。當您在編輯模式下變更這些設定時,字幕會即時更新樣式,讓您確認是否已達到最佳觀影體驗。

與其他功能的協作關係

  • 與 "Silence Indicator" 的互動

  • 在 Edit Mode 下,您通常可以手動定義何處為「靜音區間」。若自動偵測失敗,您可以在編輯模式中標記這段長空白為「無字幕」,這會直接回饋到系統的 Silence Indicator 參數中,優化後續的自動顯示效能。

  • 與未來「語音報讀 (TTS)」的關係

  • 若您進入編輯模式,系統通常會暫停影片播放。這時若您修正了字幕,TTS 引擎會重新讀取修正後的文字,確保報讀內容與您修改後的版本一致。


技術實現面簡述 (基於您的檔案)

如果您打算優化此功能,在 contentScript.bundle.js 中,Edit Mode 通常涉及:

  • DOM 事件攔截:切換至編輯模式時,會移除原本的「純觀影互動(如點擊播放)」並改為「選取編輯互動」。
  • 狀態標記 (State Flag):透過一個全域變數(例如 isEditing)來控制字幕容器的 contenteditable 屬性或是彈出式編輯框的顯示。