bilibili-analyzer
bilibiliの動画を自動で分析し、映像をダウンロードしてフレーム単位に分解した上で、AIが内容を解析し、詳細な専門ドキュメントや実践チュートリアルを生成します。
description の原文を見る
自动分析B站视频内容,下载视频并拆解成帧图片,使用AI分析并生成详细的专题文档或实操教程。
SKILL.md 本文
Bilibili Video Analyzer
Description
B站動画コンテンツ分析ツール。動画URLを提供するだけで、自動的に動画をダウンロード、フレーム画像に分解し、その後AI分析を使用して、最終的に高品質なテーマドキュメントまたは実操教程を生成します。
コア機能:
- シンプルなタイムラインの記録ではなく、完全に再編成・整理した1つのドキュメント
- 実操系動画 → 直接使用可能な操作教程を生成
- 知識系動画 → 構造化されたテーマドキュメントを生成
- レポート内に主要なスクリーンショットを挿入、
形式を使用
Source & Documentation
| ツール | 用途 | ドキュメント |
|---|---|---|
| FFmpeg | 動画フレーム抽出 | 公式サイト / ドキュメント |
| Bilibili API | 動画ダウンロード | APIドキュメント |
Installation
1. .NET 10 SDKのインストール
スクリプトはNET 10単一ファイル実行機能を使用するため、.NET 10 SDKのインストールが必要です。
ダウンロード: https://dotnet.microsoft.com/download/dotnet/10.0
インストール確認:
dotnet --version
2. FFmpegのインストール
Windows:
# Chocolatey
choco install ffmpeg
# または Scoop
scoop install ffmpeg
# または手動ダウンロード: https://ffmpeg.org/download.html
macOS:
brew install ffmpeg
Linux:
# Ubuntu/Debian
sudo apt install ffmpeg
# CentOS/RHEL
sudo yum install ffmpeg
インストール確認:
ffmpeg -version
Trigger
/bilibili-analyzerコマンド- ユーザーがB站動画の分析をリクエスト
- ユーザーがB站動画リンクを提供して分析をリクエスト
Provided Script
このスキルは scripts/prepare.cs スクリプトを提供しており、動画ダウンロードとフレーム画像抽出に使用できます。
スクリプト位置: skills/tools/bilibili-analyzer/scripts/prepare.cs
実行方法: .NET 10単一ファイル実行機能を使用
使用方法
# 基本的な使用法
dotnet run scripts/prepare.cs "<動画URL>" -o <出力ディレクトリ>
# 例
dotnet run scripts/prepare.cs "https://www.bilibili.com/video/BV1xx411c7mD" -o ./output
# 長動画(フレームレート低下)
dotnet run scripts/prepare.cs "https://www.bilibili.com/video/BV1xx411c7mD" -o ./output --fps 0.5
パラメータ説明
| パラメータ | 説明 | デフォルト値 |
|---|---|---|
url | B站動画URL(必須) | - |
-o, --output | 出力ディレクトリ | 現在のディレクトリ |
--fps | 1秒あたりのフレーム抽出数 | 1.0 |
--similarity | 相似度閾値(0-1)、この値を超える隣接フレームは重複削除されます | 0.80 |
--no-dedup | 相似フレーム重複削除を無効化 | false |
--video-only | 動画のみをダウンロード、フレーム抽出なし | false |
--frames-only | フレームのみを抽出(既にvideo.mp4がある場合) | false |
相似フレーム重複削除
スクリプトは自動的に隣接フレームの相似度を検出し、閾値(デフォルト80%)を超える重複フレームを削除します:
- ffmpegのSSIM/PSNRアルゴリズムを使用して相似度を計算
- 隣接フレームのみ比較、クロスフレーム比較なし
- 重複削除後、自動的に再編号(frame_0001.jpg, frame_0002.jpg, ...)
--similarity 0.85で閾値を調整可能--no-dedupで重複削除を無効化可能
出力構造
<出力ディレクトリ>/
├── video.mp4 # ダウンロード済み動画ファイル
└── images/ # フレーム画像ディレクトリ
├── frame_0001.jpg
├── frame_0002.jpg
├── frame_0003.jpg
└── ...
Workflow (Prompt)
あなたは動画コンテンツ分析アシスタントです。ユーザーがB站動画リンクを提供する場合、以下の手順を実行してください:
Step 1: 動画をダウンロードしてフレーム分割
提供されたスクリプトを使用して動画をダウンロードしてフレーム画像に分割します:
dotnet run skills/tools/bilibili-analyzer/scripts/prepare.cs "<動画URL>" -o <出力ディレクトリ>
注意事項:
- 短動画(<10分): デフォルト
--fps 1を使用 - 中程度の動画(10-30分):
--fps 0.5を使用 - 長動画(>30分):
--fps 0.2を使用
Step 2: フレーム画像を分析
タスクツールを使用して、images/ ディレクトリ内の画像をバッチで並列分析します。
バッチ分割戦略(総画像数に基づいて動的に計算):
| 総画像数 | バッチ数 | 1バッチあたりの画像数 |
|---|---|---|
| 1-30 | 1バッチ | すべて |
| 31-60 | 2バッチ | 約15-30枚/バッチ |
| 61-120 | 3バッチ | 約20-40枚/バッチ |
| 121-200 | 4バッチ | 約30-50枚/バッチ |
| 200+ | 5バッチ | 平均分配 |
計算式:
総画像数 <= 30: 1バッチ
総画像数 <= 60: 2バッチ
総画像数 <= 120: 3バッチ
総画像数 <= 200: 4バッチ
総画像数 > 200: 5バッチ
1バッチあたりの画像数 = 総画像数 / バッチ数(切り上げ)
例:85枚の画像がある場合 → 3バッチに分割
タスク1: frame_0001.jpg~frame_0029.jpg を分析(29枚)
タスク2: frame_0030.jpg~frame_0058.jpg を分析(29枚)
タスク3: frame_0059.jpg~frame_0085.jpg を分析(27枚)
タスクプロンプトテンプレート:
<出力ディレクトリ>/images/ ディレクトリの frame_0001.jpg から frame_0020.jpg(全20枚の画像)を読み込んで分析してください。
【重要な要件】
あなたの応答は、これらの画像コンテンツの【完全で詳細なレポート】である必要があります。情報の省略は避けてください。
各画像について、詳細に記録してください:
1. **フレーム番号**: frame_xxxx.jpg
2. **シーンタイプ**: コードエディタ/ターミナル/ブラウザ/PowerPoint/ダイアログ/その他
3. **インターフェースコンテンツ**:
- ウィンドウタイトル、メニュー、ボタンなどのUI要素
- 現在開かれているファイル/ページ
4. **テキストコンテンツ**:
- スクリーン上のすべてのテキストの完全な転記
- コードコンテンツ(完全にコピー、フォーマット保持)
- ターミナルコマンドと出力
- コメントと説明テキスト
5. **操作アクション**:
- マウス位置、クリック対象
- 実行中の操作
6. **キー情報**:
- 重要な設定項目
- 重要なステップの説明
- エラーメッセージまたは警告
【出力形式】
## frame_0001.jpg
- シーン: [シーンタイプ]
- コンテンツ: [詳細説明]
- テキスト/コード:
[完全なテキストまたはコードコンテンツ]
- 操作: [実行中の操作]
- ポイント: [キー情報]
## frame_0002.jpg
...
【注意】
- 画像を省略しないでください
- コードとテキストは完全に転記してください
- 情報は詳しいほど良いです
分析ポイント:
- すべてのテキストとコードコンテンツを完全に転記
- インターフェース要素と操作ステップを詳細に説明
- 各画像のキー情報を記録
- 重要なスクリーンショットフレーム番号に注釈を付ける(例:frame_0042.jpg)
Step 3: ドキュメントを生成
動画タイプに基づいて、分析結果を再編成・整理して ビデオ分析.md に生成します:
動画タイプの判定:
- 実操系: プログラミング教程、ソフトウェア操作、設定デモなど
- 知識系: 概念説明、原理分析、経験共有など
【重要】画像とコンテンツは厳密に対応する必要があります:
間違い例 ❌:
### Node.jsのインストール
まずNode.jsをダウンロード...
 ← 画像は他のコンテンツかもしれません
