v0.2.1 // Chrome Extension + Rust Receiver
GrabDuct Logo

GrabDuct

Grab it. Duct it. VJ it.

ブラウザタブの映像をキャプチャし、Spout / Syphon 経由で VJソフトウェアにGPUテクスチャとして送信。ダクトテープのごとく、ブラウザとVJソフトを雑に、でも確実につなぎます。

grabduct

$ grabduct --status

Player 1 キャプチャ中 — 1920x1080

Player 2 キャプチャ中 — 1280x720

Player 3 待機中

Player 4 待機中

$ Spout出力: 2 active ⚡ // VJソフトへ映像送信中

scroll

// features

ダクトテープのようにシンプル
GPUテクスチャのように高速

📹captureStream()

タブ映像キャプチャ

動画が存在するタブで、映像を直接キャプチャ。video要素の自動検出で、難しい設定は不要。テープを貼るように簡単。

Spout / Syphon

GPU テクスチャ出力

Spout (Windows) / Syphon (macOS) 経由でVJソフトにGPUテクスチャとして直接送信。低遅延、低CPU負荷。

🎬Multi-Player

最大4ch同時送信

複数のタブを個別のプレイヤーにアサインして同時送信。VJミキサーに複数ソースを入力できます。

🔄Auto-Recapture

自動再キャプチャ

タブ内で別の映像コンテンツに移動しても自動で再キャプチャ。VJ中にいちいち操作する必要なし。

💻HW Accelerated

ハードウェアデコード

D3D11 (Windows) / VideoToolbox (macOS) によるHWデコードで、CPUに優しい映像処理を実現。

🔒localhost only

完全ローカル通信

映像データは一切外部に送信されません。WebRTCはlocalhost上で完結。あなたの映像はあなたのマシンの中だけ。

// components

2つのコンポーネント

GrabDuctはChrome拡張機能とレシーバーアプリの連携で動作します。

🧩

Chrome 拡張機能

送信側 // Sender

ブラウザ上で動作し、動画が存在するタブから映像をキャプチャします。キャプチャした映像はWebRTC経由でレシーバーアプリにリアルタイム送信されます。

  • タブ内の映像を自動検出してキャプチャ
  • 最大4タブを個別のプレイヤーに割り当て
  • タブ内で別の映像に遷移しても自動で再キャプチャ
  • ポップアップUIからワンクリックで操作
📤

レシーバーアプリ

受信側 // Receiver

Rust製のデスクトップアプリケーション。Chrome拡張機能から受け取った映像をハードウェアデコードし、Spout/Syphonテクスチャとして出力します。

  • WebRTCで映像を受信し、GPUでデコード
  • Spout (Windows) / Syphon (macOS) でVJソフトに出力
  • システムトレイに常駐し、バックグラウンドで動作
  • Discord認証とプレイヤー設定を管理

* 両コンポーネントは localhost:9876 で通信します。映像データは外部に一切送信されません。

// how it works

仕組みは3ステップ

パイプラインは自動で構築されます。あなたはタブを選ぶだけ。

01

Grab

動画が存在するタブでGrabDuct拡張機能のアイコンをクリック。プレイヤースロットを選んでタブを割り当てるだけ。映像は自動でキャプチャされます。

02

Duct

WebRTC経由で映像がレシーバーアプリに送信されます。ハードウェアデコード後、Spout/Syphonテクスチャとして出力。すべてlocalhost上で完結。

03

VJ it.

VJソフト (Resolume, OBS, VDMX等) で "GrabDuct Player 1~4" がSpout/Syphonソースとして自動で認識されます。あとは自由にミックス。

// plans

Free or Supporter

基本機能はすべて無料で利用できます。

Free

¥0/ forever

Discordサーバー参加で利用可能。基本機能はすべて使えます。

  • 同時プレイヤー数: 2
  • 最大解像度: 720p (1280x720)
  • 自動再キャプチャ
  • HWデコード
  • Spout / Syphon 出力
