如何從 Excel、CSV 或 TXT 快速製作 QLab 字幕
如果你已經用 QLab 來執行演出,最耗時的環節通常不是投影機。
最耗時的環節,是把劇本、翻譯、試算表或純文字文件,轉換成數百個可 cue 的字幕行,同時不破壞演出檔案。
舞台監督可能有一份 Word 劇本。翻譯可能有一份 Excel 試算表。技術人員可能有一份純文字清單。QLab 操作員需要的則是另一種東西:可靠、能放入演出時間軸、能排練、能移動、能重新編號、並在壓力下觸發的文字提示。
本指南說明一套從 Excel、CSV 或 TXT 快速建立 QLab 5 字幕的工作流程。同時也將此方法與官方 QLab 文件進行比較,清楚劃分界線:QLab 原生支援什麼、哪些可以透過 AppleScript 自動化、以及何時使用像 SurtitleLive 這樣的專用 surtitle 工作流程會更安全。
QLab 可以顯示字幕嗎?
可以。在 QLab 中,字幕或 surtitle 通常是用文字提示來建立的。
官方 QLab 5 文件將文字提示描述為一種能將格式化文字顯示為影片輸出的提示。文字提示可以使用字型、大小、樣式、對齊、顏色和背景顏色設定,當提示執行時,QLab 會將文字渲染成影片。由於文字提示是 QLab 影片系統的一部分,它們可以被指派到一個影片輸出舞台進行投影。
對劇團來說,這意味著一個字幕可以是一個普通的 QLab 提示:
- 它可以與音效、影片、燈光、等待和待命提示放在同一個提示列表中
- 它可以被指派到投影機或螢幕舞台
- 它可以像其他視覺素材一樣被格式化
- 它可以透過 GO、提示觸發器、時間軸群組、OSC、MIDI 或其他演出控制邏輯來觸發
這是好消息。
壞消息是,QLab 不是一個翻譯編輯器。它不是一個劇本分段工具。它不是一個多語言的觀眾觀看器。如果你在 QLab 中手動建立每一個字幕,在排練開始前你就可能浪費好幾個小時。
官方 QLab 文件支援什麼
在建立工作流程之前,值得先區分官方的 QLab 行為與製作上的捷徑。
| 需求 | 官方 QLab 文件支援什麼 | 本文補充什麼 |
|---|---|---|
| 顯示投影文字 | QLab 文字提示能將格式化文字渲染為影片輸出,並可指派到一個影片輸出舞台。 | 將每個字幕視為一個 QLab 文字提示。 |
| 產生大量提示 | QLab AppleScript 字典支援 make type "text",並公開提示屬性,如 text、text alignment、fixed width、stage name、translation x 和 translation y。 |
使用試算表的一行或一個文字區塊作為每個文字提示的來源。 |
| 使用試算表 | QLab Cookbook 包含一個試算表驅動的範例,它讀取 Excel 列、建立群組、建立文字提示、設定文字和格式,並將提示移入群組。 | 將相同的模式應用於字幕和 surtitle,而非閃卡。 |
| 原生匯入 XLSX 作為字幕 | QLab 的公開文件展示的是 Excel 自動化,而非一鍵原生的 XLSX 字幕匯入功能。 | 使用 Excel/CSV/TXT 作為來源資料,然後使用腳本或匯入器來產生 QLab 提示。 |
| 同步觀眾手機 | QLab 的文字提示處理本地投影。它們本身不會將基於瀏覽器的字幕狀態發布到觀眾手機。 | 當同一個提示需要同時驅動投影和觀眾手機觀看時,請使用 SurtitleLive QLab Sync。 |
這個區別對 SEO 和製作準確性都很重要。安全的說法不是「QLab 原生匯入 Excel 字幕」。更安全、更準確的說法是:
你可以使用試算表驅動或腳本驅動的工作流程,從 Excel、CSV 或 TXT 建立 QLab 字幕文字提示。
這與 QLab 自己的 Cookbook 處理試算表自動化的方式一致。
最快的結構:每行一個字幕
如果你的來源是 Excel 或 Google Sheets,請從每行一個字幕開始。
保持試算表簡單。簡單是好的。簡單才能撐過技術排練。
在此下載範本:QLab 字幕 Excel 範本 (XLSX)
| 欄位 | 範例 | 為什麼重要 |
|---|---|---|
cue_number |
10 |
你想要指定的 QLab 提示編號。 |
subtitle_text |
歡迎觀賞演出。 |
觀眾看到的文字。 |
operator_note |
門鈴聲後 |
給操作員的提示筆記。 |
language |
zh-TW |
如果你準備多個版本時很有用。 |
stage |
Surtitles |
可選的 QLab 影片輸出舞台名稱。 |
alignment |
center |
通常是 center,但明確指定比較好。 |
對於第一次處理,只需要兩個基本欄位:
cue_number,subtitle_text
10,Welcome to the show.
11,Please turn off your phones.
12,The performance will begin shortly.如果字幕來自翻譯人員,請要求他們不要合併儲存格、不要用顏色標記意義、也不要把製作筆記藏在註解裡。把文字放在欄位中。腳本可以讀取欄位。操作員可以檢查欄位。
方法 1:Excel 到 QLab 文字提示
這個方法最接近官方 QLab Cookbook 的模式。
概念很簡單:
- 在 Excel 中開啟字幕試算表。
- 開啟目標 QLab 5 工作區。
- 先在 QLab 中設定你的文字提示範本。
- 執行一個讀取每一列的 AppleScript。
- 針對每一列,建立一個 QLab 文字提示。
- 設定提示編號、提示名稱、文字、對齊、寬度、筆記,以及可選的舞台。
- 將產生的提示移動或複製到實際的演出時間軸。
官方的 Cookbook 範例使用 Excel 建立一個更複雜的視覺工作區,包含群組和每列多個文字提示。對於字幕,你可以簡化這個模式:試算表的一列變成一個字幕文字提示。
一個最簡的 AppleScript 骨架可能如下所示:
-- Official QLab 5 pattern:
-- https://qlab.app/docs/v5/scripting/examples/#create-and-move-a-new-cue
on makeCueInGroup(cueType, destinationContainer)
tell application id "com.figure53.QLab.5" to tell front workspace
make type cueType
set newCue to last item of (selected as list)
set q number of newCue to ""
set newCueID to uniqueID of newCue
set sourceList to parent of newCue
move cue id newCueID of sourceList to end of destinationContainer
return cue id newCueID of destinationContainer
end tell
end makeCueInGroup你可以在此下載包含此 AppleScript、Excel 範本和螢幕截圖的完整配套套件:QLab 字幕示範素材 (ZIP)。
這不是一個完整的正式演出匯入器。它是一個可讀的起點。
對於實際演出,在寫入 QLab 工作區之前,請加入檢查:
- 如果提示編號為空白則停止
- 如果提示編號已存在則停止
- 修剪字幕文字中多餘的空格
- 如果一行文字太長則發出警告
- 拒絕標記為草稿或未核准的列
- 先將產生的提示放入一個暫存群組
- 保留 QLab 工作區的含時間戳記備份
最安全的工作流程是將提示產生到一個獨立的 QLab 工作區或一個命名清楚的群組中,進行審查,然後再貼到實際的演出檔案中。
方法 2:CSV 到 QLab 字幕
CSV 通常比 XLSX 更適合做為交換格式。
Excel 適合編輯。CSV 適合自動化。
一個 CSV 工作流程通常如下:
- 在 Excel、Google Sheets、Numbers 或 Airtable 中編輯字幕。
- 匯出為 CSV。
- 執行一個小型匯入器,讀取 CSV 並建立 QLab 文字提示。
- 在排練前審查產生的 QLab 提示。
優點是匯入器不需要直接與 Excel 通訊。它可以讀取一個純文字 CSV 檔案。這使得工作流程更容易進行版本控制、測試和重複。
CSV 也可以放在 Git 中,因此更容易審查變更。例如,製作經理可以看到提示 42 從一個翻譯改成了另一個,而無需開啟 QLab 工作區。
對劇團來說,這很有用,因為字幕工作會不斷變動:
- 翻譯被縮短了
- 演員改變了一個停頓
- 一個笑話需要不同的斷行
- 一個後期的刪減移除了一頁
- 導演要求將某個字幕提前兩個提示
如果你的來源資料是結構化的,重建 QLab 提示列表就會變成可重複的,而不是手動的。
方法 3:TXT 到 QLab 字幕
當你還沒有試算表時,純文字是最快的起點。
使用一個簡單的區塊格式:
10
Welcome to the show.
11
Please turn off your phones.
12
The performance will begin shortly.在這種格式中,每個字幕區塊包含:
- 一個提示編號
- 一行或多行字幕文字
- 下一個區塊前的一個空白行
一個 TXT 匯入器可以根據空白行分割檔案,將第一行讀取為 QLab 提示編號,並將其餘行視為字幕文字。
這很快,但也比較脆弱。純文字適合小型活動或初稿排練。當你需要多種語言、核准狀態、操作員筆記、場景編號、說話者名稱或修訂歷史時,它就變得不足了。
對於嚴肅的 surtitle 工作,一旦結構變得複雜,請儘快將 TXT 轉換為試算表或專用的 surtitle 編輯器。
投影設定:別忘了舞台
產生文字提示只是完成了一半的工作。
一個 QLab 文字提示必須輸出到某個地方。在官方的 QLab 文字提示檢查器中,I/O 標籤頁會將提示指派到一個影片輸出舞台。如果提示沒有舞台,文字提示可能會故障或無法出現在預期位置。

