[![PyPI version](https://badge.fury.io/py/pyscreenrecorder.svg)](https://badge.fury.io/py/pyscreenrecorder)
[![Python Versions](https://img.shields.io/badge/python-3.9%20|%203.10%20|%203.11%20|%203.12%20|%203.13-blue)](https://pypi.org/project/pyscreenrecorder/)
[![Downloads](https://static.pepy.tech/badge/pyscreenrecorder)](https://pepy.tech/project/pyscreenrecorder)
[![Downloads](https://static.pepy.tech/badge/pyscreenrecorder/week)](https://pepy.tech/project/pyscreenrecorder)
# Python Screen Recorder
Python screen recorder also `pyscreenrecorder` is a powerful Python package for screen recording with an **optional mouse cursor overlay**.
It allows **high-performance screen capturing**, **custom resolution**, and **real-time mouse tracking**.
## ✨ Features
- 🎥 **Record screen** with smooth frame rates (30 FPS default).
- 🖱 **Mouse overlay customization** (color, size, thickness).
- 📺 **Multi-monitor support** – Choose which monitor to record.
- 🔄 **Set custom resolution** (e.g., 1280x720, 1920x1080).
- ⚡ **Optimized performance** with `mss` for fast screen capture.
- 🎨 **Flexible output formats** – Supports `.mp4`, `.avi`, and `.mkv`.
- 🔍 **Monitor detection** – List available monitors and their specs.
---
## 📦 Installation
Install `pyscreenrecorder` using pip:
```sh
pip install pyscreenrecorder
```
Upgrade `pyscreenrecorder` using pip:
```sh
pip install pyscreenrecorder -U
```
## 🚀 Usage
### Basic Screen Recording
```python
from pyscreenrecorder import ScreenRecorder
ScreenRecorder(
filename="screen_record.mp4",
duration=10,
fps=30,
monitor_number=1,
mouse=True,
)
```
## 📺 Listing Available Monitors
```python
from pyscreenrecorder import pyScreenRecorder
monitors = pyScreenRecorder.list_monitors()
print("Available Monitors:", monitors)
```
Example Output:
```json
[
{ "monitor": 0, "width": 1920, "height": 1080 },
{ "monitor": 1, "width": 2560, "height": 1440 }
]
```
## 🎥 Recording with Custom Settings
```python
from pyscreenrecorder import ScreenRecorder
ScreenRecorder(
filename="custom_record.mp4",
duration=15,
fps=60,
monitor_number=2,
resolution=(1280, 720), # Set custom resolution
mouse=True,
mouse_color=(255, 0, 0), # Red cursor
mouse_size=10,
mouse_thickness=3,
)
```
🔹 60 FPS Recording
🔹 Custom 1280x720 resolution
🔹 Red-colored mouse cursor with increased size
## 🛠 Advanced Example
```python
from pyscreenrecorder import pyScreenRecorder
if __name__ == "__main__":
# Display available monitors
monitors = pyScreenRecorder.list_monitors()
print("Available Monitors:", monitors)
# Start recording with advanced settings
pyRec = pyScreenRecorder(
filename="high_quality_record.mp4",
duration=30,
fps=60,
monitor_number=1,
resolution=(1920, 1080), # Full HD recording
mouse=True,
mouse_color=(0, 255, 0), # Green cursor
mouse_size=6,
mouse_thickness=2,
)
pyRec.screenRecorder()
```
---
## ⚙ Supported File Formats
`pyscreenrecorder` supports the following video formats:
| Format | Description |
| ------- | -------------------- |
| **MP4** | High compatibility |
| **AVI** | Uncompressed quality |
| **MKV** | Modern, flexible |
Set the format by using the appropriate file extension in `filename`.
Example:
```python
ScreenRecorder(filename="recording.mkv")
```
---
## 🎯 Dependencies
`pyscreenrecorder` relies on:
- `opencv-python`
- `numpy`
- `mss`
- `pyautogui`
- `MouseInfo`
- `PyGetWindow`
- `PyMsgBox`
- `pyperclip`
- `PyRect`
- `PyScreeze`
- `pytweening`
No additional configuration is required.
---
## 📝 License
This project is licensed under the **MIT License**.
---
## 📚 More Information
📌 **GitHub Repository:**
🔗 [https://github.com/SSujitX/pyscreenrecorder](https://github.com/SSujitX/pyscreenrecorder)
📌 **Issue Tracker:**
🐛 [Report a Bug](https://github.com/SSujitX/pyscreenrecorder/issues)
---
## 🏁 Conclusion
`pyscreenrecorder` is an **efficient**, **easy-to-use**, and **customizable** screen recording tool in Python. Whether you need **basic screen capturing** or **advanced mouse-tracked recordings**, this package provides all the features.
🚀 **Try it today!** 🚀
![Visitors](https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2FSSujitX%2Fpyscreenrecorder&countColor=%23263759&labelStyle=upper)
Raw data
{
"_id": null,
"home_page": "https://github.com/SSujitX/pyscreenrecorder",
"name": "pyscreenrecorder",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "screen recorder, screen capture, video recording, screen recording, recording, screenshots, mouse tracking, automated screen recording",
"author": "Sujit Biswas",
"author_email": "ssujitxx@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/8a/a2/ff4f2cf9b381a357f87a0ed35efebb5bfb7716b33941454e0b0752c4dd19/pyscreenrecorder-0.0.3.tar.gz",
"platform": null,
"description": "[![PyPI version](https://badge.fury.io/py/pyscreenrecorder.svg)](https://badge.fury.io/py/pyscreenrecorder)\n[![Python Versions](https://img.shields.io/badge/python-3.9%20|%203.10%20|%203.11%20|%203.12%20|%203.13-blue)](https://pypi.org/project/pyscreenrecorder/)\n[![Downloads](https://static.pepy.tech/badge/pyscreenrecorder)](https://pepy.tech/project/pyscreenrecorder)\n[![Downloads](https://static.pepy.tech/badge/pyscreenrecorder/week)](https://pepy.tech/project/pyscreenrecorder)\n\n# Python Screen Recorder\n\nPython screen recorder also `pyscreenrecorder` is a powerful Python package for screen recording with an **optional mouse cursor overlay**. \nIt allows **high-performance screen capturing**, **custom resolution**, and **real-time mouse tracking**.\n\n## \u2728 Features\n\n- \ud83c\udfa5 **Record screen** with smooth frame rates (30 FPS default).\n- \ud83d\uddb1 **Mouse overlay customization** (color, size, thickness).\n- \ud83d\udcfa **Multi-monitor support** \u2013 Choose which monitor to record.\n- \ud83d\udd04 **Set custom resolution** (e.g., 1280x720, 1920x1080).\n- \u26a1 **Optimized performance** with `mss` for fast screen capture.\n- \ud83c\udfa8 **Flexible output formats** \u2013 Supports `.mp4`, `.avi`, and `.mkv`.\n- \ud83d\udd0d **Monitor detection** \u2013 List available monitors and their specs.\n\n---\n\n## \ud83d\udce6 Installation\n\nInstall `pyscreenrecorder` using pip:\n\n```sh\npip install pyscreenrecorder\n```\n\nUpgrade `pyscreenrecorder` using pip:\n\n```sh\npip install pyscreenrecorder -U\n```\n\n## \ud83d\ude80 Usage\n\n### Basic Screen Recording\n\n```python\nfrom pyscreenrecorder import ScreenRecorder\n\nScreenRecorder(\n filename=\"screen_record.mp4\",\n duration=10,\n fps=30,\n monitor_number=1,\n mouse=True,\n)\n```\n\n## \ud83d\udcfa Listing Available Monitors\n\n```python\nfrom pyscreenrecorder import pyScreenRecorder\n\nmonitors = pyScreenRecorder.list_monitors()\nprint(\"Available Monitors:\", monitors)\n```\n\nExample Output:\n\n```json\n[\n { \"monitor\": 0, \"width\": 1920, \"height\": 1080 },\n { \"monitor\": 1, \"width\": 2560, \"height\": 1440 }\n]\n```\n\n## \ud83c\udfa5 Recording with Custom Settings\n\n```python\nfrom pyscreenrecorder import ScreenRecorder\n\nScreenRecorder(\n filename=\"custom_record.mp4\",\n duration=15,\n fps=60,\n monitor_number=2,\n resolution=(1280, 720), # Set custom resolution\n mouse=True,\n mouse_color=(255, 0, 0), # Red cursor\n mouse_size=10,\n mouse_thickness=3,\n)\n```\n\n\ud83d\udd39 60 FPS Recording \n\ud83d\udd39 Custom 1280x720 resolution \n\ud83d\udd39 Red-colored mouse cursor with increased size\n\n## \ud83d\udee0 Advanced Example\n\n```python\nfrom pyscreenrecorder import pyScreenRecorder\n\nif __name__ == \"__main__\":\n # Display available monitors\n monitors = pyScreenRecorder.list_monitors()\n print(\"Available Monitors:\", monitors)\n\n # Start recording with advanced settings\n pyRec = pyScreenRecorder(\n filename=\"high_quality_record.mp4\",\n duration=30,\n fps=60,\n monitor_number=1,\n resolution=(1920, 1080), # Full HD recording\n mouse=True,\n mouse_color=(0, 255, 0), # Green cursor\n mouse_size=6,\n mouse_thickness=2,\n )\n pyRec.screenRecorder()\n```\n\n---\n\n## \u2699 Supported File Formats\n\n`pyscreenrecorder` supports the following video formats:\n\n| Format | Description |\n| ------- | -------------------- |\n| **MP4** | High compatibility |\n| **AVI** | Uncompressed quality |\n| **MKV** | Modern, flexible |\n\nSet the format by using the appropriate file extension in `filename`. \nExample:\n\n```python\nScreenRecorder(filename=\"recording.mkv\")\n```\n\n---\n\n## \ud83c\udfaf Dependencies\n\n`pyscreenrecorder` relies on:\n\n- `opencv-python`\n- `numpy`\n- `mss`\n- `pyautogui`\n- `MouseInfo`\n- `PyGetWindow`\n- `PyMsgBox`\n- `pyperclip`\n- `PyRect`\n- `PyScreeze`\n- `pytweening`\n\nNo additional configuration is required.\n\n---\n\n## \ud83d\udcdd License\n\nThis project is licensed under the **MIT License**.\n\n---\n\n## \ud83d\udcda More Information\n\n\ud83d\udccc **GitHub Repository:** \n\ud83d\udd17 [https://github.com/SSujitX/pyscreenrecorder](https://github.com/SSujitX/pyscreenrecorder)\n\n\ud83d\udccc **Issue Tracker:** \n\ud83d\udc1b [Report a Bug](https://github.com/SSujitX/pyscreenrecorder/issues)\n\n---\n\n## \ud83c\udfc1 Conclusion\n\n`pyscreenrecorder` is an **efficient**, **easy-to-use**, and **customizable** screen recording tool in Python. Whether you need **basic screen capturing** or **advanced mouse-tracked recordings**, this package provides all the features.\n\n\ud83d\ude80 **Try it today!** \ud83d\ude80\n\n![Visitors](https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2FSSujitX%2Fpyscreenrecorder&countColor=%23263759&labelStyle=upper)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A python package for screen recording with customizable resolution, FPS, and mouse tracking.",
"version": "0.0.3",
"project_urls": {
"Bug Tracker": "https://github.com/SSujitX/pyscreenrecorder/issues",
"Documentation": "https://github.com/SSujitX/pyscreenrecorder#readme",
"Homepage": "https://github.com/SSujitX/pyscreenrecorder",
"Source Code": "https://github.com/SSujitX/pyscreenrecorder"
},
"split_keywords": [
"screen recorder",
" screen capture",
" video recording",
" screen recording",
" recording",
" screenshots",
" mouse tracking",
" automated screen recording"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1fad9d8658850660d63fd369b3d655bd94dee2cdfef7c540c23c56db9c84fc1d",
"md5": "e93180b33f8b1212d2d457252f8c72b3",
"sha256": "dfa3b238549f07c59d0b58c6bef5c1508b65bf3a4588f05e9a75ff5df812f9f3"
},
"downloads": -1,
"filename": "pyscreenrecorder-0.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e93180b33f8b1212d2d457252f8c72b3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 7266,
"upload_time": "2025-02-02T00:34:45",
"upload_time_iso_8601": "2025-02-02T00:34:45.186124Z",
"url": "https://files.pythonhosted.org/packages/1f/ad/9d8658850660d63fd369b3d655bd94dee2cdfef7c540c23c56db9c84fc1d/pyscreenrecorder-0.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8aa2ff4f2cf9b381a357f87a0ed35efebb5bfb7716b33941454e0b0752c4dd19",
"md5": "8efda054edc8a14f7e21c87d1a904f0d",
"sha256": "41bbca546f061b6daa7f763d6643856ef3ad9fdeb2949d2965d775ca1d99c0eb"
},
"downloads": -1,
"filename": "pyscreenrecorder-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "8efda054edc8a14f7e21c87d1a904f0d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 6468,
"upload_time": "2025-02-02T00:34:46",
"upload_time_iso_8601": "2025-02-02T00:34:46.800231Z",
"url": "https://files.pythonhosted.org/packages/8a/a2/ff4f2cf9b381a357f87a0ed35efebb5bfb7716b33941454e0b0752c4dd19/pyscreenrecorder-0.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-02 00:34:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "SSujitX",
"github_project": "pyscreenrecorder",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "pyscreenrecorder"
}