| title | Development |
|---|---|
| description | Build and run YouTube-Floater locally for development |
Follow these steps to set up YouTube-Floater for local development.
Clone the YouTube-Floater repository from GitHub:
git clone https://github.com/jimbrend/YouTube-Floater.git
cd YouTube-FloaterInstall all required Node.js packages:
npm installThis will install Electron.js and all other dependencies needed to run the app.
Run the app in development mode:
npm startThe YouTube-Floater application will launch in development mode with hot-reloading enabled.
Understanding the codebase structure:
YouTube-Floater/
├── main.js # Electron main process
├── renderer.js # Renderer process (UI logic)
├── index.html # Main window HTML
├── styles.css # Application styles
├── package.json # Dependencies and scripts
└── assets/ # Icons and images
To create a distributable .dmg file for macOS:
If not already installed:
npm install electron-packager --save-devCreate a production build:
npm run buildThis will generate a distributable application in the dist/ directory.
Electron.js Framework
BrowserWindow: Creates the floating window with always-on-top capabilityIPC: Handles communication between main and renderer processeswebPreferences: Configures security and node integration
YouTube Integration
- YouTube Embed Player API for video playback
- URL parsing to extract video IDs
- Embed parameters for custom controls
Window Management
- Custom drag handlers for repositioning
- Corner-snapping algorithm for quick positioning
- Opacity control using CSS and Electron APIs
Want to contribute to YouTube-Floater?
- Fork the repository on GitHub
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and test thoroughly
- Commit your changes:
git commit -m "Add your feature" - Push to your fork:
git push origin feature/your-feature-name - Open a Pull Request on the main repository
Current development priorities (95% complete):
Completed:
- Always-on-top floating window
- Drag and reposition functionality
- Corner snapping
- Volume and opacity controls
- Browser integration
Planned:
- Playlist support
- Persistent window state (remember position/size)
- Dark/light theme toggle
- AI-powered video synopsis
- Auto-update functionality