ワークフロー&基本ツール · Backtthefuture/huangshu

video-transcript

動画文字起こし(逐字録)抽出エキスパート(Doubao動画理解モデルベース)。Bilibili、Douyin、小紅書(RED)、YouTube、WeChat動画号のリンクおよびローカル動画に対応。ユーザーのPCのバックグラウンド(headless)で全プロセスを実行し、ポップアップ表示や動画サイトへのログインは不要です。「意味段落+段落レベルのタイムスタンプ」による厳密な逐字書き起こし(口語表現、ネットスラング、間を保持)を出力し、長尺動画はモデルによる要約化を防ぐため自動分割処理を行います。トリガーシナリオ: - ユーザーが「逐字録を出して」「文字起こしを抽出して」「テキスト化して」「動画を文字起こしして」と言った場合 - ユーザーが「動画をディクテーションして」「動画のテキストを抽出して」「動画字幕」と言った場合 - ユーザーが /video-transcript コマンドを使用した場合 - ユーザーが動画リンク(Bilibili / Douyin / 小紅書 / YouTube / WeChat動画号)を貼り付け、テキスト版を求めている場合 - ユーザーが動画リンクのみを貼るか「この動画を処理して」と言ったものの、ダウンロードか文字起こしか意図が不明な場合は、まず意図を確認する

L5 厳格管理 · 隔離環境と厳格な監査V2 人間監査済規約/コンプライアンスコマンド実行ネットワーク通信ファイル書き込みDual-pass Audit
Author BacktthefutureGitHub Backtthefuture/huangshu ↗License MIT(仓库根 LICENSE)Commit 3cfa898c51
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

まず skill のルートディレクトリを特定し、以降のすべてのコマンドは scripts/transcript.py を経由して実行する。

skills/video-transcript/SKILL.md
被触发时你必须先定位自己,跑这段:
ここで行っていること:skill が非標準パスにインストールされた場合の自己位置特定問題を解決する。

実行前に意図の分岐を行う:ダウンロードのみの場合は video-download へ切り替え、意図が不明な場合はまず確認する。

skills/video-transcript/SKILL.md
在跑任何下载/转录命令前,先判断用户要的是哪一种:
ここで行っていること:「ダウンロード」と「文字起こし」の2つのパスを分離し、誤作動を防止する。

初回実行時またはエラー発生時はまず --doctor でヘルスチェックを実行し、不足項目があれば install.sh の実行を促す。

skills/video-transcript/SKILL.md
第一次跑或者遇到报错时,先做体检:
ここで行っていること:文字起こし処理の前に依存関係や設定の問題をブロックして解決する。

headless ブラウザの検出を起動し、タイトル、再生時間、動画/音声の直リンクを取得して評価テーブルを出力する。

skills/video-transcript/SKILL.md
0. **探测** — 启动 headless 浏览器,拿标题、时长、视频/音频直链;打印 📊 评估表 + 预估耗时
ここで行っていること:ダウンロード前に検出を行い、併せてユーザーに待機時間の目安を提示する。

総再生時間が8分を超える場合、モデルによって要約されるのを防ぐため自動的に6分/セグメントに分割する。

skills/video-transcript/SKILL.md
2. **长视频切片** — 总时长 > 8min 自动切成 6min/段,避免被模型概括成摘要
ここで行っていること:分割処理により、長尺動画でも確実に逐字文字起こしを維持する。

ffmpeg を使用して動画を目標の 30MB まで圧縮し、再生時間に応じて解像度を自動選択する。

skills/video-transcript/SKILL.md
3. **压缩** — ffmpeg,目标 30MB;按时长自动选分辨率,一次到位
ここで行っていること:アップロードサイズを制御し、モデルの API 制限を満たす。

セグメントごとに Doubao 動画理解 API を呼び出し、厳密な逐字プロンプトを用いて書き起こす。

skills/video-transcript/SKILL.md
4. **转录** — 豆包视频理解 API,严格逐字 prompt(保留口语词、网络梗、停顿)
ここで行っていること:独立した ASR を使わず、モデルが音声を直接聴取して文字起こしを行う。

各セグメントの出力を統合し、セグメント先頭のタイムスタンプのズレを自動補正する。

skills/video-transcript/SKILL.md
5. **合并** — 长视频合并各段输出 + 自动调整段头时间戳偏移
ここで行っていること:分割して文字起こしされたテキストを1つの連続した逐字録に再結合する。

agent に評価テーブルをユーザーへ復唱させて待機時間の目安を与え、逐字録の全文を完全に表示させることを強制する。

skills/video-transcript/SKILL.md
**你必须立刻把它复述给用户**,告诉他:
ここで行っていること:出力規律を徹底し、「保存パスのみを通知する」という手抜き動作を防ぐ。

プラットフォームのフロントエンド改修による取得失敗を想定内とし、FALLBACK.md による手動フォールバックを用意する。

skills/video-transcript/SKILL.md
| 平台前端改版导致抓取失败 | 看 `$VT_HOME/FALLBACK.md` 走人工兜底 |
ここで行っていること:取得失敗時に対応可能な手動の回避ルートを確保する。

