

# 如何擬備已核對出入點的 TikTok 片段簡報

擬備一份連結來源的片段簡報，當中有已核對的入點、出點、預期時長，以及情境備註。連結來源是指簡報保留影片 ID 與影片 URL。字幕時間只建議剪接位置。剪輯人員必須先看畫面、聽聲音，然後才可以剪。

片段簡報是一段計劃片段的交接紀錄。入點是計劃的開始時間。出點是計劃的結束時間。時長是該計劃片段的長度。用時長 = 出點 − 入點。前後餘量是該剪接之前或之後的額外來源時間。前後餘量給剪輯人員數秒來修剪。除非簡報寫明，前後餘量不屬於最終片段。

[TikTok Transcript Actor](https://apify.com/chronometrica/tiktok-transcript-scraper) 會傳回字幕文字與時間。Actor 是託管的資料收集程式。這個 Actor 不會剪接、下載、編輯或發佈影片。它不授予重用媒體的許可。你要做下面的檢查。然後儲存片段簡報。真實片段請用你自己已獲授權的來源。

## 先用一條已知的長度規則

選字之前，先寫明剪輯目標、對象和長度。一篇公開的 [TikTok 片段剪輯招聘帖](https://www.reddit.com/r/JobPH/comments/1uqctq7/hiring_admin_assistant_for_a_tiktok_clipediting/) 要求 10–20 秒的短剪輯，並要求素材保持原有次序。該帖是一項真實的工作要求。它不是全部買家的計數。它不能證明很多人會觀看這段片段。不要從該帖複製薪酬、電郵或聯絡資料。不要假設該帖容許你重用別人的影片。

## 一次字幕執行會傳回甚麼

Task 是已儲存的輸入預設。一次執行是用該輸入使用 Actor 一次。目前公開的 TikTok Transcript 組建是 0.1.36。它接受 `startUrls`，項目為 1–100 個。每個項目必須是已知的公開影片 URL、短連結，或由數字組成的影片 ID。這個 Actor 不會搜尋個人檔案、關鍵字頁或聲音頁。

`preferredLanguages` 會按你列出的次序選取公開軌道。一條軌道是影片上已有的一種字幕語言。空白清單會用第一條公開軌道。這個 Actor 不會翻譯。沒有公開字幕的音訊，它不會代寫文字。它不會收集留言。它不會指派主題代碼。

公開 Task 只是起步輸入。它不會代你做這些檢查。下面已儲存的輸入是目前的樣本。請用你自己已知的公開 URL 取代該樣本 URL。

```json
{
  "startUrls": ["https://www.tiktok.com/@hankgreen1/video/7047596209028074758"],
  "preferredLanguages": []
}
```

一次字幕執行會傳回甚麼

做你自己的單片測試時，只有在你選擇研究英文時，才把 `preferredLanguages` 設為 `["en"]`。如果研究另一種語言，就寫下該語言規則。沒有這個選擇，就不要保留英文。

每項已提交的輸入會傳回一列結果。一列結果是一筆紀錄。失敗的列仍會傳回。確實欄位是 `inputIndex`、`inputUrl`、`videoId`、`videoUrl`、`authorHandle`、`durationSeconds`、`languageCode`、`text`、`segments`、`status`、`statusReason`、`isBillable` 和 `scrapedAt`。每個分段有 `startSeconds`、`endSeconds` 和 `text`。這兩個時間照原樣使用。把 `videoId` 當文字保留，不要當數字，以免遺失任何一位數字。`languageCode` 可以包含地區，例如 `eng-US`。

`status` 可以是以下其中一項：

- `succeeded`
- `no_public_captions`
- `language_unavailable`
- `duplicate_input`
- `not_tiktok`
- `invalid_input`
- `unsupported_url`
- `video_unavailable`
- `not_public`
- `blocked_or_challenged`
- 字幕或擷取失敗

成功需要 `text` 不是空白。空白文字加上失敗狀態，並不表示人們當時沉默。不要為該段空白編寫假對白。如果你需要文字，請指出另一種來源方法。本文不教該另一種方法。

`isBillable` 為 true，表示該一列是一次成功的字幕結果事件。其他列仍是有用的紀錄。使用平台與否，與單一次結果事件是分開的。不要把整次執行稱為免費。

這次執行的 OUTPUT 欄位只是執行計數。它們不表示這些列代表全部影片。

- `inputsReceived`
- `resultRows`
- `billableTranscriptRows`
- `nonBillableResultRows`
- `duplicateVideosSkipped`
- `statusCounts`

一次公開檢查用了上面的樣本影片。該檢查成功。它保留了所要求的確切影片 ID。它的文字不是空白。它有 12 個分段，帶有 `startSeconds` 和 `endSeconds`。這裡沒有抄錄該影片的字幕文字。這次檢查顯示，該一個來源上有公開字幕路徑。它不表示每部影片都能用。它不能證明每個字都與說話相符。它不能證明主題代碼有效。

## 做這 8 項動作

1. 先寫明目標、對象和長度。

寫明這段片段給誰看。寫明它必須帶出的一個意思。讀字幕之前先寫長度規則。就上面的工作要求而言，最終片段要保持在 10–20 秒以內。一段內容可以有用，但仍可能不符合長度規則。長度規則是工作規則。它不是需求的計數。它不能證明人們會觀看這段片段。

1. 從一部已知影片及其字幕列開始。

選一部你已經能指名的已獲授權公開影片。在簡報上保留 `videoId`、`videoUrl`、`languageCode` 和 `status`。只有當 `status` 是 `succeeded` 且 `text` 不是空白時，才繼續。如果狀態是 `no_public_captions` 或其他失敗，就停止。不要編寫假對白。`duplicate_input` 列是已傳送影片的額外複本。該影片只保留一列。這裡只確認公開影片的步驟可以保持簡短。片段工作要在一列狀態為 succeeded 的字幕之後才開始。

1. 選一段完整的段落。

候選是一段可能的片段。它尚未獲准。選一段在你的目標之下，單獨仍然說得通的段落。如果前一行帶有條件或否定，就保留該行。後一行若因同一理由，也要保留。條件是一項限制，例如「用同一個單位」。否定是一個會改變意思的「不」。如果丟掉其中任何一項，片段可能說錯意思。有用的字幕行只是候選。這份簡報不標明整部影片如何開場。它只記錄一段、其時間及其情境。

1. 依分段時間設定入點和出點。

直接讀取 `startSeconds` 和 `endSeconds`。把入點設在你需要的第一個字的開始。把出點設在你需要的最後一個字的結束。然後計算時長 = 出點 − 入點。分段可以相接或重疊。重疊不會增加影片時間。不要把一次重疊再加一次。長度仍然是出點減入點。如果缺少 `durationSeconds`，該未知值不是零。觀看影片。交接前確認出點落在真實影片之內。

1. 先看、先聽，只在需要時才加前後餘量。

播放候選片段。檢查入點和出點沒有切斷語音。檢查它們保留了所需的圖、動作、條件和說話人轉換。剪接點是計劃片段開始或停止的位置。如果剪輯人員需要額外秒數來做淡變或修剪，就加前後餘量。放在入點之前、出點之後，或兩邊都放。寫下餘量長度。寫下這些餘量覆蓋的來源時段。最終入點和出點要分開保留。餘量時段是可用的來源時間。除非剪輯人員更改簡報，它不是最終時長。

1. 儲存一列完整的簡報。

記錄這些項目：

- 來源 ID 與來源 URL
- 時間單位：十進制秒或時間碼
- 出點是否為不含該瞬間的邊界
- 入點、出點和時長
- 預定訊息
- 字幕語言證據
- 人手的聲音與畫面檢查
- 情境風險
- 前後餘量
- 擁有者、剪輯人員和核准狀態

不含該瞬間的邊界停在該瞬間之前。它不包括該瞬間。這裡，字幕的 `endSeconds` 是最後一個所需字的結束。除非你知道來源的幀率，否則不要用這些秒數製作幀時間碼。沒有幀率，就沒有幀時間碼。

1. 只有意思以及入點、出點邊界都通過後，才標為就緒。

`succeeded` 表示 Actor 傳回了帶有文字的公開字幕。它不表示剪輯人員已核准該片段。[如果重要字句不清楚](/zh-Hant/articles/%E7%A0%94%E7%A9%B6%E5%89%8D%E6%A0%B8%E5%B0%8D-tiktok-%E5%AD%97%E5%B9%95%E7%94%A8%E5%AD%97/)，把核准狀態設為 `needs_review`。不要猜測用字。按該剪輯人員一向接收檔案的方式，把已核准的來源檔交給剪輯人員。本文不下載該檔案。

1. 把完成的剪接與簡報比較。

剪輯人員完成剪接後，把最終檔案與簡報比較。檢查訊息、長度、邊界、可見文字和情境。這項檢查由你或剪輯人員做。字幕時間是計劃。它不能證明完成的檔案符合該計劃。

## 演練一課虛構園藝課的例子

下一課是原創虛構。它不是產品結果。它不是真實字幕。它不是已量度的剪輯。

虛構來源是一課已獲授權的園藝課。來源長度是 30 秒。這裡用的字幕行是四個分段。時間是十進制秒。

| 分段 | startSeconds | endSeconds | 文字 |
| --- | --- | --- | --- |
| 1 | 5.0 | 8.0 | 把托盤放在平桌上 |
| 2 | 8.0 | 12.5 | 量邊緣以內的寬度 |
| 3 | 12.5 | 16.0 | 用厘米寫下數字 |
| 4 | 16.0 | 19.0 | 長度用同一個單位。 |

長度規則是 10–20 秒。訊息有兩部分。用厘米量內側寬度。然後長度用同一個單位。

```text
duration = out - in
3.0 = 8.0 - 5.0
4.5 = 12.5 - 8.0
3.5 = 16.0 - 12.5
3.0 = 19.0 - 16.0
3.0 + 4.5 + 3.5 + 3.0 = 14.0
14.0 = 19.0 - 5.0
4.5 = 12.5 - 8.0
22.0 = 27.0 - 5.0
15.0 = 19.5 - 4.5
```

演練一課虛構園藝課的例子

四個分段在 8.0、12.5 和 16.0 相接。這些共用的瞬間不是額外的影片時間。四段長度相加是 14.0。由 5.0 到 19.0 的跨度也是 14.0。

候選 1 用入點 5.0、出點 19.0。時長 = 19.0 - 5.0 = 14.0 秒。這在 10–20 秒以內。這段保留了托盤、寬度、厘米，以及同一單位的規則。經觀看確認，尺的邊緣仍然可見。說出的單位條件保持完整。沒有切斷說話人轉換。最終剪接的核准是 `ready`。

剪輯人員另外要求入點前 0.5 秒、出點後 0.5 秒的前後餘量。餘量開始 = 5.0 - 0.5 = 4.5。餘量結束 = 19.0 + 0.5 = 19.5。餘量跨度 = 19.5 - 4.5 = 15.0 秒。來源是 30 秒，所以 4.5 和 19.5 都在來源之內。可用的來源時段是 15.0 秒。預定的最終剪接仍是 5.0–19.0，即 14.0 秒。不要把 15.0 秒稱為最終時長。這 15.0 秒是餘量空間。核准的片段長度仍是 14.0 秒。

候選 2 用入點 8.0、出點 12.5。時長 = 12.5 - 8.0 = 4.5 秒。下限是 10 秒，所以 4.5 不合格。這個剪接也丟掉了「長度用同一個單位。」單位條件失去了。狀態是 `needs_revision`。它未就緒。

候選 3 用入點 5.0、出點 27.0。時長 = 27.0 - 5.0 = 22.0 秒。上限是 20 秒，所以 22.0 不合格。27.0 這一點仍在 30 秒的來源之內。這四行不包括 19.0 到 27.0 的字幕文字。不要為該段空白編造文字。狀態是 `needs_revision`。它未就緒。

三者都不是 `needs_review`。所提供的文字清楚。候選 2 未達下限，並丟掉單位規則。候選 3 超過上限。只有候選 1 就緒。

就緒列使用虛構標籤。它不聲稱有真實發生的可計費事件。

| 簡報欄位 | 就緒值 |
| --- | --- |
| 來源 ID | fictional-garden-lesson-01，以文字保留 |
| 來源 URL | https://example.com/authorized-garden-lesson |
| 時間單位 | 十進制秒。不是時間碼。 |
| 出點邊界 | 19.0 是最後一個所需字幕字的結束。它不是不含該瞬間的幀邊界。幀率未知。沒有製作幀時間碼。 |
| 入點 | 5.0 |
| 出點 | 19.0 |
| 最終時長 | 14.0 秒。算式：19.0 - 5.0 = 14.0。 |
| 前後餘量 | 入點前 0.5 秒，出點後 0.5 秒。 |
| 餘量時段 | 4.5–19.5。跨度：19.5 - 4.5 = 15.0 秒。這不是最終時長。 |
| 預定訊息 | 用厘米量內側寬度。長度用同一個單位。 |
| 字幕語言證據 | 虛構的 `languageCode` eng-US。教學列假設為 `succeeded`，且文字不是空白。這些文字是虛構的。 |
| 人手檢查 | 已聆聽聲音，並已觀看畫面。語音完整。尺的邊緣仍然可見。同一單位那一行有說出。沒有切斷說話人轉換。 |
| 情境風險 | 從 8.0 開始會丟掉托盤那一行。在 12.5 結束會丟掉同一單位那一行。就緒的剪接兩者都保留。 |
| 來源時長 | 30 秒，已知。4.5 和 19.5 兩點在來源之內。如果這個值未知，它不會是零。先在影片上確認出點。 |
| 擁有者 | 虛構課程擁有者 |
| 剪輯人員 | 虛構片段剪輯人員 |
| 核准狀態 | ready |

| 候選 | 入點 | 出點 | 時長 | 狀態 |
| --- | --- | --- | --- | --- |
| 1 | 5.0 | 19.0 | 19.0 - 5.0 = 14.0 | ready |
| 2 | 8.0 | 12.5 | 12.5 - 8.0 = 4.5 | needs_revision |
| 3 | 5.0 | 27.0 | 27.0 - 5.0 = 22.0 | needs_revision |

## 下一步

核對一段已獲授權來源的段落。在任何剪輯人員製作片段之前，先儲存完整的入點、出點與情境簡報。使用 [TikTok Transcript Actor](https://apify.com/chronometrica/tiktok-transcript-scraper) 和 [TikTok Timestamped Transcript Segments Task](https://apify.com/chronometrica/tiktok-transcript-scraper/examples/tiktok-timestamped-transcript-segments)。用你自己已知的公開影片取代樣本 URL。保留傳回的 `startSeconds` 和 `endSeconds`。把該列標為就緒之前，先看畫面、聽聲音。

## 來源與延伸閱讀

- [TikTok Transcript Actor](https://apify.com/chronometrica/tiktok-transcript-scraper)
- [TikTok Timestamped Transcript Segments Task](https://apify.com/chronometrica/tiktok-transcript-scraper/examples/tiktok-timestamped-transcript-segments)
- [TikTok 片段剪輯招聘帖](https://www.reddit.com/r/JobPH/comments/1uqctq7/hiring_admin_assistant_for_a_tiktok_clipediting/)