docs: rewrite README with full project documentation
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
70
README.md
70
README.md
@@ -1,7 +1,69 @@
|
||||
# Tauri + SvelteKit + TypeScript
|
||||
# GUI Video Clipper
|
||||
|
||||
This template should help get you started developing with Tauri, SvelteKit and TypeScript in Vite.
|
||||
A macOS desktop app for clipping segments from online videos. Paste a URL, scrub the timeline, mark your clips, and export — without manually downloading the video first.
|
||||
|
||||
## Recommended IDE Setup
|
||||
## Features
|
||||
|
||||
[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer).
|
||||
- **URL Input** — Paste a YouTube (or other supported) URL and start working immediately
|
||||
- **Video Preview** — Scrub, seek, and frame-step through the video with full transport controls
|
||||
- **Mark In/Out** — Set clip boundaries with keyboard shortcuts (I/O) or transport buttons
|
||||
- **Timeline** — Visual timeline with waveform display and thumbnail strip
|
||||
- **Clip Export** — Export clips in lossless (stream copy) or precise (re-encode) modes
|
||||
- **Captions** — Download subtitles, preview with karaoke-style highlighting, burn into exports
|
||||
- **Setup Wizard** — Automatically detects and installs required dependencies (ffmpeg, yt-dlp)
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- **macOS** (primary target platform)
|
||||
- **Node.js** (v18+)
|
||||
- **Rust** toolchain ([rustup.rs](https://rustup.rs))
|
||||
|
||||
ffmpeg and yt-dlp are detected (and can be installed) automatically by the built-in setup wizard on first launch.
|
||||
|
||||
## Build & Run
|
||||
|
||||
```bash
|
||||
# Install frontend dependencies
|
||||
npm install
|
||||
|
||||
# Development (hot-reload)
|
||||
npm run tauri dev
|
||||
|
||||
# Production build
|
||||
npm run tauri build
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
GUI Video Clipper is built with [Tauri v2](https://v2.tauri.app/) (Rust backend) and [Svelte 5](https://svelte.dev/) (TypeScript frontend).
|
||||
|
||||
### Backend (Rust)
|
||||
|
||||
- **Video Resolver** — Resolves URLs via yt-dlp, extracts metadata and stream URLs
|
||||
- **Download Manager** — Manages preview and high-quality downloads with progress tracking
|
||||
- **Media Server** — Local HTTP server for streaming video to the frontend player
|
||||
- **Waveform Generator** — Extracts audio waveform data at multiple zoom tiers via ffmpeg
|
||||
- **Thumbnail Extractor** — Generates timeline thumbnail strips from keyframes
|
||||
- **Export Pipeline** — Handles clip extraction with ffmpeg (lossless and precise modes)
|
||||
- **Subtitle Downloader** — Fetches and converts subtitles for preview and burn-in
|
||||
|
||||
### Frontend (Svelte 5 + TypeScript)
|
||||
|
||||
- **Timeline** — Canvas-based timeline with waveform, thumbnails, and clip region rendering
|
||||
- **Transport Controls** — Play/pause, seek, frame-step, shuttle (J/K/L), keyboard shortcuts
|
||||
- **Video Player** — HTML5 video element connected to the local media server
|
||||
- **Export Dialog** — Configure and execute clip exports with progress tracking
|
||||
- **Caption Settings** — Font, color, shadow, and positioning controls for subtitle burn-in
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch (`git checkout -b feat/my-feature`)
|
||||
3. Make your changes
|
||||
4. Run checks: `npm run check`
|
||||
5. Commit with a descriptive message
|
||||
6. Open a pull request
|
||||
|
||||
## License
|
||||
|
||||
[MIT](LICENSE)
|
||||
|
||||
Reference in New Issue
Block a user