This Chrome browser extension enables users to record browser tabs or the entire screen in Full HD resolution, with optional camera overlay. It integrates with the tabCapture API and desktopCapture API to facilitate high-quality recordings while ensuring an intuitive user experience.
- Tab Recording: Captures the active tab with audio.
- Screen Recording: Records the entire screen, application window, or a specific tab.
- Camera Overlay: Enables or disables a webcam feed during recording, also change camera position by dragging the container.
- Dark Mode Support: Adapts UI based on system preferences.
- Storage Management: Saves recording states and user preferences.
- Background Processing: Uses a background script to manage recording lifecycle.
- Optimized Performance: Efficiently handles media streams to ensure smooth recording.
The extension is structured into modular components to ensure maintainability and scalability.
- service-worker.js: Manages event-based background tasks, including message handling, media permissions, and storage updates.
- index.html: Provides the main UI structure for users to start/stop recordings.
- content.js: Injects UI elements and controls within the active tab.
- camera.js: Manages webcam overlay and integrates it with the recording system.
- script.js: Handles extension startup logic, user interactions, and permissions.
- Tab Recording
- offscreen.js: Controls background tab recording via tabCapture API.
- Screen Recording
- screenRecord.js: Manages full-screen recording using desktopCapture API.
- utility-functions.js: Handles media processing, including mixing audio and video to ensure Full HD resolution.
mermaid flowchart TD; A[User Starts Recording] --> B{Select Recording Mode} B -->|Tab Recording| C[Inject Content Script] B -->|Screen Recording| D[Create Screen Capture Tab] C --> E[Capture Tab Audio & Video] D --> F[Capture Screen Stream] E & F --> G[Process & Encode Media] G --> H[Save Recording Locally] H --> I[User Stops Recording] I --> J[Cleanup Resources]
sh git clone https://github.com/accoladesio/casta.git cd screen-tab-recorder
- Open Google Chrome and go to chrome://extensions/.
- Enable Developer Mode (toggle in the top right corner).
- Click Load Unpacked and select the project folder.
- The extension is now ready to use!
- Click the extension icon in the Chrome toolbar.
- Choose "Record Tab" or "Record Screen".
- (Optional) Enable or disable camera overlay.
- Click Stop Recording when done.
- Your recording will be processed and available for playback.
- tabs: Access and record the active tab.
- activeTab: Execute scripts within the active page.
- storage: Save user settings and recording states.
- scripting: Inject scripts into web pages.
- offscreen: Record tabs in the background.
- Ensure you have granted the necessary permissions.
- Refresh the tab before recording.
- Some browser restrictions prevent immediate removal of camera elements. A background script fix is in progress.
- Currently, they are stored locally. Future updates may include cloud storage support.
- Add recording quality settings (e.g., 720p, 4K support).
- Implement cloud storage integration for direct uploads.
- Enhance UI for better user experience.
- Improve background resource cleanup.
- Your Name (@accoladesio)
- Open to contributions! Feel free to submit PRs.