---
tags:
- custom-component-track
- gradio-custom-component
- screen-recorder
- PIP
- picture-in-picture
title: gradio_screenrecorder
short_description: Screen Recorder + Picture in Picture Gradio Custom Component
colorFrom: blue
colorTo: yellow
sdk: gradio
pinned: false
app_file: space.py
license: mit
emoji: 🎥
sdk_version: 5.33.1
---
* [Presentation Video](https://www.youtube.com/watch?v=8c9qmeGDp3I)
# `gradio_screenrecorder`
Screen Recorder Gradio Custom Component
## Installation
```bash
pip install gradio_screenrecorder
```
## Usage
```python
import gradio as gr
from gradio_screenrecorder import ScreenRecorder
def handle_recording(recording_data):
"""Handle recorded video data"""
print(f'Received recording data: {recording_data}')
if not recording_data or not recording_data.get('video'):
return None
try:
video_info = recording_data['video']
# Return the video path that can be used by the Video component
return video_info.get('path')
except Exception as e:
print(f'Error processing recording: {e}')
return None
css = """
.screen-recorder-demo {
max-width: 800px;
margin: 0 auto;
}
"""
with gr.Blocks(css=css, title="Screen Recorder Demo") as demo:
gr.HTML("""
name | type | default | description |
---|---|---|---|
audio_enabled |
```python bool ``` | True |
None |
webcam_overlay |
```python bool ``` | False |
None |
webcam_position |
```python "top-left" | "top-right" | "bottom-left" | "bottom-right" ``` | "bottom-right" |
None |
recording_format |
```python str ``` | "webm" |
None |
max_duration |
```python typing.Optional[int][int, None] ``` | None |
None |
interactive |
```python bool ``` | True |
None |