動画上で印を付けた区間が、編集者への引き継ぎカードと、別の手動確認カードにつながっている。
編集前に時刻と文脈を確認します。

クリップ編集指示書は、作成予定のクリップ1本について編集者に引き継ぐための記録です。イン点は予定する開始時刻です。アウト点は予定する終了時刻です。尺は、そのクリップの予定の長さです。計算には duration = out - in を使います。ハンドルとは、切り出す範囲の前後に確保する元動画の余裕部分です。編集者はこの余裕を使って切り出す位置を調整できます。指示書に明記しない限り、ハンドルは完成するクリップに含まれません。

TikTok Transcript Actorは字幕テキストと時刻を返します。Actorとは、ホスト環境で動作するデータ収集プログラムです。このActorは動画の切り出し、ダウンロード、編集、公開を行いません。メディアを再利用する許可を与えるものでもありません。以下の確認は利用者が行います。その後、クリップ編集指示書を保存します。実際のクリップには、利用許可を得た元動画を用意してください。

あらかじめ定めた尺の条件を使う

使う言葉を選ぶ前に、編集の目的、対象者、尺を明記します。公開されているTikTokクリップ編集の求人投稿の1つでは、10–20秒の短い動画編集と、映像の順序を保つことが求められています。この投稿は実際の仕事の依頼です。依頼者全体の数を示すものではありません。多くの人がそのクリップを視聴することを証明するものでもありません。報酬、メールアドレス、連絡先の情報を転載しないでください。この投稿が、他人の動画を再利用する許可になると考えないでください。

字幕取得を1回実行すると何が返るか

Taskとは、保存済みの入力設定です。実行とは、その入力でActorを1回動かすことです。現在公開されているTikTok Transcriptのビルドは0.1.36です。`startUrls`には1–100件の項目を指定できます。各項目には、既知の公開動画URL、短縮リンク、数字だけで構成された動画IDのいずれかを指定する必要があります。このActorは、プロフィール、キーワードページ、楽曲ページを検索しません。

`preferredLanguages`は、指定した順序に従って公開字幕トラックを選びます。トラックとは、その動画にすでにある1つの言語の字幕です。空のリストを指定すると、最初の公開字幕トラックを使います。このActorは翻訳を行いません。公開字幕がない音声を文字起こしすることもありません。コメントは収集しません。トピックの分類コードも付けません。

公開Taskは、入力の出発点にすぎません。これらの確認を代わりに行うものではありません。以下の保存済み入力は、現在のサンプルです。サンプルURLを、自分で把握している公開動画のURLに置き換えてください。

json
{
  "startUrls": ["https://www.tiktok.com/@hankgreen1/video/7047596209028074758"],
  "preferredLanguages": []
}
字幕取得を1回実行すると何が返るか

動画1本で自分のテストを行う場合、調査する言語として英語を選んだときに限り、`preferredLanguages`を`["en"]`に設定します。別の言語を調査する場合は、その言語の選択基準を記載してください。英語を選ぶと決めていないのに、設定を英語のままにしないでください。

