{"id":30020389,"url":"https://github.com/linuxdevil/transrecorder-screen-recorder-local-ai-transcripts","last_synced_at":"2025-08-09T04:28:54.319Z","repository":{"id":308045436,"uuid":"1030990613","full_name":"LinuxDevil/transrecorder-screen-recorder-local-ai-transcripts","owner":"LinuxDevil","description":"An open-source desktop screen recorder built with Electron, React, and TypeScript. Capture your screen, save videos locally, and auto-generate transcripts and AI summaries using Ollama — all offline, privacy-first, and fully customizable.","archived":false,"fork":false,"pushed_at":"2025-08-04T05:16:07.000Z","size":1518,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-04T08:23:29.407Z","etag":null,"topics":["audiorecorder","desktop-recorder","developer-tools","electron","local-llm","ollama","opensource","productivity","react","screen-recorder","screenrecorder","summarization","transcript","transcription","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LinuxDevil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-02T19:09:40.000Z","updated_at":"2025-08-04T05:14:02.000Z","dependencies_parsed_at":"2025-08-04T08:23:33.655Z","dependency_job_id":"f6aef847-e93a-4ce2-a620-2835a503eeeb","html_url":"https://github.com/LinuxDevil/transrecorder-screen-recorder-local-ai-transcripts","commit_stats":null,"previous_names":["linuxdevil/meetingvideo-transrecorder","linuxdevil/transrecorder-screen-recorder-local-ai-transcripts"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/LinuxDevil/transrecorder-screen-recorder-local-ai-transcripts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinuxDevil%2Ftransrecorder-screen-recorder-local-ai-transcripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinuxDevil%2Ftransrecorder-screen-recorder-local-ai-transcripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinuxDevil%2Ftransrecorder-screen-recorder-local-ai-transcripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinuxDevil%2Ftransrecorder-screen-recorder-local-ai-transcripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LinuxDevil","download_url":"https://codeload.github.com/LinuxDevil/transrecorder-screen-recorder-local-ai-transcripts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LinuxDevil%2Ftransrecorder-screen-recorder-local-ai-transcripts/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269005891,"owners_count":24343408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-06T02:00:09.910Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audiorecorder","desktop-recorder","developer-tools","electron","local-llm","ollama","opensource","productivity","react","screen-recorder","screenrecorder","summarization","transcript","transcription","typescript"],"created_at":"2025-08-06T02:01:43.515Z","updated_at":"2025-08-06T02:04:07.255Z","avatar_url":"https://github.com/LinuxDevil.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Transrecorder – Screen Recorder with Local AI Transcripts \u0026 Summaries\n\n![Application Icon](./resources/icon.png)\n\nAn open-source desktop screen recorder built with Electron, React, and TypeScript. Capture your screen, save videos locally, and auto-generate transcripts and AI summaries using Ollama — all offline, privacy-first, and fully customizable.\n\n## ✨ Features\n\n- **🎥 Screen Recording** - Capture your entire screen or specific windows\n- **📁 Smart File Organization** - Automatically saves to organized folders with timestamps\n- **🎵 Audio Extraction** - Extracts audio from recorded videos for processing\n- **📝 AI Transcript Generation** - Converts speech to text using local AI models\n- **🤖 Intelligent Summarization** - Generates context-aware summaries using Ollama\n- **🎯 Multiple Recording Types** - Optimized for Google Meet, Lessons, and general videos\n- **👀 Live Preview** - See what you're recording in real-time\n- **🔄 Cross-Platform** - Works seamlessly on Windows, macOS, and Linux\n- **🔒 Privacy-First** - All processing happens locally, no data sent to external servers\n- **⚡ Automated Setup** - One-command setup for all binary dependencies\n\n## 📸 Screenshots\n\n### Main Application Interface\n\n![Main Application Interface](./1.png)\n\n### Recording in Progress\n\n![Recording in Progress](./2.png)\n\n## 🚀 Quick Start\n\n### Download Pre-built Binaries\n\nThe fastest way to get started:\n\n1. **Visit [Releases](https://github.com/LinuxDevil/MeetingVideo-Transrecorder/releases)**\n2. **Download for your platform:**\n   - **Windows**: `meetingvideo-transrecorder-1.0.0-setup.exe`\n   - **macOS**: `meetingvideo-transrecorder-1.0.0.dmg`\n3. **Install and launch the application**\n\n### Build from Source\n\nFor developers or those who need the latest features:\n\n```bash\n# Clone the repository\ngit clone https://github.com/LinuxDevil/MeetingVideo-Transrecorder\ncd meetingvideo-transrecorder\n\n# Install dependencies\nnpm install\npip install -r requirements.txt\n\n# Start development server\nnpm run dev\n```\n\n## 📋 Requirements\n\n### Essential Dependencies\n\n| Component   | Version | Purpose                |\n| ----------- | ------- | ---------------------- |\n| **Node.js** | 16+     | Runtime environment    |\n| **Python**  | 3.8+    | Audio processing       |\n| **FFmpeg**  | Latest  | Video/audio conversion |\n\n### Optional (for AI features)\n\n| Component           | Purpose                          |\n| ------------------- | -------------------------------- |\n| **Ollama**          | Local AI model for summarization |\n| **Python packages** | Speech-to-text processing        |\n\n## 🛠️ Setup Guide\n\n### Automated Setup (Recommended)\n\nThe easiest way to set up all binary dependencies:\n\n```bash\n# Setup for current platform (recommended)\n./setup-binaries.sh\n\n# Or setup for all platforms\n./setup-binaries.sh all\n\n# Or setup for specific platform\n./setup-binaries.sh macos \n./setup-binaries.sh windows\n./setup-binaries.sh linux\n```\n\n### What the Setup Script Does\n\n#### macOS Setup\n- Creates a Python virtual environment in `python-runtime/`\n- Installs all dependencies from `requirements.txt`\n- Downloads FFmpeg binary to `ffmpeg-bin/`\n\n#### Windows Setup\n- Downloads FFmpeg binary to `ffmpeg-bin-windows/`\n- Uses system Python (no bundled runtime needed)\n- Requires `pip install -r requirements.txt` for dependencies\n\n#### Linux Setup\n- Creates a Python virtual environment in `python-runtime/`\n- Installs all dependencies from `requirements.txt`\n- Downloads static FFmpeg binary to `ffmpeg-bin/`\n\n### Directory Structure After Setup\n\nAfter running the setup script, you'll have:\n\n```\n├── python-runtime/          # macOS/Linux Python environment\n├── ffmpeg-bin/             # macOS/Linux FFmpeg binary\n├── ffmpeg-bin-windows/     # Windows FFmpeg binary\n├── audio_extractor.py      # Python script for audio processing\n├── requirements.txt        # Python dependencies\n└── setup-binaries.sh       # Setup script\n```\n\nNote: Windows builds use system Python, so no `python-runtime-windows/` directory is created.\n\n### Windows Post-Setup\n\nAfter running the Windows setup, install Python dependencies using system Python:\n\n```bash\npip install -r requirements.txt\n```\n\nNo additional setup required - Windows builds use system Python and bundled FFmpeg.\n\n### Cross-Platform Builds\n\n- Run `./setup-binaries.sh all` to set up binaries for all platforms\n- Use the appropriate npm script for your target platform:\n  ```bash\n  npm run build:mac \n  npm run build:win \n  npm run build:linux\n  ```\n\n## 🛠️ Manual Installation Guide\n\n### FFmpeg Setup\n\nFFmpeg is required for audio extraction. Choose your platform:\n\n#### Windows\n\n```bash\n# Using Chocolatey (recommended)\nchoco install ffmpeg\n\n# Using Scoop\nscoop install ffmpeg\n\n# Manual installation\n# Download from https://ffmpeg.org/download.html\n# Extract to C:\\ffmpeg and add C:\\ffmpeg\\bin to PATH\n```\n\n#### macOS\n\n```bash\n# Using Homebrew\nbrew install ffmpeg\n\n# Manual installation\n# Download from https://ffmpeg.org/download.html\n# Extract to /usr/local/bin/\n```\n\n#### Linux\n\n```bash\n# Ubuntu/Debian\nsudo apt update \u0026\u0026 sudo apt install ffmpeg\n\n# CentOS/RHEL\nsudo yum install ffmpeg\n\n# Arch Linux\nsudo pacman -S ffmpeg\n```\n\n### Ollama Setup (Optional)\n\nFor AI-powered summaries:\n\n```bash\n# 1. Download from https://ollama.ai/\n# 2. Start Ollama service\nollama serve\n\n# 3. Pull the required model\nollama pull mistral\n\n# 4. Verify installation\nollama list\n```\n\n### Verification\n\nEnsure everything is installed correctly:\n\n```bash\n# Check all dependencies\nnode --version\npython --version\nffmpeg -version\nollama list  # if installed\n```\n\n### Setup Troubleshooting\n\n#### \"Python not found\" error\n- Make sure you've run `./setup-binaries.sh` first\n- Check that the Python runtime was created successfully\n- Verify the paths in `transcript.utils.ts` match your setup\n\n#### \"FFmpeg not found\" error\n- Ensure FFmpeg was downloaded by the setup script\n- Check that the FFmpeg binary has execute permissions\n- Verify the FFmpeg path is correct for your platform\n\n### Manual Binary Setup (Alternative)\n\nIf the automated setup doesn't work, you can manually set up the binaries:\n\n#### Python Runtime (macOS/Linux only)\n1. Create a virtual environment: `python3 -m venv python-runtime`\n2. Activate it: `source python-runtime/bin/activate` (macOS/Linux)\n3. Install dependencies: `pip install -r requirements.txt`\n4. Deactivate: `deactivate`\n\n#### FFmpeg\n1. Download from [FFmpeg website](https://ffmpeg.org/download.html)\n2. Extract to `ffmpeg-bin/` directory (macOS/Linux) or `ffmpeg-bin-windows/` (Windows)\n3. Ensure the binary is executable: `chmod +x ffmpeg-bin/ffmpeg` (macOS/Linux)\n\n#### Windows Note\nWindows builds rely on system Python, so just ensure Python 3.8+ is installed and run:\n```bash\npip install -r requirements.txt\n```\n\n### Python Dependencies\n\nThe app requires these Python packages (from `requirements.txt`):\n- `openai-whisper\u003e=20231117` - For speech-to-text conversion\n- `SpeechRecognition\u003e=3.10.0` - Alternative speech recognition\n- `pydub\u003e=0.25.1` - Audio processing\n- `torch\u003e=2.0.0` - Machine learning backend\n- `numpy\u003e=1.24.0` - Numerical computations\n\n### Important Notes\n\n#### Development vs Production\n\n- **Development mode**: Uses system Python and FFmpeg on all platforms\n- **Packaged app**: \n  - macOS/Linux: Uses bundled Python runtime and FFmpeg\n  - Windows: Uses system Python + bundled FFmpeg\n\n#### Gitignore\n\nThe binary directories are automatically ignored by git:\n- `python-runtime/` (macOS/Linux only)\n- `ffmpeg-bin/` (macOS/Linux)\n- `ffmpeg-bin-windows/` (Windows)\n\nThis keeps the repository clean while allowing developers to set up their own binaries.\n\n## 🎯 Usage\n\n### Basic Recording Workflow\n\n1. **Launch the application**\n2. **Select recording type** (Google Meet, Lesson, or Video)\n3. **Click \"Start Recording\"**\n4. **Present your content**\n5. **Click \"Stop Recording\"**\n6. **Download your video**\n\n### Advanced Features\n\n#### Transcript Generation\n\nAfter recording:\n\n1. **Click \"Extract Transcript\"**\n2. **Wait for processing** (audio extraction + speech recognition)\n3. **Review the transcript** and AI-generated summary\n4. **Files are saved** to your desktop automatically\n\n#### File Organization\n\nYour recordings are automatically organized:\n\n```\nDesktop/\n└── captured-videos/\n    └── 2024-01-15/\n        ├── recording-2024-01-15-14-30-25.webm\n        ├── recording-2024-01-15-14-30-25.txt\n        └── recording-2024-01-15-14-30-25-summary.txt\n```\n\n## ⚙️ Configuration\n\n### Recording Types\n\n| Type            | Purpose             | Summary Focus                               |\n| --------------- | ------------------- | ------------------------------------------- |\n| **Google Meet** | Meeting recordings  | Action items, decisions, assignments        |\n| **Lesson**      | Educational content | Learning objectives, key concepts, homework |\n| **Video**       | General content     | Main points, highlights, insights           |\n\n### AI Model Configuration\n\nChange the AI model in `src/main/utils/ollama.utils.ts`:\n\n```typescript\nmodel: 'mistral' // Change to any model you have installed\n```\n\n### Speech-to-Text Engines\n\nThe app supports multiple STT options:\n\n1. **OpenAI Whisper** (Local) - Default, works offline\n2. **Google Speech Recognition** (Online) - Fallback option\n3. **Fallback** - Simple text if other options fail\n\n## 🔧 Development\n\n### Development Server\n\n```bash\nnpm run dev\n```\n\n### Building for Production\n\n```bash\n# Windows\nnpm run build:win\n\n# macOS\nnpm run build:mac\n\n# Linux\nnpm run build:linux\n```\n\n## 🐛 Troubleshooting\n\n### Common Issues\n\n#### FFmpeg Not Found\n\n```bash\n# Verify installation\nffmpeg -version\n\n# Add to PATH if needed\n# Windows: Add C:\\ffmpeg\\bin to system PATH\n# macOS/Linux: Ensure it's in /usr/local/bin/\n```\n\n#### Ollama Connection Issues\n\n```bash\n# Start Ollama service\nollama serve\n\n# Check available models\nollama list\n\n# Pull required model\nollama pull mistral\n\n# Test connection\ncurl http://localhost:11434/api/tags\n```\n\n#### Python Dependencies\n\n```bash\n# Install requirements\npip install -r requirements.txt\n\n# Verify audio_extractor.py exists\nls audio_extractor.py\n```\n\n#### Desktop Sources Not Found\n\n- This is normal on first run\n- The app will automatically detect available screens\n- Try refreshing or restarting the application\n\n### Debug Mode\n\nRun with enhanced logging:\n\n```bash\nnpm run dev -- --debug\n```\n\n### Manual Setup\n\nUse the automated setup script:\n\n```bash\npython setup.py\n```\n\n## 🏗️ Project Structure\n\n```\nmeetingvideo-transrecorder/\n├── src/\n│   ├── main/           # Electron main process\n│   │   ├── handlers/   # IPC handlers\n│   │   ├── types/      # TypeScript types\n│   │   ├── utils/      # Utility functions\n│   │   └── window.ts   # Window management\n│   ├── preload/        # Preload scripts\n│   │   ├── types/      # Type definitions\n│   │   ├── utils/      # API utilities\n│   │   └── index.ts    # Main preload\n│   └── renderer/       # React frontend\n│       ├── components/ # UI components\n│       ├── hooks/      # Custom hooks\n│       ├── types/      # TypeScript types\n│       └── utils/      # Utility functions\n├── resources/          # App resources\n├── audio_extractor.py  # Python audio processing\n├── requirements.txt    # Python dependencies\n└── package.json        # Node.js dependencies\n```\n\n## 🤝 Contributing\n\nWe welcome contributions! Here's how to get started:\n\n1. **Fork the repository**\n2. **Create a feature branch**: `git checkout -b feature-name`\n3. **Make your changes**\n4. **Test thoroughly**\n5. **Submit a pull request**\n\n### Development Guidelines\n\n- Follow TypeScript best practices\n- Use meaningful commit messages\n- Test on multiple platforms\n- Update documentation as needed\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🆘 Support\n\n### Getting Help\n\n1. **Check the troubleshooting section above**\n2. **Review console output for error messages**\n3. **Ensure all prerequisites are installed**\n4. **Try running in debug mode**\n5. **Check [GitHub Issues](https://github.com/LinuxDevil/MeetingVideo-Transrecorder/issues)**\n\n### Community\n\n- **GitHub Issues**: Report bugs and request features\n- **Discussions**: Ask questions and share ideas\n- **Releases**: Download the latest versions\n\n## 🔄 Continuous Integration\n\nThis project uses GitHub Actions for automated builds and releases.\n\n### Workflows\n\n#### Build Artifacts (`build-artifacts.yml`)\n\n- **Triggers**: Push to `main`, pull requests, manual\n- **Purpose**: Build Windows and macOS versions\n- **Output**: Uploads artifacts for manual download\n\n#### Build and Release (`build.yml`)\n\n- **Triggers**: Tags starting with `v*` (e.g., `v1.0.1`)\n- **Purpose**: Creates GitHub releases with artifacts\n- **Output**: Automatic release with downloadable files\n\n### Using Release Scripts\n\n**Linux/macOS:**\n\n```bash\nchmod +x scripts/release.sh\n./scripts/release.sh 1.0.1\n```\n\n**Windows:**\n\n```cmd\nscripts\\release.bat 1.0.1\n```\n\n### Manual Builds\n\n1. **Go to [Actions](https://github.com/LinuxDevil/MeetingVideo-Transrecorder/actions)**\n2. **Click \"Build Artifacts\"**\n3. **Click \"Run workflow\"**\n4. **Select branch and run**\n\n### Build Matrix\n\n| Platform | Runner           | Build Command       | Output                  |\n| -------- | ---------------- | ------------------- | ----------------------- |\n| Windows  | `windows-latest` | `npm run build:win` | `.exe`, `win-unpacked/` |\n| macOS    | `macos-latest`   | `npm run build:mac` | `.dmg`, `mac/`          |\n\n### Artifacts\n\n- **Build Artifacts**: Available in Actions tab (30-day retention)\n- **Release Artifacts**: Available on Releases page (permanent)\n\n### Recent Updates\n\n- ✅ **Modular Architecture** - Refactored for better maintainability\n- ✅ **CSS Refactoring** - Improved styling with @apply directives\n- ✅ **GitHub Actions** - Automated builds and releases\n- ✅ **Cross-platform Support** - Windows and macOS builds\n- ✅ **AI Integration** - Local AI-powered summarization\n\n---\n\n**Made with ❤️ by [LinuxDevil](https://github.com/LinuxDevil)**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxdevil%2Ftransrecorder-screen-recorder-local-ai-transcripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinuxdevil%2Ftransrecorder-screen-recorder-local-ai-transcripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxdevil%2Ftransrecorder-screen-recorder-local-ai-transcripts/lists"}