正しい例 ✅:
### Node.jsのインストール
まずNode.jsをダウンロード...
 ← 画像は実際にダウンロードページです
ドキュメント生成の正しい流程:
-
まずすべてのタスク返却の分析結果を整理
- すべてのフレームの分析コンテンツを汇总
- 「フレーム番号 → コンテンツ」の対応関係を確立
-
コンテンツをテーマ別に再編成(時系列順ではなく)
- 関連コンテンツを同じセクションに分類
- 各セクションがどのフレームの情報が必要かを確認
-
画像を挿入するときは必ず確認
- 現在のコンテンツと直接関連がある画像のみを挿入
- 画像説明は画像の実際のコンテンツを正確に反映
- 形式を使用:

-
コードは画像内の実際のコードから取得
- 自分でコードを作成しないでください
- コードブロック注釈の出典:
<!-- frame_0025から -->
重要な原則:
- 画像とテキストの対応 - 各画像はそのコンテキストのテキストと一致する必要があります
- 時系列流水録にしない - コンテンツを再編成して、記事を書くように
- 構造が明確 - セクション分割と論理的順序がある
- コードは真実 - 画像に出現するコードのみを使用、作成しないでください
- 独立して読める - 動画を見なくてもすべて理解できる
Output Format
実操教程系
# {教程テーマ}
## 概要
{教程の目的}
{前提条件と要件}
## 環境準備
{インストール必要なソフトウェア}
{設定要件}
## 操作ステップ
### 1. {ステップタイトル}
{詳細説明、コンテンツは下の画像と一致する必要があります}

