Icop – open-source local AI NSFW filter for VLC (no cloud, no telemetry) Icop, an open-source AI content filtering plugin for VLC media player, has been released. It uses local ONNX Runtime inference to detect and block sensitive content in video frames without uploading data to the cloud. The plugin prioritizes privacy and runs on Windows, Linux, and macOS. An open-source, privacy-first VLC plugin for local AI sensitive-content detection and frame blocking with ONNX Runtime. Important icop is a best-effort content filter. Detection models can produce false positives and false negatives, so test your configuration before relying on it for child-safety or accessibility needs. icop is an open-source AI content filtering plugin for VLC media player. It uses local ONNX Runtime inference to classify buffered video frames before display, then shows the original frame or applies a black, blur, or warning treatment. Processing stays on your device; video frames are not uploaded to a service. The plugin targets Windows and Linux today, with experimental macOS build and installation support. It is designed for privacy-conscious playback, offline video filtering, and developers exploring ONNX-based computer vision in VLC. Watch the full ICOP VLC walkthrough /asayed18/icop/blob/main/demo.mp4 Plugin setup, blocking styles, muted playback, and the detection debug overlay. The public Git repository is source-only. Models, ONNX Runtime binaries, build trees, portable VLC copies, and release archives are downloaded or generated locally and are not committed. | Platform | Status | GPU inference | |---|---|---| | Windows x86 64 | Tested | CUDA NVIDIA / D3D12 GPU fallback | | Linux x86 64 | Tested | CUDA NVIDIA / MIGraphX AMD | | Linux ARM64 | Tested | CPU only | | macOS x86 64 | Tested | CPU / CoreML | | macOS ARM64 | Tested | CPU / CoreML | GPU runtimes are detected automatically at plugin load. Contributions that improve GPU support or validate the macOS path are welcome. - Buffers frames so playback does not intentionally outrun classification - Runs inference locally with ONNX Runtime - Supports multiple model profiles and automatic model-sized preprocessing - Provides black, blur, and warning block styles - Can mute audio while blocked output is shown - Supports precomputed decision maps for scan-ahead playback - Includes a D3D11 processing path for supported Windows hardware decoding - On Linux opaque VAAPI/VDPAU-style inputs, analyzes via VLC image conversion and drops blocked frames fail-closed when in-place masking is not available - Produces versioned, platform-specific packages with checksums and metadata - Includes unit, integration, and benchmark targets - Local and offline sensitive-content filtering in VLC media player - Best-effort parental controls and safer shared-screen playback - Privacy-first video moderation without cloud uploads - ONNX Runtime, CUDA, and D3D11 video-filter development - Cross-platform computer-vision research and prototyping - VLC decodes a video frame. - icop holds the frame before presentation. - The detector converts and resizes a sample for the selected model. - ONNX Runtime classifies the sample and applies the configured block window. - The plugin releases the original or masked frame to VLC. The central safety invariant is simple: a frame that requires analysis should not be shown before its decision is available. Ask an AI assistant to install icop using the INSTALL.md /asayed18/icop/blob/main/INSTALL.md guide. Give it the file and it will handle downloading, copying, enabling the filter, and applying best-practice settings for your platform. Requirements: - CMake 3.16 or newer - Ninja or another supported CMake generator - A C compiler and a C++17 compiler - VLC 3.0 development files for the target platform Configure, build, and package: make build make test make release On Windows, use mingw32-make instead of make when that is the installed GNU Make command. Direct CMake commands remain available in CONTRIBUTING.md /asayed18/icop/blob/main/CONTRIBUTING.md . The package is written to releases/v