affaan-m/ECC

videodb

ビデオとオーディオの表示、理解、アクション。表示:ローカルファイル、URL、RTSP/ライブストリーム、またはリアルタイムのデスクトップ録画からコンテンツを取得し、リアルタイムコンテキストと再生可能なストリームリンクを返す。理解:フレームを抽出し、ビジュアル/セマンティック/時間的インデックスを構築し、タイムスタンプと自動クリップでモーメントを検索する。アクション:トランスコードと正規化(コーデック、フレームレート、解像度、アスペクト比)、タイムライン編集(字幕、テキスト/画像オーバーレイ、ブランディング、オーディオオーバーレイ、吹き替え、翻訳)、メディアアセットの生成(画像、オーディオ、ビデオ)、ライブストリームまたはデスクトップキャプチャされたイベントのリアルタイムアラートを実行する。

80CollectingRuns scriptsNetwork access
See how to use itView GitHub source
npx skills add https://github.com/affaan-m/ECC --skill "docs/ja-JP/skills/videodb"
Automated source guide

Source checked Jul 28, 2026·Refresh due Oct 26, 2026

Reorganized from the pinned upstream SKILL.md

Turn videodb's source instructions into a guide you can follow

According to the pinned SKILL.md from affaan-m/ECC: ビデオ、ライブストリーム、デスクトップセッションのための知覚 + 記憶 + アクション。

npx skills add https://github.com/affaan-m/ECC --skill "docs/ja-JP/skills/videodb"
Check the pinned source

Best fit

  • ビデオとオーディオの表示、理解、アクション。表示:ローカルファイル、URL、RTSP/ライブストリーム、またはリアルタイムのデスクトップ録画からコンテンツを取得し、リアルタイムコンテキストと再生可能なストリームリンクを返す。理解:フレームを抽出し、ビジュアル/セマンティック/時間的インデックスを構築し、タイムスタンプと自動クリップでモーメントを検索する。アクション:トランスコードと正規化(コーデック、フレームレート、解像度、アスペクト比)、タイムライン編集(字幕、テキスト/画像オーバーレイ、ブランディング、オーディオオーバーレイ、吹き替え、翻訳)、メディアアセットの生成(画像、オーディオ、ビデオ)、ライブストリームまたはデスクトップキャプチャされたイベントのリアルタイムアラートを実行する。

Bring this context

  • A concrete task that matches the documented purpose of videodb.
  • The files, examples, or context the task depends on.
  • Your constraints, target environment, and definition of done.

Expected outputs

  • try: results = video.search("product demo") shots = results.getshots() streamurl = results.compile() except InvalidRequestError as e: if "No results found" in str(e): shots = [] else: raise python import re from videodb…
  • video.reframe(target="vertical", callbackurl="https://example.com/webhook")

Key source sections

Read videodb through these 5 source sections

Sections are extracted automatically from the pinned SKILL.md and link back to the source.

01

ユースケース

デスクトップセッションを開始/停止し、画面、マイク、システムオーディオをキャプチャする リアルタイムコンテキストをストリーミングし、セグメント化されたセッション記憶を保存する 言われた内容と画面上で起きていることに対してリアルタイムアラート/トリガーを実行する セッションサマリー、検索可能なタイムライン、再生可能な証拠リンクを生成する

SKILL.md · ユースケース
デスクトップセッションを開始/停止し、画面、マイク、システムオーディオをキャプチャするリアルタイムコンテキストをストリーミングし、セグメント化されたセッション記憶を保存する言われた内容と画面上で起きていることに対してリアルタイムアラート/トリガーを実行する
02

デスクトップ知覚

デスクトップセッションを開始/停止し、画面、マイク、システムオーディオをキャプチャする リアルタイムコンテキストをストリーミングし、セグメント化されたセッション記憶を保存する 言われた内容と画面上で起きていることに対してリアルタイムアラート/トリガーを実行する セッションサマリー、検索可能なタイムライン、再生可能な証拠リンクを生成する

SKILL.md · デスクトップ知覚
デスクトップセッションを開始/停止し、画面、マイク、システムオーディオをキャプチャするリアルタイムコンテキストをストリーミングし、セグメント化されたセッション記憶を保存する言われた内容と画面上で起きていることに対してリアルタイムアラート/トリガーを実行する
03

