good-TTvideo2text について
DouyinとTikTokの動画から音声を取り出し、ASRサービスでタイムスタンプ付きのテキストに変換するスキルです。Web UIとコマンドラインスクリプトに対応し、GoodableプラットフォームのASR連携が必要です。
主な機能
- 01DouyinとTikTokの動画リンク解析
- 02文字起こし用の音声抽出
- 03タイムスタンプ付きテキスト生成
- 04Web UIでの文字起こし管理
- 05コマンドラインからの文字起こし
活用シーン
- 01共有されたDouyin動画の文字起こし
- 02スクリプトでTikTokリンクを処理
- 03UIでタイムスタンプ付き結果を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ imgoodbai/ goodable --skill good-ttvideo2textインストール後、Claude Code で/good-ttvideo2textを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignore.env.examplerequirements.txtPLAN.mdtemplate.jsontest_extract_music.pyapp/main.py__init__.pydownloads/.gitkeepscripts/transcribe.pystatic/index.html詳細
good-TTvideo2text
Douyin/TikTok 動画から音声を抽出し、ASR サービスを使ってテキストに文字起こしします。
タスクの目的
Douyin/TikTok 動画の音声を、タイムスタンプ付きのテキストに変換します。対話型 UI とコマンドラインのワークフローの両方に対応しています。
機能: 動画の解析、音声の抽出、ASR による文字起こし、タイムスタンプの生成
トリガー: ユーザーが Douyin/TikTok の URL を提示し、文字起こしを依頼したとき
使用モード
モード 1:Web UI(推奨)
文字起こしを管理するためのビジュアルインターフェースです。
# Install dependencies
cd skills/good-TTvideo2text
pip install -r requirements.txt
# Start service (default port 8000)
python app/main.py
# Browser access
http://localhost:8000
機能:
- 動画の URL を貼り付けて、すぐに文字起こしを開始
- タイムスタンプ付きの結果を表示
- アクセス制限のある動画向けの Cookie 管理
- リアルタイムの進行状況を表示
モード 2:スクリプト(コマンドライン)
自動化や AI ワークフローへの統合に適しています。
# Basic usage
python scripts/transcribe.py "https://v.douyin.com/xxx"
# Extract URL from share text
python scripts/transcribe.py "7.47 复制打开抖音,看看【用户名】的作品 https://v.douyin.com/xxx"
# JSON output
python scripts/transcribe.py "https://v.douyin.com/xxx" --output json
# Text output (default)
python scripts/transcribe.py "https://v.douyin.com/xxx" --output text
出力形式(テキスト):
=== Video Info ===
Title: Video title
Author: Author name
Duration: 30s
=== Transcription ===
Full Text:
Complete transcription text...
Sentences with Timestamps:
[00:00-00:03] First sentence
[00:03-00:06] Second sentence
出力形式(JSON):
{
"success": true,
"video_info": {
"title": "Video title",
"author": "Author name",
"duration": 30,
"create_time": 1234567890
},
"transcription": {
"text": "Complete transcription...",
"sentences": [
{
"start_ms": 0,
"end_ms": 3000,
"text": "First sentence"
}
]
}
}
前提条件
依存関係:
- fastapi>=0.120.3, uvicorn>=0.35.0, httpx>=0.28.1
- TikTokDownloader の依存関係(requirements.txt を参照)
ASR の設定:
- 環境変数は Goodable プラットフォームによって自動的に注入されます
GOODABLE_ASR_SUBMIT_URL- ASR タスクの送信先エンドポイントGOODABLE_ASR_QUERY_URL_TEMPLATE- ASR 結果の問い合わせ先エンドポイント({task_id} プレースホルダーを含む)
Cookie の設定(任意):
- 動画によってはログイン Cookie が必要です
- Web UI の Settings から設定するか、
TikTokDownloader/settings.jsonを編集してください - Cookie の形式:Douyin の Web Cookie 文字列
標準的なワークフロー(AI による使用)
ユーザーが URL を提示した場合
-
入力から URL を抽出します:
- ユーザーは URL を直接提示する場合と、URL を含む共有テキストを提示する場合があります
- 正規表現を使って実際の動画 URL を抽出します
-
文字起こしスクリプトを呼び出します:
python scripts/transcribe.py "USER_PROVIDED_TEXT" -
結果を処理します:
- 成功:文字起こしテキストとタイムスタンプを提示します
- エラー:エラーメッセージを確認してトラブルシューティングを行います
よくあるエラーへの対処
| エラー | 原因 | 解決策 |
|---|---|---|
| 無効な動画 URL | URL の形式が正しくありません | 有効な Douyin/TikTok URL を提示するようユーザーに依頼します |
| 動画が見つかりません | 動画が削除されたか、ログインが必要です | 動画を確認するか、Cookie を提示するようユーザーに依頼します |
| 音声が見つかりません | 動画に BGM がありません | この動画には音声トラックがないことをユーザーに伝えます |
| ASR が設定されていません | 環境変数がありません | Goodable プラットフォーム経由で実行します(環境変数は自動的に注入されます) |
| ASR がタイムアウトしました | 音声が長いか、サービスの応答が遅れています | 再試行するか、進行状況を確認できる Web UI を使います |
リソース一覧
app/main.py- FastAPI アプリケーションのエントリーポイントscripts/transcribe.py- コマンドライン文字起こしスクリプトTikTokDownloader/- 動画解析ライブラリ(ソースコード)TikTokDownloader/settings.json- Cookie と設定static/index.html- Web UI インターフェースrequirements.txt- Python の依存関係downloads/- 一時ファイル用ディレクトリ
重要な注意事項
- Cookie の要件: 公開動画は Cookie なしで利用できますが、アクセス制限のある動画にはログイン Cookie が必要です
- ASR プラットフォーム: このスキルには、Goodable プラットフォームの ASR サービスとの統合が必要です
- 対応 URL 形式:
- 短縮 URL:
https://v.douyin.com/xxx - 完全 URL:
https://www.douyin.com/video/1234567890 - TikTok:
https://vm.tiktok.com/xxx、https://www.tiktok.com/@user/video/xxx
- 短縮 URL:
- 音声の抽出: BGM の URL を直接抽出します(ダウンロードは不要です)
- ASR の処理時間: 音声の長さによりますが、通常 5~30 秒です
AI の使用例
User: "帮我转写这个抖音视频 7.47 复制打开抖音 https://v.douyin.com/abc123"
AI: Let me transcribe this video for you.
[Calls transcribe.py script with the provided text]
Based on the transcription:
Video: "视频标题"
Author: 作者名
Transcription:
[00:00-00:03] 第一句话内容
[00:03-00:08] 第二句话内容
...
Full text:
完整的转写文本内容...
コメント
Markdown 対応