<!-- コードは frame_xxxx から -->
```コードブロック```
### 2. {ステップタイトル}
{詳細説明}

...
## 完全なコード
<!-- frame_xxxx, frame_xxxx, frame_xxxx から汇总 -->
{すべてのコードスニペットを汇总し、出典フレーム番号に注釈を付ける}
## よくある質問
{発生する可能性のある問題と解決方法}
## 要約
{コア要点の回顧}
{拡張学習の提案}
知識ドキュメント系
# {テーマ}
## 概要
{テーマの背景紹介}
{なぜ重要か}
## {セクション1タイトル}
{コンテンツ、配図と一致する必要があります}

## {セクション2タイトル}
{コンテンツ}

## コア要点
- ポイント1
- ポイント2
- ポイント3
## さらに読む
{関連リソースと提案}
画像挿入規範
| ルール | 説明 |
|---|---|
| フレーム番号は必須 |  |
| 説明は正確に | 画像の実際のコンテンツを説明し、期待値ではなく |
| コンテンツは一致 | 画像の上下のテキストは画像の内容と関連している必要があります |
| コード出典を標注 | <!-- コードは frame_0025 から --> |
| むやみに画像を入れない | 適切な画像がなければ入れず、無理に配置しないでください |
API Reference
Bilibili API
スクリプトはBilibili公式APIを使用して動画をダウンロードします:
# 動画情報を取得
GET https://api.bilibili.com/x/web-interface/view?bvid=BV1xx411c7mD
# 再生アドレスを取得
GET https://api.bilibili.com/x/player/playurl?bvid=BV1xx411c7mD&cid={cid}&qn=80&fnval=1
APIドキュメント: https://github.com/SocialSisterYi/bilibili-API-collect
FFmpegフレーム抽出コマンド
# 1秒あたり1フレーム
ffmpeg -i video.mp4 -vf "fps=1" -q:v 2 images/frame_%04d.jpg
# 1秒あたり0.5フレーム(2秒に1フレーム)
ffmpeg -i video.mp4 -vf "fps=0.5" -q:v 2 images/frame_%04d.jpg
# 指定時間範囲
ffmpeg -i video.mp4 -ss 00:01:00 -to 00:05:00 -vf "fps=1" -q:v 2 images/frame_%04d.jpg
# キーフレームを抽出(シーン変化)
ffmpeg -i video.mp4 -vf "select='gt(scene,0.3)'" -vsync vfr -q:v 2 images/frame_%04d.jpg
詳しいオプション: https://ffmpeg.org/ffmpeg.html
Examples
例1: プログラミング教程の分析
# 1. ダウンロードしてフレーム分割
dotnet run scripts/prepare.cs "https://www.bilibili.com/video/BV1xx411c7mD" -o ./react-tutorial
# 2. 画像を分析(タスクツールを使用)
# 3. react-tutorial/ビデオ分析.md を生成
例2: 長動画の分析
# フレームレートを低下させ、画像数を削減
dotnet run scripts/prepare.cs "https://www.bilibili.com/video/BV1xx411c7mD" -o ./long-video --fps 0.2
例3: 動画のみをダウンロード
dotnet run scripts/prepare.cs "https://www.bilibili.com/video/BV1xx411c7mD" -o ./output --video-only
Quality Checklist
ドキュメント生成前に、以下の要件を項目ごと確認してください:
コンテンツ品質
- コンテンツが再編成され、時系列流水録ではない
- セクション構造が明確で、論理的順序がある
- 動画を見なくてもすべてのコンテンツを理解できる
- 環境準備/前提条件の説明が含まれている
- 要約とコア要点が含まれている
画像とテキストの対応(重要!)
- 各画像にフレーム番号が標注されている:
 - 画像説明が画像の実際のコンテンツを正確に反映している
- 画像の上下のテキストが画像のコンテンツと直接関連している
- 関連性のない画像が無作為に挿入されていない
- コードブロックに出典フレーム番号が標注されている:
<!-- frame_xxxx から -->
コード品質
- コードは画像内の実際のコードから取得されており、作成されていない
- コードスニペットは完全で、直接コピーして使用できる
- 完全なコードセクションですべてのコードを汇总し、出典を標注している
Tags
bilibili, video-analysis, ai, frame-extraction, markdown, tutorial, ffmpeg, dotnet
Compatibility
- Codex: Yes
- Claude Code: Yes
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- aidotnet
- リポジトリ
- aidotnet/moyucode
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/aidotnet/moyucode / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。