ビデオ取り込み + ストリーミング

ファイルまたはURLを取り込み、再生可能なウェブストリームリンクを返す トランスコード/正規化:コーデック、ビットレート、フレームレート、解像度、アスペクト比

SKILL.md · ビデオ取り込み + ストリーミング
ファイルまたはURLを取り込み、再生可能なウェブストリームリンクを返すトランスコード/正規化:コーデック、ビットレート、フレームレート、解像度、アスペクト比ファイルまたはURLを取り込み、再生可能なウェブストリームリンクを返す トランスコード/正規化:コーデック、ビットレート、フレームレート、解像度、アスペクト比
04

インデックス + 検索(タイムスタンプ + 証拠)

ビジュアル、音声、キーワードインデックスを構築する タイムスタンプと再生可能な証拠で正確なモーメントを検索して返す 検索結果から自動的にクリップを作成する

SKILL.md · インデックス + 検索(タイムスタンプ + 証拠)
ビジュアル、音声、キーワードインデックスを構築するタイムスタンプと再生可能な証拠で正確なモーメントを検索して返す検索結果から自動的にクリップを作成する
05

タイムライン編集 + 生成

字幕:生成、翻訳、バーンイン オーバーレイ:テキスト/画像/ブランドロゴ、動的キャプション オーディオ:バックグラウンドミュージック、ナレーション、吹き替え タイムライン操作によるプログラマティックなコンポジションとエクスポート

SKILL.md · タイムライン編集 + 生成
字幕:生成、翻訳、バーンインオーバーレイ:テキスト/画像/ブランドロゴ、動的キャプションオーディオ:バックグラウンドミュージック、ナレーション、吹き替え

SkillSignal prompt templates

Provide the task, context, and acceptance criteria

These prompts were written by SkillSignal from the source structure; they are not upstream text.

Task-start prompt

Confirm source fit, inputs, and outputs before acting.

Use videodb to help me with: [specific task]. Context: [files, data, or background]. Constraints: [environment, scope, and prohibited actions]. Before acting, check the pinned SKILL.md and explain which sections apply, what inputs are still missing, and what you will deliver.

Source-guided execution

Make the Agent explicitly follow the key extracted sections.

Apply the pinned videodb source to [task]. Pay particular attention to these source sections: “ユースケース”, “デスクトップ知覚”, “ビデオ取り込み + ストリーミング”, “インデックス + 検索(タイムスタンプ + 証拠)”, “タイムライン編集 + 生成”. Preserve the important decision at each step. Mark facts not covered by the source as “needs confirmation” instead of inventing them. Then verify the result against my acceptance criteria: [criteria].

Result-review prompt

Check omissions, permissions, and source drift before delivery.

Review the current videodb result: (1) does it satisfy the original task; (2) were any applicable steps or limits in the pinned SKILL.md missed; (3) did it perform any unauthorized file, command, network, or data action; and (4) which conclusions remain unverified? List issues first, then fix only what the source or user authorization supports.

Output checklist

Verify each item before delivery

The task matches the purpose documented in the SKILL.md.

The source section “ユースケース” has been checked.

The source section “デスクトップ知覚” has been checked.

The source section “ビデオ取り込み + ストリーミング” has been checked.

The source section “インデックス + 検索(タイムスタンプ + 証拠)” has been checked.

Inputs, constraints, and acceptance criteria are explicit.

Unverified facts, compatibility, and outcome claims are clearly marked.

Any file, command, network, or data action has been reviewed.

Choose a different workflow

When another Skill is the better fit

videodb

