https://github.com/yixinnb/pyscrcpy
Grab screen and control android devices over ADB using python3.12 or later
https://github.com/yixinnb/pyscrcpy
adb automation python
Last synced: 3 months ago
JSON representation
Grab screen and control android devices over ADB using python3.12 or later
- Host: GitHub
- URL: https://github.com/yixinnb/pyscrcpy
- Owner: yixinNB
- License: mit
- Created: 2023-12-23T12:52:58.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-07T06:37:09.000Z (over 2 years ago)
- Last Synced: 2025-12-17T03:20:53.461Z (7 months ago)
- Topics: adb, automation, python
- Language: Python
- Homepage: https://pypi.org/project/pyscrcpy/
- Size: 28.3 MB
- Stars: 22
- Watchers: 1
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Python Scrcpy Client
# Introduction

A Python Library for scrcpy
pyscrcpy is an innovative Python library designed to simplify and streamline the integration of scrcpy into your Python projects. Scrcpy, a versatile screen mirroring tool for Android devices, gains a new level of accessibility through the seamless capabilities provided by pyscrcpy.
# Key Features
1. Easy Integration: With pyscrcpy, incorporating scrcpy functionality into your Python scripts becomes a straightforward process. The library abstracts away the complexities, allowing you to focus on leveraging scrcpy's powerful features without the need for intricate setup.
2. Enhanced Control: pyscrcpy empowers developers to exert precise control over Android devices from within their Python applications. Whether it's automating UI interactions, conducting tests, or creating custom applications, pyscrcpy provides a convenient interface for managing scrcpy commands.
3. Customization Options: Tailor scrcpy behavior to suit your project's requirements using the customizable options provided by pyscrcpy. Fine-tune parameters such as display size, bit rate, and more, all while maintaining the simplicity of Python scripting.
# Demo & Tutorial
```python
import cv2 as cv
from pyscrcpy import Client # import scrcpy client
def on_frame(client, frame):
client.control.touch(300,500)# emulate touch on(300,500)
cv.imshow('Video', frame)
cv.waitKey(1)
def demo1():
client = Client(max_fps=1, max_size=900)
client.on_frame(on_frame)
client.start()
def demo2():
client = Client(max_fps=20)
client.start(threaded=True) # create a new thread for scrcpy
while 1:
if client.last_frame is None:
continue
on_frame(client, client.last_frame)
```
## Reference & Appreciation
- Fork: [S1M0N38/scrcpy (don't support python3.11)](https://github.com/S1M0N38/scrcpy)
- Fork: [py-scrcpy-client](https://github.com/leng-yue/py-scrcpy-client)
- Core: [scrcpy](https://github.com/Genymobile/scrcpy)
- Idea: [py-android-viewer (many bugs)](https://github.com/razumeiko/py-android-viewer)
- CI: [index.py](https://github.com/index-py/index.py)