在匯入數百個字幕提示之前,請先建立並測試舞台:
- 連接投影機或顯示器
- 設定 QLab 影片輸出舞台
- 建立一個手動文字提示
- 設定字型、大小、顏色、寬度、對齊和位置
- 確認從最後一排也能清楚閱讀
- 將該提示儲存為範本,或將其設定複製到產生的提示中
請在自動化之前完成這些步驟。自動化會重複你的設定。如果範本是錯的,自動化會非常快速地重複錯誤的設定。
DIY QLab 字幕工作流程中常見的問題
DIY QLab 字幕產生在問題很簡單時運作良好:
我有文字。我需要 QLab 文字提示。
但當問題實際上是這樣時,就會變得困難:
我有一個翻譯好的劇本、後期編輯、多個版本、一個投影螢幕、觀眾手機、提示跳轉,以及一個需要在演出偏離劇本時能夠恢復的現場操作員。
常見的失敗點包括:
- 重複的提示編號
- 缺少舞台指派
- 對螢幕來說太寬的字幕
- 在 Excel 中看起來沒問題,但在投影機上卻不行的斷行
- 提示已匯入後才發生的翻譯變更
- QLab 演出檔案成為字幕文字存在的唯一地方
- 沒有乾淨的方式來比較翻譯的第三版和第四版
- 投影和手機字幕傳送逐漸不同步
- 當演員跳詞、重複或重新排序台詞時,操作員壓力很大
這就是「快速 QLab 自動化」與真正 surtitle 製作工作流程之間的界線。
何時 SurtitleLive 是更好的工作流程
如果你只需要本地投影,QLab 文字提示工作流程可能就足夠了。
如果你需要翻譯審查、穩定的提示鍵、手機觀看,或投影加上觀眾手機,SurtitleLive 在字幕到達 QLab 之前就為它提供了一個專用的家。
SurtitleLive 的 QLab 工作流程有兩個層級。
QLab 投影套件
當你想要從 QLab 進行本地投影時使用這個。
工作流程是:
SurtitleLive 編輯器 → QLab 投影套件 → QLab 文字提示 → 投影機
你在 SurtitleLive 中準備劇本和字幕片段,審查翻譯和提示順序,然後匯出 QLab 就緒的提示。QLab 仍然是場地的播放環境。
當 QLab 已經是技術操作員的核心,但字幕準備工作不應該在 QLab 內部一個提示一個提示地進行時,這會很有用。
QLab + SurtitleLive 雲端同步
當 QLab 應該繼續執行演出時間軸,但觀眾手機應該跟隨相同的字幕狀態時使用這個。
工作流程是:
QLab → 本地投影 → 投影機
並且,在同一個提示點:
QLab 同步提示 → 本地 Mac 橋接器 → SurtitleLive 雲端 → 觀眾手機
在此設定中,每個 SurtitleLive 字幕都可以作為一個時間軸群組匯入 QLab。該群組包含一個用於本地投影的文字提示和一個用於觀眾手機的同步提示。操作員仍然在 QLab 時間軸內工作,而 SurtitleLive 則處理觀眾手機的字幕狀態。
graph TD
%% Style Definitions
classDef qlab fill:#1a1c23,stroke:#5856d6,stroke-width:2px,color:#fff;
classDef hardware fill:#2a2b36,stroke:#8e8e93,stroke-width:2px,color:#fff;
classDef cloud fill:#0d2d5e,stroke:#007aff,stroke-width:2px,color:#fff;
classDef audience fill:#103823,stroke:#34c759,stroke-width:2px,color:#fff;
subgraph Venue ["Local Venue (Theatre)"]
QLab["QLab 5 Workspace
(Show Control Mac)"]:::qlab
Projector["Stage Projector"]:::hardware
Screen["Subtitle Screen / LED Wall"]:::hardware
Bridge["SurtitleLive Local Bridge
(Receives QLab OSC)"]:::qlab
end
subgraph CloudSpace ["Cloud Service"]
Cloud["SurtitleLive Cloud Platform
(Real-time Sync)"]:::cloud
end
subgraph Viewers ["Audience Devices"]
Phone1["Audience Phone A
(Web Browser)"]:::audience
Phone2["Audience Phone B
(Web Browser)"]:::audience
PhoneN["...Other Phones"]:::audience
end
%% Connection Logic
QLab -->|"1. Video Output (HDMI/SDI)"| Projector
Projector --> Screen
QLab -->|"2. Local OSC Trigger"| Bridge
Bridge -->|"3. Secure WebSocket"| Cloud
Cloud -->|"4. Millisecond-level Push"| Phone1
Cloud -->|"4. Millisecond-level Push"| Phone2
Cloud -->|"4. Millisecond-level Push"| PhoneN
%% Subgraph Styling
style Venue fill:#f9f9fb,stroke:#ccc,stroke-width:1px;
style CloudSpace fill:#f0f7ff,stroke:#b3d7ff,stroke-width:1px;
style Viewers fill:#f2fff5,stroke:#c2f0cc,stroke-width:1px;這很重要,因為手機字幕工作流程不應該要求觀眾裝置直接與 QLab 通訊。演出電腦、投影機、本地橋接器和觀眾連結各有不同的工作。
最佳實務建議
對於一個小型的一晚活動:
使用 Excel 或 TXT 來產生 QLab 文字提示。保持簡單。測試投影機。儲存備份。
對於一個翻譯劇場演出:
在 QLab 外部準備字幕,在文字審查完成後再匯入 QLab。
對於一個多語言或包含手機觀眾的演出:
使用 SurtitleLive 搭配 QLab 匯出或 QLab Sync。讓 QLab 作為演出時間軸,但不要讓 QLab 成為字幕內容的唯一真實來源。
目標不是取代 QLab。目標是讓 QLab 做它最擅長的事:現場演出控制。
字幕準備、翻譯審查、手機觀看和提示狀態同步需要它們自己的工作流程。
常見問題
QLab 可以顯示字幕嗎?
可以。QLab 文字提示可以將格式化文字顯示為影片輸出,因此它們通常用於投影字幕、surtitle、隱藏式字幕、公告和類似的文字型視覺內容。
我可以直接將 Excel 字幕匯入 QLab 嗎?
QLab 的官方 Cookbook 展示了使用 AppleScript 進行 Excel 驅動的提示產生,但這與內建的一鍵 XLSX 字幕匯入功能不同。實務上的方法是使用 Excel 作為來源資料,然後執行一個腳本或匯入器來建立 QLab 文字提示。
我可以從 CSV 製作 QLab 字幕嗎?
可以,透過一個匯入器。CSV 通常比 XLSX 更容易處理,因為它是純文字且更容易解析。一個腳本可以讀取每一列並為每個字幕建立一個文字提示。
我可以從 TXT 製作 QLab 字幕嗎?
可以,如果 TXT 檔案使用可預測的結構。例如,每個區塊可以以一個提示編號開頭,接著是字幕文字,提示之間用空白行分隔。一個腳本可以將這些區塊轉換為 QLab 文字提示。
字幕應該是 QLab 文字提示還是影片提示?
對於可編輯的即時文字,請使用文字提示。當字幕已經嵌入到渲染好的影片或圖形中時,影片提示會更好。文字提示更容易從結構化文字進行修改、格式化和產生。
QLab 會將字幕同步到觀眾手機嗎?
QLab 可以在本地投影文字提示,但觀眾手機傳送需要一個瀏覽器/手機工作流程。SurtitleLive QLab Sync 就是為此設計的:QLab 保持為演出時間軸,而 SurtitleLive 更新觀眾手機的字幕狀態。
我何時應該停止使用 DIY QLab 字幕腳本?
當字幕工作流程需要翻譯審查、多種語言、穩定的提示鍵、手機觀看、排練恢復,或匯入後需要重複更新時,就應該停止只依賴 DIY 腳本。在那個時候,請使用專用的 surtitle 工作流程並匯出到 QLab,而不是在 QLab 工作區內手動維護所有字幕內容。
相關資源
- QLab 5 文字提示:https://qlab.app/docs/v5/video/text-cues/
- QLab 5 AppleScript 字典:https://qlab.app/docs/v5/scripting/applescript-dictionary-v5/
- QLab Cookbook — Grid:https://qlab.app/cookbook/grid/
- SurtitleLive QLab 工作流程:https://surtitlelive.com/qlab
- SurtitleLive 匯出 QLab 匯入套件: https://surtitlelive.com/zh-TW/guides/export-qlab-import-pack
- SurtitleLive QLab 控制 ASM 與 Viewer 同步指南: https://surtitlelive.com/zh-TW/guides/qlab-asm-viewer-sync-beta