See, Understand, Act on video and audio. See- ingest from local files, URLs, RTSP/live feeds, or live record desktop; return realtime context and playable stream links. Understand- extract frames, build visual/semantic/temporal indexes, and search moments with timestamps and auto-clips. Act- transcode and normalize (codec, fps, resolution, aspect ratio), perform timeline edits (subtitles, text/image overlays, branding, audio overlays, dubbing, translation), generate media assets (image, audio, v

A separate implementation from affaan-m/ECC; compare its source, maintenance signals, and permission requirements.

Open source detail

videodb

视频与音频的查看、理解与行动。查看:从本地文件、URL、RTSP/直播源或实时录制桌面获取内容;返回实时上下文和可播放流链接。理解:提取帧,构建视觉/语义/时间索引,并通过时间戳和自动剪辑搜索片段。行动:转码和标准化(编解码器、帧率、分辨率、宽高比),执行时间线编辑(字幕、文本/图像叠加、品牌化、音频叠加、配音、翻译),生成媒体资源(图像、音频、视频),并为直播流或桌面捕获的事件创建实时警报。

A separate implementation from affaan-m/ECC; compare its source, maintenance signals, and permission requirements.

Open source detail

dask

Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.

A separate implementation from K-Dense-AI/scientific-agent-skills; compare its source, maintenance signals, and permission requirements.

Open source detail

FAQ

What does videodb do?

ビデオ、ライブストリーム、デスクトップセッションのための知覚 + 記憶 + アクション。

How do I start using videodb?

The catalog detected this source-specific install command: npx skills add https://github.com/affaan-m/ECC --skill "docs/ja-JP/skills/videodb". Inspect the command and pinned source before running it.

Which Agent platforms does it declare?

No dedicated Agent platform is declared in the pinned source record.

Repository stars
234,327
Repository forks
35,711
Quality
80/100
Source repository last pushed

Quality breakdown

Based on traceable docs and repository signals; stars are not treated as quality.

80/100
Documentation30/30
Specificity18/25
Maintenance20/20
Trust signals12/25

Compare before choosing

Related Agent Skills and source variants

These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.

videodb by affaan-m

See, Understand, Act on video and audio. See- ingest from local files, URLs, RTSP/live feeds, or live record desktop; return realtime context and playable stream links. Understand- extract frames, build visual/semantic/temporal indexes, and search moments with timestamps and auto-clips. Act- transcode and normalize (codec, fps, resolution, aspect ratio), perform timeline edits (subtitles, text/image overlays, branding, audio overlays, dubbing, translation), generate media assets (image, audio, v

videodb by affaan-m

视频与音频的查看、理解与行动。查看:从本地文件、URL、RTSP/直播源或实时录制桌面获取内容;返回实时上下文和可播放流链接。理解:提取帧,构建视觉/语义/时间索引,并通过时间戳和自动剪辑搜索片段。行动:转码和标准化(编解码器、帧率、分辨率、宽高比),执行时间线编辑(字幕、文本/图像叠加、品牌化、音频叠加、配音、翻译),生成媒体资源(图像、音频、视频),并为直播流或桌面捕获的事件创建实时警报。

dask by k-dense-ai

Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.

medchem by k-dense-ai

Medicinal chemistry filters for compound triage. Apply drug-likeness rules (Lipinski, Veber, CNS), structural alert catalogs (PAINS, NIBR, ChEMBL), complexity metrics, and the medchem query language for library filtering.

neurokit2 by k-dense-ai

Use NeuroKit2 to build or audit reproducible research workflows for physiological time-series preprocessing, event/interval analysis, multimodal alignment, variability, and complexity. Trigger when code imports neurokit2 or needs its current APIs, schemas, and method-aware validation—not for diagnosis or device validation.

View original Skill.mdThis page is parsed directly from the repository SKILL.md without editorial rewriting. Collected: Jul 28, 2026 · about 3 min

VideoDBスキル

ビデオ、ライブストリーム、デスクトップセッションのための知覚 + 記憶 + アクション。

ユースケース

デスクトップ知覚

  • デスクトップセッションを開始/停止し、画面、マイク、システムオーディオをキャプチャする
  • リアルタイムコンテキストをストリーミングし、セグメント化されたセッション記憶を保存する
  • 言われた内容と画面上で起きていることに対してリアルタイムアラート/トリガーを実行する
  • セッションサマリー、検索可能なタイムライン、再生可能な証拠リンクを生成する

ビデオ取り込み + ストリーミング

  • ファイルまたはURLを取り込み、再生可能なウェブストリームリンクを返す
  • トランスコード/正規化:コーデック、ビットレート、フレームレート、解像度、アスペクト比

インデックス + 検索(タイムスタンプ + 証拠)

  • ビジュアル音声キーワードインデックスを構築する
  • タイムスタンプ再生可能な証拠で正確なモーメントを検索して返す
  • 検索結果から自動的にクリップを作成する

タイムライン編集 + 生成

  • 字幕:生成翻訳バーンイン
  • オーバーレイ:テキスト/画像/ブランドロゴ、動的キャプション
  • オーディオ:バックグラウンドミュージックナレーション吹き替え
  • タイムライン操作によるプログラマティックなコンポジションとエクスポート

ライブストリーム(RTSP)+ 監視

  • RTSP/ライブストリームに接続する
  • リアルタイムのビジュアルと音声理解を実行し、監視ワークフロー向けにイベント/アラートを発する

仕組み

一般的な入力

  • ローカルファイルパス、公開URL、またはRTSP URL
  • デスクトップキャプチャリクエスト:開始 / 停止 / セッションのサマリー作成
  • 目的のアクション:理解コンテキストの取得、トランスコード仕様、インデックス仕様、検索クエリ、クリップ範囲、タイムライン編集、アラートルール

一般的な出力

  • ストリームURL
  • タイムスタンプ証拠リンク付きの検索結果
  • 生成されたアセット:字幕、オーディオ、画像、クリップ
  • ライブストリーム向けイベント/アラートペイロード
  • デスクトップセッションサマリーと記憶エントリ

Pythonコードの実行

VideoDBコードを実行する前に、プロジェクトディレクトリに移動して環境変数をロードする:

from dotenv import load_dotenv
load_dotenv(".env")

import videodb
conn = videodb.connect()

これにより以下から VIDEO_DB_API_KEY が読み込まれる:

  1. 環境変数(エクスポートされている場合)
  2. プロジェクトの現在のディレクトリにある .env ファイル

キーが欠けている場合、videodb.connect() は自動的に AuthenticationError を発生させる。

短いインラインコマンドで十分な場合はスクリプトファイルを書かない。

インラインPython (python -c "...") を書く場合は、常に適切にフォーマットされたコードを使用する——セミコロンで文を区切り、読みやすくする。約3文以上の場合はheredocを使用する:

python << 'EOF'
from dotenv import load_dotenv
load_dotenv(".env")

import videodb
conn = videodb.connect()
coll = conn.get_collection()
print(f"Videos: {len(coll.get_videos())}")
EOF

セットアップ

ユーザーが「videodbのセットアップ」などを要求した場合:

1. SDKのインストール

pip install "videodb[capture]" python-dotenv

Linuxで videodb[capture] が失敗する場合は、キャプチャ拡張なしでインストールする:

pip install videodb python-dotenv

2. APIキーの設定

ユーザーはいずれかの方法で VIDEO_DB_API_KEY を設定する必要がある:

  • ターミナルでエクスポート(Claudeを起動する前に):export VIDEO_DB_API_KEY=your-key
  • プロジェクトの .env ファイル:プロジェクトの .env ファイルに VIDEO_DB_API_KEY=your-key を保存する

APIキーを無料で取得するには console.videodb.io(クレジットカード不要で50回の無料アップロード)を訪問する。

APIキーを自分で読み取り、書き込み、または処理しない。常にユーザーが設定するようにする。

クイックリファレンス

メディアのアップロード

# URL
video = coll.upload(url="https://example.com/video.mp4")

# YouTube
video = coll.upload(url="https://www.youtube.com/watch?v=VIDEO_ID")

# Local file
video = coll.upload(file_path="/path/to/video.mp4")

転写 + 字幕

# force=True skips the error if the video is already indexed
video.index_spoken_words(force=True)
text = video.get_transcript_text()
stream_url = video.add_subtitle()

ビデオ内検索

from videodb.exceptions import InvalidRequestError

video.index_spoken_words(force=True)

# search() raises InvalidRequestError when no results are found.
# Always wrap in try/except and treat "No results found" as empty.
try:
    results = video.search("product demo")
    shots = results.get_shots()
    stream_url = results.compile()
except InvalidRequestError as e:
    if "No results found" in str(e):
        shots = []
    else:
        raise

シーン検索

import re
from videodb import SearchType, IndexType, SceneExtractionType
from videodb.exceptions import InvalidRequestError

# index_scenes() has no force parameter — it raises an error if a scene
# index already exists. Extract the existing index ID from the error.
try:
    scene_index_id = video.index_scenes(
        extraction_type=SceneExtractionType.shot_based,
        prompt="Describe the visual content in this scene.",
    )
except Exception as e:
    match = re.search(r"id\s+([a-f0-9]+)", str(e))
    if match:
        scene_index_id = match.group(1)
    else:
        raise

# Use score_threshold to filter low-relevance noise (recommended: 0.3+)
try:
    results = video.search(
        query="person writing on a whiteboard",
        search_type=SearchType.semantic,
        index_type=IndexType.scene,
        scene_index_id=scene_index_id,
        score_threshold=0.3,
    )
    shots = results.get_shots()
    stream_url = results.compile()
except InvalidRequestError as e:
    if "No results found" in str(e):
        shots = []
    else:
        raise

タイムライン編集

重要: タイムラインを構築する前に必ずタイムスタンプを検証する:

  • start は >= 0 でなければならない(負の値は静かに受け入れられるが、破損した出力を生成する)
  • startend より小さくなければならない
  • endvideo.length 以下でなければならない
from videodb.timeline import Timeline
from videodb.asset import VideoAsset, TextAsset, TextStyle

timeline = Timeline(conn)
timeline.add_inline(VideoAsset(asset_id=video.id, start=10, end=30))
timeline.add_overlay(0, TextAsset(text="The End", duration=3, style=TextStyle(fontsize=36)))
stream_url = timeline.generate_stream()

ビデオのトランスコード(解像度/品質変更)

from videodb import TranscodeMode, VideoConfig, AudioConfig

# Change resolution, quality, or aspect ratio server-side
job_id = conn.transcode(
    source="https://example.com/video.mp4",
    callback_url="https://example.com/webhook",
    mode=TranscodeMode.economy,
    video_config=VideoConfig(resolution=720, quality=23, aspect_ratio="16:9"),
    audio_config=AudioConfig(mute=False),
)

アスペクト比の調整(ソーシャルプラットフォーム向け)

警告: reframe() は低速なサーバーサイド操作。長いビデオでは数分かかる場合があり、タイムアウトする可能性がある。ベストプラクティス:

  • 可能な限り start/end を使用して短いセグメントに制限する
  • フルレングスビデオには非同期処理のために callback_url を使用する
  • まず Timeline でビデオをトリミングし、短い結果のアスペクト比を調整する
from videodb import ReframeMode

# Always prefer reframing a short segment:
reframed = video.reframe(start=0, end=60, target="vertical", mode=ReframeMode.smart)

# Async reframe for full-length videos (returns None, result via webhook):
video.reframe(target="vertical", callback_url="https://example.com/webhook")

# Presets: "vertical" (9:16), "square" (1:1), "landscape" (16:9)
reframed = video.reframe(start=0, end=60, target="square")

# Custom dimensions
reframed = video.reframe(start=0, end=60, target={"width": 1280, "height": 720})

生成メディア

image = coll.generate_image(
    prompt="a sunset over mountains",
    aspect_ratio="16:9",
)

エラーハンドリング

from videodb.exceptions import AuthenticationError, InvalidRequestError

try:
    conn = videodb.connect()
except AuthenticationError:
    print("Check your VIDEO_DB_API_KEY")

try:
    video = coll.upload(url="https://example.com/video.mp4")
except InvalidRequestError as e:
    print(f"Upload failed: {e}")

よくある問題

シナリオエラーメッセージ解決策
既にインデックスされたビデオのインデックス作成Spoken word index for video already existsvideo.index_spoken_words(force=True) を使用してインデックス済みをスキップ
シーンインデックスが既に存在Scene index with id XXXX already existsre.search(r"id\s+([a-f0-9]+)", str(e)) を使用してエラーから既存の scene_index_id を抽出
検索結果なしInvalidRequestError: No results found例外をキャッチして空の結果として扱う (shots = [])
アスペクト比調整タイムアウト長いビデオで無期限にブロックstart/end でセグメントを制限するか、非同期処理のために callback_url を渡す
タイムライン上の負のタイムスタンプ破損したストリームを静かに生成VideoAsset を作成する前に常に start >= 0 を検証する
generate_video() / create_collection() の失敗Operation not allowed または maximum limitプラン制限された機能——ユーザーにプラン制限を通知する

標準的なプロンプト

  • 「デスクトップキャプチャを開始し、パスワードフィールドが表示されたときにアラートを発する。」
  • 「セッションを記録して終了時に実行可能なサマリーを生成する。」
  • 「このファイルを取り込んで再生可能なストリームリンクを返す。」
  • 「このフォルダをインデックス化して、人物がいるすべてのシーンを見つけ、タイムスタンプを返す。」
  • 「字幕を生成してバーンインし、軽いバックグラウンドミュージックを追加する。」
  • 「このRTSP URLに接続して、誰かがエリアに入ったときにアラートを発する。」

スクリーンレコーディング(デスクトップキャプチャ)

ws_listener.py を使用して録画セッション中にWebSocketイベントをキャプチャする。デスクトップキャプチャはmacOSのみサポート。

クイックスタート

  1. 状態ディレクトリを選択STATE_DIR="${VIDEODB_EVENTS_DIR:-$HOME/.local/state/videodb}"
  2. リスナーを起動VIDEODB_EVENTS_DIR="$STATE_DIR" python scripts/ws_listener.py --clear "$STATE_DIR" &
  3. WebSocket IDを取得cat "$STATE_DIR/videodb_ws_id"
  4. キャプチャコードを実行(完全なワークフローはreference/capture.mdを参照)
  5. イベントの書き込み先$STATE_DIR/videodb_events.jsonl

新しいキャプチャ実行を開始するときは常に --clear を使用して、古い転写とビジュアルイベントが新しいセッションに漏れないようにする。

イベントのクエリ

import json
import os
import time
from pathlib import Path

events_dir = Path(os.environ.get("VIDEODB_EVENTS_DIR", Path.home() / ".local" / "state" / "videodb"))
events_file = events_dir / "videodb_events.jsonl"
events = []

if events_file.exists():
    with events_file.open(encoding="utf-8") as handle:
        for line in handle:
            try:
                events.append(json.loads(line))
            except json.JSONDecodeError:
                continue

transcripts = [e["data"]["text"] for e in events if e.get("channel") == "transcript"]
cutoff = time.time() - 300
recent_visual = [
    e for e in events
    if e.get("channel") == "visual_index" and e["unix_ts"] > cutoff
]

追加ドキュメント

参考ドキュメントはこのSKILL.mdファイルと同じディレクトリの reference/ ディレクトリにある。必要に応じてGlobツールを使用して見つける。

VideoDBがその操作をサポートする場合、ffmpeg、moviepy、またはローカルエンコーディングツールを使用しない。 以下のすべての操作はVideoDBによってサーバーサイドで処理される——トリミング、クリップのマージ、オーディオや音楽のオーバーレイ、字幕の追加、テキスト/画像オーバーレイ、トランスコード、解像度変更、アスペクト比変換、プラットフォーム要件へのリサイズ、転写、メディア生成。reference/editor.mdの「制限」セクションに記載されている操作(トランジション、速度変更、クロップ/ズーム、カラーグレーディング、音量ミキシング)の場合のみローカルツールにフォールバックする。

何を使うべきか

問題VideoDBソリューション
プラットフォームがビデオのアスペクト比または解像度を拒否VideoConfig を使用した video.reframe() または conn.transcode()
Twitter/Instagram/TikTok向けにビデオをリサイズする必要があるvideo.reframe(target="vertical") または target="square"
解像度を変更する必要がある(例:1080p → 720p)VideoConfig(resolution=720) を使用した conn.transcode()
ビデオにオーディオ/音楽をオーバーレイする必要があるTimelineAudioAsset を使用
字幕を追加する必要があるvideo.add_subtitle() または CaptionAsset
クリップをマージ/トリミングする必要があるTimelineVideoAsset を使用
ナレーション、音楽、効果音を生成する必要があるcoll.generate_voice()generate_music()generate_sound_effect()

ソース

このスキルの参考資料は skills/videodb/reference/ の下でローカルに提供されている。 実行時に外部リポジトリリンクをたどるのではなく、上記のローカルコピーを使用する。

メンテナー: VideoDB

Source repo
affaan-m/ECC
Skill path
docs/ja-JP/skills/videodb/SKILL.md
Commit SHA
4e973d3eaf92
Repository license
MIT
Data collected