Discord に参加して始める
Supporter

Discord サポーターロールで有効化

気が向いたらぜひ。4K出力と4プレイヤー同時送信が解放されます。

  • 同時プレイヤー数: 4
  • 最大解像度: 4K (3840x2160)
  • 全解像度プリセット (16:9 / 4:3 / 1:1 / カスタム)
  • Free版のすべての機能
  • 開発者のモチベーション +100
Discord でサポーターになる

* GrabDuctの利用にはKonaLab Discordサーバーへの参加が必要です。認証はDiscord OAuth2経由で行われます。 メンバーシップは30日ごとに自動で再確認されます。

// setup

セットアップガイド

4ステップで映像ルーティング開始。所要時間: コーヒーを淹れるより短い。

01

レシーバーアプリをインストール

GitHub Releasesからインストーラーをダウンロードして実行します。GStreamerランタイムは同梱されているので別途インストールは不要です。

Windows: GrabDuctReceiverSetup.exemacOS: GrabDuctReceiver.dmg
02

Chrome拡張機能をインストール

配布されたZIPを展開し、Chromeの拡張機能ページ (chrome://extensions) でデベロッパーモードを有効にして読み込みます。

chrome

1. chrome://extensions を開く

2. デベロッパーモード: ON

3. "パッケージ化されていない拡張機能を読み込む"

4. 展開したフォルダを選択

03

Discord認証

レシーバーアプリを起動し、"Discordでログイン" をクリック。KonaLab Discordサーバーへの参加と認証が完了すると、GrabDuctが利用可能になります。認証はOAuth2 PKCEで安全に処理されます。

04

映像をルーティング

動画が存在するタブでGrabDuct拡張機能アイコンをクリックし、プレイヤースロットを選択。VJソフトウェアで "GrabDuct Player 1~4" がSpout/Syphonソースとして認識されます。

// system requirements

💻 Windows

  • Windows 10 / 11
  • Chrome / Chromium 116+
  • Direct3D 11 対応GPU
  • Spout対応VJソフト

 macOS

  • macOS 13 (Ventura) 以上
  • Chrome / Chromium 116+
  • Metal 対応GPU
  • Syphon対応VJソフト

⚠️ 制約事項

  • 映像のみ対応(音声キャプチャは非対応)
  • DRM保護コンテンツは captureStream() でのキャプチャ不可(tabCaptureへ自動フォールバック)
  • ローカルネットワーク通信のみ(外部サーバーは不使用)

// vj software

VJソフトでの使い方

Resolume Arena / Avenue

Sources > Spout (Win) / Syphon (Mac) > GrabDuct Player N

OBS Studio

ソース追加 > Spout2 Capture (Win) / Syphon Client (Mac) > GrabDuct Player N

VDMX / MadMapper / その他

Spout/Syphon入力対応ソフトなら、ソース一覧に自動表示

出力名は固定: GrabDuct Player 1 ~ GrabDuct Player 4

// 免責事項 & ご利用にあたって

本ソフトウェア(GrabDuct)は、現状有姿(AS IS)で提供されます。開発者は、本ソフトウェアの利用により生じたいかなる損害(直接的、間接的、偶発的、特別、または結果的損害を含みますが、これに限定されません)についても一切の責任を負いません。

動画が存在するウェブサイトでGrabDuctを利用する場合は、当該サイトの利用規約を必ずご確認のうえ、自己の責任において利用してください。GrabDuctの利用に起因する利用規約違反やその他の問題について、開発者は一切の責任を負いません。

本ソフトウェアは個人開発のプロジェクトであり、予告なく開発が停止・中断される可能性があります。継続的なアップデートやサポートを保証するものではありません。

GrabDuctが処理する映像データはすべてローカルマシン上で完結し、外部サーバーに送信されることはありません。ただし、Discord認証にはインターネット接続が必要です。