| # Authrix Browser Extension |
|
|
| Detect deepfake videos on any webpage β no download required. |
|
|
| ## Install (Chrome / Edge / Brave) |
|
|
| 1. Open `chrome://extensions` |
| 2. Enable **Developer Mode** (top-right toggle) |
| 3. Click **Load unpacked** |
| 4. Select this `extension/` folder |
| 5. The Authrix icon appears in your toolbar |
|
|
| ## Requirements |
|
|
| The Authrix backend must be running locally: |
|
|
| ```bash |
| cd backend |
| python -m uvicorn main:app --host 0.0.0.0 --port 8000 |
| ``` |
|
|
| ## Usage |
|
|
| ### Method 1 β Toolbar popup (recommended) |
| Click the Authrix icon β **Capture & Analyze Video** |
|
|
| Records 12 seconds of the currently playing video, sends it to the local AI, and shows the verdict as an overlay on the page. |
|
|
| ### Method 2 β Paste a URL |
| Click the Authrix icon β paste a direct video URL β **Analyze** |
|
|
| Works with direct `.mp4` / `.webm` links. For YouTube, Twitter, TikTok etc., `yt-dlp` must be installed on the backend (`pip install yt-dlp`). |
|
|
| ### Method 3 β Right-click menu |
| - Right-click anywhere on a page β **π Analyze with Authrix** (captures tab stream) |
| - Right-click a video link β **π Analyze video URL with Authrix** |
|
|
| ## Architecture (MV3) |
|
|
| ``` |
| popup.js |
| ββ sends START_CAPTURE / ANALYZE_URL β background.js |
| |
| background.js |
| ββ tabCapture.getMediaStreamId() (stream ID for the tab) |
| ββ creates offscreen document |
| ββ sends RECORD_OFFSCREEN β offscreen.js |
| |
| offscreen.js |
| ββ getUserMedia({ chromeMediaSource: 'tab' }) |
| ββ MediaRecorder records for 12s |
| ββ sends BLOB_READY β background.js |
| |
| background.js |
| ββ POST /analyze (blob) or POST /analyze-url (URL) |
| ββ sends ANALYSIS_RESULT β content.js |
| |
| content.js |
| ββ renders overlay with verdict, confidence, details |
| ``` |
|
|
| ## Limitations |
|
|
| - **DRM-protected content** (Netflix, Disney+, Prime) cannot be captured |
| - **YouTube** tab capture works; URL analysis requires `yt-dlp` on the backend |
| - Backend must be running on `localhost:8000` |
| - Videos > 100 MB may time out |
|
|