送信した入力1件につき、結果が1行返されます。結果の1行は1件のレコードです。失敗した行も返されます。フィールド名は正確には、`inputIndex`、`inputUrl`、`videoId`、`videoUrl`、`authorHandle`、`durationSeconds`、`languageCode`、`text`、`segments`、`status`、`statusReason`、`isBillable`、`scrapedAt`です。各セグメントには`startSeconds`、`endSeconds`、`text`があります。この2つの時刻は、返された値をそのまま使います。桁落ちを防ぐため、`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の場合、その1行は、字幕取得に成功した結果イベント1件に当たります。それ以外の行も、有用な記録です。プラットフォームの利用は、個々の結果イベントとは別です。実行全体を無料と呼ばないでください。

実行のOUTPUTフィールドは、その実行の件数だけを示します。結果の行がすべての動画を代表することを示すものではありません。

  • `inputsReceived`
  • `resultRows`
  • `billableTranscriptRows`
  • `nonBillableResultRows`
  • `duplicateVideosSkipped`
  • `statusCounts`

公開動画を使った1回の確認では、上記のサンプル動画を使用しました。この確認は成功しました。指定した動画IDが正確に保持されました。空ではないテキストが返されました。`startSeconds`と`endSeconds`を持つセグメントが12件ありました。その動画の字幕の文言は、ここには転載していません。この確認が示すのは、その1つのソースで公開字幕を取得できたことです。すべての動画で動作することを示すものではありません。すべての単語が発言と一致することも証明していません。トピックの分類コードが妥当であることも証明していません。

次の8つの作業を行う

  1. 最初に目的、対象者、尺を明記する。

誰に向けたクリップなのかを記載します。必ず伝えるべき1つの要点を記載します。字幕を読む前に、尺の条件を記載します。上記の仕事の依頼では、完成するクリップを10–20秒に収めます。有用な一節でも、尺の条件を満たさない場合があります。尺の条件は作業上の条件です。需要の件数を示すものではありません。人々がそのクリップを視聴することを証明するものでもありません。

  1. 既知の動画1本と、その字幕の行から始める。

すでに特定できていて、利用許可を得た公開動画を1本選びます。指示書に`videoId`、`videoUrl`、`languageCode`、`status`を保持します。`status`が`succeeded`で、`text`が空ではない場合にだけ進めてください。ステータスが`no_public_captions`などの失敗を示す場合は、そこで止めます。架空の発言を書かないでください。`duplicate_input`の行は、すでに送信した動画の重複分です。その動画については1行を残します。ここでは、公開動画を確認するだけの手順は簡潔に済ませて構いません。クリップの作業は、字幕取得に成功した行が得られてから始めます。

  1. 意味が完結する一節を選ぶ。

候補とは、クリップに使える可能性がある部分です。まだ承認済みではありません。目的に照らして、その部分だけでも意味が通る一節を選びます。直前の文に条件や否定が含まれている場合は、その文も残します。直後の文も、同じ理由で残します。条件とは、「長さにも同じ単位を使う」のような制約です。否定とは、「~ではない」のように意味を変える表現です。どちらかを削ると、クリップが誤った内容を伝えるおそれがあります。有用な字幕の一文も、あくまで候補です。この指示書は、動画全体の冒頭の見せ方を分類するものではありません。1つの一節と、その時刻、文脈を記録します。

  1. セグメントの時刻からイン点とアウト点を設定する。

`startSeconds`と`endSeconds`を直接読み取ります。必要な最初の単語が始まる時刻をイン点にします。必要な最後の単語が終わる時刻をアウト点にします。その後、duration = out - in で尺を計算します。セグメントは接していたり、重なっていたりすることがあります。重なりによって動画の時間が増えるわけではありません。重なる時間を二重に加算しないでください。尺は、あくまでアウト点からイン点を引いた値です。`durationSeconds`が欠損している場合、その不明な値は0ではありません。動画を視聴してください。引き継ぐ前に、アウト点が実際の動画の範囲内にあることを確認します。

  1. 映像と音声を確認し、必要な場合だけハンドルを加える。

候補部分を再生します。イン点とアウト点で発言が途中で切れないことを確認します。必要な図、動作、条件、話者の切り替わりが保たれることも確認します。切り出し位置とは、予定するクリップの開始位置または終了位置です。編集者がフェードや位置調整のために余分な秒数を必要とする場合は、ハンドルを加えます。イン点の前、アウト点の後、またはその両方に設けます。ハンドルの長さを記載します。ハンドルを含めた元動画の区間も記載します。最終的なイン点とアウト点は別に記録します。ハンドルを含む区間は、利用可能な元動画の範囲です。編集者が指示書を変更しない限り、完成するクリップの尺ではありません。

  1. 必要事項がそろった指示書の行を1行保存する。

次の項目を記録します。

  • 元動画のIDとURL
  • 時間の単位:小数の秒数、またはタイムコード
  • アウト点の時刻自体を範囲に含めるかどうか
  • イン点、アウト点、尺
  • 伝えたい内容
  • 字幕言語の根拠
  • 音声と映像の手動確認
  • 文脈が失われるリスク
  • ハンドル
  • 所有者、編集者、承認状態

境界時刻自体を含めない場合、その瞬間の直前で終了します。その瞬間は含まれません。ここでは、字幕の`endSeconds`は、必要な最後の単語が終わる時刻です。元動画のフレームレートが分からない限り、この秒数からフレーム単位のタイムコードを作らないでください。フレームレートが不明なら、フレーム単位のタイムコードは作れません。

  1. 意味と切り出し位置の確認に合格してから準備完了にする。

`succeeded`は、Actorがテキストを含む公開字幕を返したことを意味します。編集者がクリップを承認したという意味ではありません。重要な語句が不明瞭な場合は、承認状態を`needs_review`にします。言葉を推測しないでください。承認済みの元ファイルを、編集者が普段ファイルを受け取っている方法で渡します。この記事では、そのファイルをダウンロードしません。

  1. 完成したクリップを指示書と照合する。

編集者が切り出した後、完成ファイルを指示書と照合します。伝える内容、尺、切り出し位置、画面上の文字、文脈を確認します。この確認は、利用者または編集者が行います。字幕の時刻は計画です。完成ファイルが計画どおりであることを証明するものではありません。

架空の園芸レッスンで手順を確認する

以下のレッスンは、独自に作成した架空の例です。製品の出力結果ではありません。実際の字幕ではありません。編集結果を実測したものでもありません。

架空の元動画は、利用許可を得た園芸レッスンです。元動画の長さは30秒です。ここで使う字幕は4つのセグメントで構成されています。時刻は小数の秒数で表します。

架空の園芸レッスンで手順を確認する
セグメントstartSecondsendSecondsテキスト
15.08.0平らなテーブルの上にトレイを置きます
28.012.5縁の内側の幅を測ります
312.516.0センチメートル単位で数値を書きます
416.019.0長さにも同じ単位を使います。

尺の条件は10–20秒です。伝える内容は2つあります。内側の幅をセンチメートル単位で測ること。その後、長さにも同じ単位を使うことです。

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
架空の園芸レッスンで手順を確認する

4つのセグメントは、8.0、12.5、16.0で接しています。これらの共通する時点の分だけ、動画の時間が増えるわけではありません。4つの長さを足すと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秒の元動画の範囲内です。この4行には、19.0から27.0までの字幕テキストがありません。その空白の言葉を創作しないでください。ステータスは`needs_revision`です。準備完了ではありません。

3つの候補のどれも`needs_review`ではありません。提示された言葉は明瞭です。候補2は最短の条件を満たさず、単位の条件も抜け落ちています。候補3は最長の条件を満たしません。準備が整っているのは候補1だけです。

準備完了の行には、架空のラベルを使っています。実際に課金対象のイベントが発生したと主張するものではありません。

架空の園芸レッスンで手順を確認する
指示書の項目準備完了時の値
元動画のIDfictional-garden-lesson-01。文字列として保持。
元動画のURLhttps://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の時点は元動画の範囲内です。この値が不明だったとしても、0にはなりません。先に動画上でアウト点を確認します。
所有者架空のレッスン所有者
編集者架空のクリップ編集者
承認状態ready
架空の園芸レッスンで手順を確認する
候補イン点アウト点尺ステータス
15.019.019.0 - 5.0 = 14.0ready
28.012.512.5 - 8.0 = 4.5needs_revision
35.027.027.0 - 5.0 = 22.0needs_revision

出典と参考資料

著者 Chronometrica · 更新日

ページの先頭へ ↑