{"id":50537279,"url":"https://github.com/palaashatri/clipkit","last_synced_at":"2026-06-03T17:30:46.490Z","repository":{"id":356913241,"uuid":"1234557634","full_name":"palaashatri/clipkit","owner":"palaashatri","description":"A high-performance, native GUI wrapper around yt-dlp — built in Rust with Iced","archived":false,"fork":false,"pushed_at":"2026-05-10T11:48:47.000Z","size":144,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-10T13:32:27.327Z","etag":null,"topics":["gui","rust","wrapper","yt-dlp"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/palaashatri.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-10T10:46:06.000Z","updated_at":"2026-05-10T11:48:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/palaashatri/clipkit","commit_stats":null,"previous_names":["palaashatri/clipkit"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/palaashatri/clipkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palaashatri%2Fclipkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palaashatri%2Fclipkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palaashatri%2Fclipkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palaashatri%2Fclipkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/palaashatri","download_url":"https://codeload.github.com/palaashatri/clipkit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palaashatri%2Fclipkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33876327,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"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":["gui","rust","wrapper","yt-dlp"],"created_at":"2026-06-03T17:30:45.461Z","updated_at":"2026-06-03T17:30:46.485Z","avatar_url":"https://github.com/palaashatri.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ClipKit\n\nA high-performance, native GUI wrapper for media download engines — built in Rust with [Iced](https://github.com/iced-rs/iced).\n\n\u003cimg width=\"2424\" height=\"1724\" alt=\"image\" src=\"https://github.com/user-attachments/assets/c761cea6-8ae0-470a-943d-c2963a437765\" /\u003e\n\n\n## Features\n\n- **Simple \u0026 advanced download modes** — paste a URL and go, or tune every download option.\n- **Engine version manager** — fetch, download, and activate any release from GitHub; or use a system-installed binary.\n- **Download queue** — multiple concurrent downloads with real-time progress, speed, and ETA.\n- **Transcoder** — convert downloaded files via ffmpeg with built-in presets and HDR-aware options (tone-map to SDR, preserve HDR/DV best-effort).\n- **Settings** — configure paths, theme (dark/light), GPU acceleration, and more.\n\n## Prerequisites\n\n### Build tools\n- [Rust stable toolchain](https://rustup.rs/) (edition 2021, 1.70+)\n- A C linker (MSVC on Windows, Xcode CLT on macOS, `gcc` on Linux)\n\n### Runtime tools\n- **Download Engine** — ClipKit can download and manage it for you from the *Engine Management* tab in Settings. Alternatively install it manually and use \"Use system engine\".\n- **ffmpeg** — required for transcoding only. Install from [ffmpeg.org](https://ffmpeg.org/download.html) and make sure it is on your `PATH`, or point the app to its location in Settings.\n\n## Building\n\nThe quickest way to build and launch is with the provided scripts:\n\n```bat\n# Windows\nscripts\\build.bat\n```\n\n```bash\n# macOS / Linux\nchmod +x scripts/build.sh \u0026\u0026 ./scripts/build.sh\n```\n\nOr build manually:\n\n```bash\n# Debug build (fast to compile)\ncargo build\n\n# Release build (optimised, smaller binary)\ncargo build --release -p gui\n```\n\nThe compiled binary lives at `target/release/clipkit` (or `clipkit.exe` on Windows).\n\n\u003e **Windows note:** If you are on a machine with an Application Control policy (e.g. corporate Windows), Cargo's\n\u003e build scripts may be blocked when run from user-writable directories. The `build.bat` script handles this\n\u003e automatically by using `C:\\ProgramData\\clipkit-build` as the output directory. To do the same manually:\n\u003e ```powershell\n\u003e $env:CARGO_TARGET_DIR = \"C:\\ProgramData\\clipkit-build\"\n\u003e cargo build --release -p gui\n\u003e # Binary: C:\\ProgramData\\clipkit-build\\release\\clipkit.exe\n\u003e ```\n\n## Running\n\n```bash\ncargo run --release -p gui\n```\n\nOr run the binary directly after building.\n\n## First run\n\n1. Go to the **Settings** pane and select the **Engine Management** tab.\n2. Click **Check for versions** to load the release list.\n3. Click **Download \u0026 activate** on the desired release — ClipKit downloads the correct binary for your OS.\n4. Switch to the **Download** pane, paste a URL, and click **Download**.\n\nIf ffmpeg is installed, it will be detected automatically on startup; otherwise a warning appears in the **Transcoder** pane and you can set the path in **Settings**.\n\n## Project layout\n\n```\ncrates/\n  core/             # Config, models (DownloadJob, TranscodeJob, …), presets\n  yt_dlp_backend/   # GitHub release fetcher, binary downloader, engine process manager\n  transcoder/       # ffmpeg detection and transcode engine (HDR/DV handling)\n  gui/              # Iced application — all panes and app state\n```\n\n## Architecture notes\n\n- All heavy work (process I/O, HTTP) runs inside Tokio tasks.\n- Events flow from background tasks → `tokio::sync::broadcast` channel → Iced subscription → UI messages. The UI thread is never blocked.\n- Config is persisted to the platform-appropriate directory (`%APPDATA%\\clipkit` on Windows, `~/.config/clipkit` on Linux/macOS).\n- Engine binaries are stored in `%LOCALAPPDATA%\\clipkit\\bin\\\u003cversion\u003e\\` (Windows) or `~/.local/share/clipkit/bin/\u003cversion\u003e/` (Linux/macOS).\n\n## HDR / Dolby Vision notes\n\n| Source | Preset choice | Behaviour |\n|--------|---------------|-----------|\n| HDR10  | Preserve HDR  | Passes through `-color_primaries bt2020 -color_trc smpte2084` |\n| HDR10  | Tone-map to SDR | `tonemap(hable) + format(yuv420p)` filter chain |\n| Dolby Vision | Copy codec + Preserve HDR | Stream-copies video; DV metadata preserved if container supports it (MKV / MP4) |\n| Dolby Vision | Re-encode + Preserve HDR | Outputs HDR10 (DV metadata stripped — clear warning shown) |\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalaashatri%2Fclipkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpalaashatri%2Fclipkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalaashatri%2Fclipkit/lists"}