2コア機能

01マルチプラットフォーム動画ソース対応(Bilibili/Douyin/小紅書/YouTube/動画号/ローカル)
02headless 検出と評価テーブルの出力
03要約化を防ぐ長尺動画の自動セグメント分割
04ffmpeg 圧縮と解像度自動適応
05Doubao 動画理解 API による厳密な逐字文字起こし
06意味段落+段落レベルタイムスタンプの出力フォーマット
07stdout 直接出力+ディスク保存のデュアルチャネル
08doctor ヘルスチェックとトラブルシューティング手順
09WeChat動画号から video-download へのブリッジ連携

3外部依存関係

KindDependency / Endpoint
cliffmpeg / ffprobe
packageyt-dlp>=2024.3.10
packageplaywright>=1.40
api豆包 / 火山方舟视频理解 API
networkB站 / 抖音 / 小红书 / YouTube 等平台
clivideo-download(视频号桥接,可选依赖)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
隔離環境で実行、都度明示的な認可
管理者向け
厳格な認可、全量監査、コンプライアンス確認
判定根拠(ファイルパスと抜粋)
  • SKILL.md / 脚本参数: 自動検出の回避、ホストサンドボックスの無効化、または SSL 証明書検証のスキップを含む
  • scripts/: ローカルスクリプトまたはコマンドの実行: scripts/transcript.py(メインフロー)
  • 网络端点: 外部ネットワークアクセスの宣言: headless ブラウザで Bilibili/Douyin/小紅書/YouTube のページにアクセスし直リンクを取得
  • 本地工作目录: ファイルの読み書きと成果物の出力: $VT_HOME/.env(API Key、chmod 600)
監査ノート: 赤色判定:scripts/platform_extractor.py が Chromium 起動時に `args=["--disable-blink-features=AutomationControlled"],` を渡し、明示的に add_init_script で navigator の webdriver を undefined に設定している(ソースコードのコメント `# 反 webdriver 检测`、コード `Object.defineProperty(navigator, 'webdriver', { get: () => undefined });`)。これはプラットフォームの自動化検出を技術的に回避する行為に該当し、6段階評価基準(Red=保護の回避/アンチ自動化検出の回避。デフォルトパスかどうかにかかわらない)に基づき赤と判定される(notebooklm-skill、baoyu-post-to-x の先例と同様)。また、本 skill は .env の DOUBAO_API_KEY を読み取り、ユーザーの動画/音声コンテンツを Doubao バックエンドに送信して生成処理を行っている(橙色の特徴に該当)が、赤色が優先される。なお、この赤色判定は機能/ポリシーレベルの警告であり、悪意あるコードの混入を示すものではない(コードは可読であり、難読化やハードコードされたキーはなく、意図しない対象への外部送信も行われていない)。

5二重目の独立検証

  • [ok] 流程步骤完整性 — SKILL.md 阶段 0–5 与 README『架构』流程(探测→评估表→下载→切片→转录→合并→输出)一致。
  • [ok] 依赖声明 — requirements.txt 与 install.sh 的 pip / playwright 安装点一致。
  • [ok] 安装脚本性质 — bootstrap.sh 三档兜底(npx / git sparse-checkout / tarball)+ install.sh 均为用户主动运行的安装向导。
  • [ok] 反自动化证据 — 回源 scripts/platform_extractor.py 确认 --disable-blink-features=AutomationControlled 与隐藏 navigator.webdriver 的语句真实存在。
  • [ok] 凭证读取范围 — 仅读 $VT_HOME/.env 的 API Key,install.sh 写入后 chmod 600。
  • [ok] 外发对象 — 平台页与豆包 API 均为声明用途所需,未见向非预期第三方的回传。
  • [ok] 产物落盘 — .gitignore 屏蔽 .env 与 outputs/,逐字稿落 $VT_HOME/outputs/。
  • [ok] 档位复核 — 反自动化检测绕过硬证据 → red;同含凭据读取与外发特征,红档优先。

6結論

  • 幅広いマルチプラットフォーム対応:Bilibili/Douyin/小紅書/YouTube/WeChat動画号 + ローカルファイル。
  • 厳格な逐字規律:長尺動画の自動分割により要約を防ぎ、agent に対して全文をそのまま提示するよう強制。
  • 充実した導入とフォールバック:bootstrap.sh の3段階取得 + install.sh ウィザード + FALLBACK.md。
  • 最適な用途: 公開動画をタイムスタンプ付きの逐字録に変換したいコンテンツクリエイターや研究者。自身で Doubao API Key を用意でき、ffmpeg/Chromium のインストールを受け入れられるユーザー。
    不向きな用途: プラットフォームの規約遵守を重視し、自動検出回避の仕組みを一切受け入れないユーザー。Doubao API Key を提供できない、または動画コンテンツの外部送信を望まないユーザー。単語レベルのタイムスタンプや完全オフラインでの文字起こしを必要とする環境。
    Install Agent-Ready
    ① Verified Mirror 2026-10-10
    Option A · Direct DownloadDownload video-transcript.tar.gz
    sha256: abd43fa2c309a839…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 3cfa898c51.