動画アーカイブ格納フロー
SlackArchiveFlow.js の全体像。イベント終了 → ボタン選択 → 格納完了まで。
対象カテゴリ:
ウェビナー
ジュニア
ゼミ
入学式
1前工程: 終了通知
イベント終了時刻になると、endNotice_scanAndPost(5分おきトリガー)がイベントDBをスキャンし、該当行のSlackチャンネルに「終了通知 + 5つのボタン」を自動投稿する。
カテゴリ別ルーティング(投稿先 / メンション先)
カテゴリ (B列+C列) |
終了通知の投稿先ch |
CC先(個人) |
メンション対象 |
| ウェビナー |
#community_contents_webinar |
田松由奈 |
講師 / 責任者 / モデレーター + cc 田松由奈 |
ジュニア B列=ウェビナー & C列=ジュニア |
#junior_webinar |
落合里南 |
講師 / 責任者 / モデレーター + cc 落合里南 |
| ゼミ |
#community_ss_seminar |
豆井知子 |
講師 / 責任者 / モデレーター + cc 豆井知子 |
| 入学式 |
#community_ss_entrance-ceremony |
福住花和 |
講師 / 責任者 / モデレーター + cc 福住花和 |
投稿後、スレッド内に5つのボタン(1〜5番)が表示される。ボタンを押すとブラウザが開き、ログイン済みの10xcユーザーとしてGAS(doGet)が実行される。
1
Zoom問題なし・格納OKそのままダウンロードOK。自動で格納フローに進む
2
冒頭カット編集が必要秘書さんに編集を依頼。1時間後に自動通知
3
途中カット編集が必要編集チームに依頼。1時間後に自動通知
4
マイコンピューターに保存ローカルの動画をDriveに手動格納
5
アーカイブ不要このイベントはアーカイブしない。スレッド終了
3各ボタンの詳細フロー
1
格納OK(自動ダウンロード → 格納依頼 → Discord投稿)
1番ボタンを押す
ブラウザでGAS doGet(action=ok)が開く
5項目チェック
入学式 → 免除(チェックなしで通過)
ウェビナー / ジュニア / ゼミ → 必須(未入力ならエラー表示+再押下ボタン表示)
未入力がある場合:
ボタンがロックされ、未入力項目をリスト表示。
入力後にもう一度押すための「動画格納OK」ボタンが再掲される。
「動画格納OK」列にチェック(TRUE)
イベントDBのチェック列が埋まる
VTT到着 → 概要欄HTML自動生成(イベントDB側GAS)
アーカイブ概要欄HTML生成.js が「動画格納OK」を検知して実行
格納依頼を自動投稿(5分おきスキャン)
投稿先: #community_learning_site_archive(全カテゴリ共通)
メンション: @learning_site_all cc @community_webinar_assist(または入学式なら @community_online_support_assist)
ここからアーカイブ格納作業
格納依頼を受けた作業者が実施する手順
作業者がアーカイブページURLを入力
イベントDBビューを開き、「アーカイブページURL」列に記入
「アーカイブ格納完了」ボタンを押す
アーカイブページURLが空なら止まる(入力後に再度押せるボタンを再掲)
「アーカイブ格納完了」列にチェック(TRUE)
Discord自動投稿(5分おきスキャン)
入学式 Day1〜3 → 投稿なし(「Discord投稿なし」マーカーを記録)
入学式 Day0 → 投稿あり。ただし「アーカイブ動画視聴はこちら」のみ(アンケートなし)
ウェビナー / ジュニア / ゼミ → 「アーカイブ動画視聴はこちら」+「アンケートはこちら」の2セクション構成
入学式はアンケートがない:
入学式にはアンケートが存在しないため、Discord投稿文は「アーカイブ動画視聴はこちら」だけの表示になる。これは正常動作(アンケート回答リンク列が空なら自動的にスキップされる仕組み)。
Slack完了報告(自動)
格納依頼スレッドに完了報告を返信。
グループ: ウェビナー/ジュニア/ゼミ → @community_webinar_assist / 入学式 → @community_online_support_assist
cc(全カテゴリ共通): 村井綾 / 村井玲子 / 柳川那奈
2
秘書さんに冒頭カット編集を依頼
2番ボタンを押す
スレッドに「1時間後に通知します」と返信
1時間後: 秘書チームに編集依頼を自動通知
同じスレッドに依頼文を投稿。メンション先はカテゴリで分岐:
2番の1時間後通知: メンション先
| カテゴリ | グループメンション | 追加メンション | cc(全カテゴリ共通) |
| ウェビナー |
@community_webinar_assist |
- |
村井綾 / 村井玲子 / 柳川那奈 |
| ジュニア |
@community_webinar_assist |
+ 落合里南 |
| ゼミ |
@community_webinar_assist |
- |
| 入学式 |
@community_online_support_assist |
- |
秘書が冒頭カットを編集
編集完了後、責任者にメンションして連絡
責任者が「動画格納OK」ボタンを押す
2番押下時にスレッド下部に再掲されたボタン
以降は1番と同じフロー
5項目チェック → 格納依頼 → 格納完了 → Discord投稿 → 完了報告
3
編集チームに途中カット編集を依頼
3番ボタンを押す
スレッドに「1時間後に通知します」と返信
1時間後: 責任者にZoom URL取得+編集依頼の通知
責任者をメンションし「@community_movies へ依頼してください」と案内。
Driveフォルダ(共有)のURL + 「年月日_タイトル」のフォルダ命名例を添付。
責任者がZoom DL → 編集チームへ依頼 → 編集後Driveに格納
「格納完了」ボタンを押す
3番押下時にスレッド下部に表示されたボタン。「手動アップロード」列にTRUEが入る
スレッド完了
格納依頼→Discord投稿の自動フローには乗らない(手動格納のため)
4
マイコンピューターに保存(ローカル → Drive手動格納)
4番ボタンを押す
スレッドにDriveフォルダURL + フォルダ命名ルールを案内
ローカルの動画をDriveフォルダに格納
フォルダ名: 「年月日_タイトル」
「格納完了」ボタンを押す
「手動アップロード」列にTRUEが入る
スレッド完了
3番と同様、自動フローには乗らない
5
アーカイブ不要
5番ボタンを押す
「アーカイブ不要ボタン」列にTRUEが入る
スレッド完了
格納依頼・Discord投稿いずれも対象外になる。以降の処理なし
4自動後工程(1番ボタン経由のみ)
1番(または2番→動画格納OK経由)で「動画格納OK」にチェックが入った後、以下が自動で順番に発火する。すべて5分おきのトリガーで動く。
| 順番 |
処理 |
発火条件 |
投稿先 |
| 1 |
概要欄HTML生成 アーカイブ概要欄HTML生成.js |
「動画格納OK」= TRUE |
イベントDBのHTML列に書き込み |
| 2 |
格納依頼投稿 archiveStorage_scanAndPost |
タイトル + HTML + チャプター + 5項目 (入学式は5項目免除) |
#community_learning_site_archive (全カテゴリ共通) |
| 3 |
格納完了ボタン押下 action=storagedone |
作業者が手動で押す (アーカイブURL入力済みが条件) |
「アーカイブ格納完了」= TRUE |
| 4 |
Discord自動投稿 アーカイブ格納後Discord投稿.js |
格納完了 = TRUE & Discord URL = 空 |
Discordフォーラムch (入学式のみ投稿なし) |
| 5 |
Slack完了報告 段2: completionReport_scanAndPost |
Discord URL列が埋まった(または「Discord投稿なし」マーカー) |
格納依頼スレッドに返信 |
55項目チェック(必須入力項目)
1番ボタン押下時と格納依頼の自動投稿時の2箇所で同じ5項目をチェックする。すべて埋まるまで先に進めない。
- アンケートリンク — アンケートのリンク
- Xの投稿リンク — X(旧Twitter)のポストのリンク
- サムネ格納リンク — サムネイル画像の格納リンク
- 告知文/アーカイブ_学べること — この動画で学べること
- 告知文/アーカイブ_こんな方 — こんな方におススメ
カテゴリ別の免除ルール
| カテゴリ | 5項目チェック |
| ウェビナー | 必須 |
| ジュニア | 必須 |
| ゼミ | 必須 |
| 入学式 | 免除(チェックなしで通過) |
GASプロジェクト構成:
SlackArchiveFlow.js(このフロー全体を管理) = スタンドアロンGAS
アーカイブ概要欄HTML生成.js / アーカイブ格納後Discord投稿.js = イベントDBバインドGAS(別プロジェクト)
両者はイベントDBスプレッドシートを介して連携(直接の関数呼び出しはできない)。