Simply paste the URL of the YouTube video, and instantly download its thumbnail in various resolutions such as HD, SD, and more.
is a web-based client prototype for , the popular open-source tool for mirroring and controlling Android devices from a computer. Unlike the standard version that runs as a desktop application,
allows you to view and control your phone directly through a web browser using WebSockets. Key Features Browser-Based Control
: Mirror your screen and use touch events, keyboard input, and mouse/touchpad scrolling without a dedicated desktop client. Multiple Players : Supports several video decoders including (for Chrome/Chromium), File Management
: Supports dragging and dropping APKs for installation, file pushing, and browsing device files. Remote Shell : Access a remote shell directly from your browser. Device Interaction
: Supports device rotation, multi-touch emulation, and clipboard sharing between the device and computer. Prerequisites Android Device : Must be running Android 5.0 (API 21) or higher. USB Debugging : You must enable Developer Options and turn on USB Debugging on your Android device. Server Environment : Requires a server (often
) to handle the WebSocket communication between the browser and the device. Quick Setup Steps Prepare the Phone Settings > About Phone and tap the Build Number seven times to unlock Developer Options. Enable USB Debugging Install Node.js & ws-scrcpy : Download the ws-scrcpy repository and install dependencies using npm install Run the Server : Start the server using the provided commands (usually or building from source). Connect via Browser
: Open your browser and navigate to the local address (typically
Your device should appear in the ws-scrcpy web interface.
ws-scrcpy behavior is controlled by environment variables. You can set these in your shell or in a Docker Compose file.
| Variable | Default | Description |
| :--- | :--- | :--- |
| PORT | 8000 | The port the web server listens on. |
| BIND_ADDRESS | 0.0.0.0 | The interface to bind to. 0.0.0.0 allows access from external networks. 127.0.0.1 restricts it to the local machine. |
| ADB_PATH | adb | Path to the adb executable. If adb is in your system PATH, leave as is. |
| SCRCPY_SERVER_PATH | ... | Path to the scrcpy-server.jar. Usually auto-downloaded, but can be hardcoded. |
| MAX_SIZE | 1920 | The maximum width/height of the video stream. Lower this (e.g., 1024) for slower networks. |
| BIT_RATE | 4M | Video bitrate (e.g., 8M for 8Mbps). |
| MAX_FPS | 60 | Cap the frames per second. |
| NO_AUDIO | false | Set to true to disable audio forwarding (saves bandwidth). |
Understanding the architecture demystifies the setup process.
scrcpy-server.jar file to the device.adb. It then decodes the H.264 video stream and re-encapsulates it into WebSocket frames.http://[Host-IP]:8000. The page uses JavaScript and WebGL to render the video stream. Mouse and keyboard events are captured and sent back via WebSocket to the host, which forwards them to the device via ADB.Because WebSockets support full-duplex communication, latency remains extremely low—typically under 50ms on a local network.
Docker is the easiest way to run ws-scrcpy because it bundles Node.js, dependencies, and often the ADB binaries into an isolated environment.
Pull the image:
docker pull netris/ws-scrcpy
Run the container: You must mount the ADB device connection into the container.
docker run -d \
--name ws-scrcpy \
-p 8000:8000 \
-v /dev/bus/usb:/dev/bus/usb \
--privileged \
netris/ws-scrcpy
--privileged is the most reliable method for USB connected phones.Access the UI:
Open your browser to http://localhost:8000.