{"id":51464655,"url":"https://github.com/simplearyan/kenichi-converter","last_synced_at":"2026-07-06T09:31:50.418Z","repository":{"id":335474259,"uuid":"1145895087","full_name":"simplearyan/kenichi-converter","owner":"simplearyan","description":"⚡ Kenichi Converter | A high-performance, cross-platform media converter — powered by FFmpeg, built with Tauri v2.","archived":false,"fork":false,"pushed_at":"2026-04-23T07:09:31.000Z","size":7769,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-23T09:11:23.254Z","etag":null,"topics":["ffmpeg","react","rust","tauri"],"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/simplearyan.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":"ROADMAP.md","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-01-30T10:55:46.000Z","updated_at":"2026-04-23T07:09:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/simplearyan/kenichi-converter","commit_stats":null,"previous_names":["simplearyan/kenichi-converter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/simplearyan/kenichi-converter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplearyan%2Fkenichi-converter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplearyan%2Fkenichi-converter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplearyan%2Fkenichi-converter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplearyan%2Fkenichi-converter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simplearyan","download_url":"https://codeload.github.com/simplearyan/kenichi-converter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplearyan%2Fkenichi-converter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35185688,"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-07-06T02:00:07.184Z","response_time":106,"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":["ffmpeg","react","rust","tauri"],"created_at":"2026-07-06T09:31:49.652Z","updated_at":"2026-07-06T09:31:50.385Z","avatar_url":"https://github.com/simplearyan.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"app-icon.png\" alt=\"Kenichi Converter\" width=\"96\" /\u003e\n\n# ⚡ Kenichi Converter\n\n**A high-performance, cross-platform media converter — powered by FFmpeg, built with Tauri v2.**\n\n[![Release](https://img.shields.io/github/v/release/simplearyan/kenichi-converter?color=f59e0b\u0026label=Latest%20Release\u0026logo=github)](https://github.com/simplearyan/kenichi-converter/releases/latest)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/simplearyan/kenichi-converter/release.yml?label=CI%20Build\u0026logo=github-actions)](https://github.com/simplearyan/kenichi-converter/actions/workflows/release.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-blue)](#-download)\n\n\u003c/div\u003e\n\n---\n\n## 📦 Download\n\n\u003e Download the latest installer for your operating system from the [**Releases**](https://github.com/simplearyan/kenichi-converter/releases/latest) page.\n\n| Platform | Installer | Notes |\n|---|---|---|\n| 🪟 **Windows** | `.msi` | Run the installer wizard |\n| 🍎 **macOS (Apple Silicon)** | `.dmg` | M1 / M2 / M3 |\n| 🍎 **macOS (Intel)** | `.dmg` | Intel Core |\n| 🐧 **Linux (AppImage)** | `.AppImage` | Universal — make executable \u0026 run |\n| 🐧 **Linux (Debian/Ubuntu)** | `.deb` | `sudo dpkg -i *.deb` |\n\n\u003e **macOS note:** If macOS blocks the app on first launch, right-click the `.app` → **Open** to bypass Gatekeeper.\n\n---\n\n## ✨ Features\n\n- **🚀 Native-Speed Conversion** — FFmpeg sidecars run directly on your CPU, no cloud uploads, no latency.\n- **🎨 Pro Gray UI** — Dark-themed glassmorphism interface with smooth micro-animations.\n- **📥 Drag \u0026 Drop** — Drop any media file directly from your file explorer.\n- **🛠️ Precision Controls** — Resolution (480p → 4K), quality (CRF), playback speed, and output format.\n- **✂️ Trim \u0026 Clip** — Set start/end timestamps to extract specific segments.\n- **🎬 GIF Export** — Basic or Pro mode (two-pass palette generation for crisp, dither-free GIFs).\n- **🎵 Audio Extraction** — Output to MP3, M4A, WAV (lossless), or FLAC.\n- **📐 Smart Compression** — Target a specific file size (e.g., ≤ 25 MB for Discord); bitrate is calculated automatically.\n- **📜 Live Activity Log** — Real-time FFmpeg output with color-coded progress, errors, and timestamps.\n- **🔔 Completion Alerts** — Native OS notification + audio chime when a job finishes.\n- **🌍 Cross-Platform** — Windows, macOS (Intel \u0026 Apple Silicon), and Linux — all from one codebase.\n\n---\n\n## 🚀 Getting Started (Development)\n\n### Prerequisites\n\n| Requirement | Version | Install |\n|---|---|---|\n| Node.js | LTS | [nodejs.org](https://nodejs.org/) |\n| Rust | Stable | [rustup.rs](https://rustup.rs/) |\n| FFmpeg binaries | 6.1 | Auto-downloaded by CI; see below for local setup |\n\n### 1 — Clone \u0026 Install\n\n```bash\ngit clone https://github.com/simplearyan/kenichi-converter.git\ncd kenichi-converter\nnpm install\n```\n\n### 2 — Download FFmpeg Sidecars (Local Development)\n\nThe app requires platform-specific FFmpeg and FFprobe binaries in `src-tauri/bin/`.\nRun the included download script for your machine:\n\n```bash\n# Windows\nnode scripts/download-ffmpeg.cjs x86_64-pc-windows-msvc\n\n# macOS (Apple Silicon)\nnode scripts/download-ffmpeg.cjs aarch64-apple-darwin\n\n# macOS (Intel)\nnode scripts/download-ffmpeg.cjs x86_64-apple-darwin\n\n# Linux\nnode scripts/download-ffmpeg.cjs x86_64-unknown-linux-gnu\n```\n\n### 3 — Run in Development Mode\n\n```bash\nnpm run tauri dev\n```\n\n\u003e The Vite dev server starts at `http://localhost:1420` and Tauri launches a native window automatically.\n\n---\n\n## 🏗️ Architecture\n\n```\nkenichi-converter/\n├── src/                      # Frontend (React 19 + TypeScript)\n│   ├── components/           # UI Components\n│   │   ├── TitleBar.tsx      # Frameless window controls (minimize/maximize/close)\n│   │   ├── LandingPage.tsx   # Empty state / file drop CTA\n│   │   ├── MediaInfoCard.tsx # Thumbnail, filename, duration display\n│   │   ├── OptionsPanel.tsx  # All conversion settings (format, resolution, trim…)\n│   │   ├── ActivityTerminal.tsx # Live FFmpeg log viewer\n│   │   └── ActionCenter.tsx  # Convert button + progress bar\n│   ├── hooks/\n│   │   ├── useConverter.ts   # FFmpeg execution, progress parsing, notifications\n│   │   ├── useFileProcessing.ts # File dialog, thumbnail \u0026 metadata extraction\n│   │   └── useDragDrop.ts    # Tauri OS drag-and-drop event listeners\n│   ├── utils/\n│   │   └── ffmpegUtils.ts    # FFmpeg argument builder (filter_complex, trim, CRF, target-size)\n│   ├── types.ts              # VideoOptions interface \u0026 defaults\n│   └── App.tsx               # Root layout orchestrator\n│\n├── src-tauri/                # Backend (Rust / Tauri v2)\n│   ├── src/lib.rs            # Tauri commands \u0026 plugin registration\n│   ├── bin/                  # FFmpeg \u0026 FFprobe sidecar binaries (git-ignored)\n│   └── tauri.conf.json       # Window config, CSP, bundle metadata\n│\n├── scripts/\n│   └── download-ffmpeg.cjs  # Cross-platform FFmpeg sidecar downloader\n│\n└── .github/workflows/\n    ├── release.yml           # 🚀 Production release (tag → GitHub Release)\n    ├── test.yml              # 🧪 Build verification on push / PR\n    ├── manual-build.yml      # 🛠️ On-demand build with downloadable artifacts\n    └── check-sidecars.yml    # 🔍 Weekly FFmpeg download health check\n```\n\n---\n\n## 🔁 Release Workflow (CI/CD)\n\nReleases are fully automated via **GitHub Actions**.\n\n### Trigger a Release\n\n1. Update `version` in `src-tauri/tauri.conf.json` and `src-tauri/Cargo.toml`.\n2. Commit and push your changes.\n3. Tag the commit and push the tag:\n\n```bash\ngit tag v1.0.0\ngit push origin v1.0.0\n```\n\nThe `release.yml` workflow will automatically:\n- Build for **Windows x86_64**, **macOS ARM64**, **macOS x86_64**, and **Linux x86_64**\n- Download the correct FFmpeg 6.1 sidecars for each target\n- Package installers (`.msi`, `.dmg`, `.AppImage`, `.deb`)\n- Create a **GitHub Release** with all installers attached\n\n### CI Pipelines\n\n| Workflow | Trigger | Purpose |\n|---|---|---|\n| `release.yml` | Push a `v*.*.*` tag | Build all platforms \u0026 publish GitHub Release |\n| `test.yml` | Push to `main` / PR | Verify the app builds on all 4 targets |\n| `manual-build.yml` | Manual dispatch | Build a specific platform, download as artifact |\n| `check-sidecars.yml` | Weekly + PR to `scripts/` | Verify FFmpeg download URLs are still live |\n\n---\n\n## 🐛 Known Issues\n\n- **No cancellation** — Once conversion starts, the FFmpeg process cannot be interrupted via the UI.\n- **macOS code signing** — Without an Apple Developer certificate, users must bypass Gatekeeper manually on first launch.\n\n---\n\n## 🗺️ Roadmap\n\nSee [ROADMAP.md](./ROADMAP.md) for the full plan. Next up:\n\n- [ ] **Batch Processing** — Queue multiple files, track each job's progress independently\n- [ ] **Cancel Button** — Kill the active FFmpeg process mid-conversion\n- [ ] **macOS Code Signing** — Auto-sign \u0026 notarize via CI for seamless first launch\n\n---\n\n## 🤝 Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.\n\n1. Fork the repo\n2. Create a feature branch: `git checkout -b feat/my-feature`\n3. Commit: `git commit -m 'feat: add my feature'`\n4. Push and open a PR\n\n---\n\n## 🛡️ License\n\nDistributed under the **MIT License**. See [`LICENSE`](LICENSE) for details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\nBuilt with ❤️ by \u003ca href=\"https://github.com/simplearyan\"\u003e@simplearyan\u003c/a\u003e · Powered by \u003ca href=\"https://tauri.app\"\u003eTauri v2\u003c/a\u003e \u0026 \u003ca href=\"https://ffmpeg.org\"\u003eFFmpeg\u003c/a\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplearyan%2Fkenichi-converter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimplearyan%2Fkenichi-converter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplearyan%2Fkenichi-converter/lists"}