SilkCast is a desktop IPTV client built with Tauri (Rust backend) and React (TypeScript frontend).
This project is a client only.
No channels, providers, or playlists are bundled.
SilkCast is in active development. Core source import, catalog browsing, playback, recents, and settings are implemented.
- Import and manage M3U playlist sources (URL or local file)
- Import and manage Xtream sources (server URL, username, password)
- Edit, refresh, and delete sources
- Browse
Live TV,Movies, andSeriescatalogs - Filter by group, search by name, and toggle favorites
- Series episode browsing for Xtream sources
- Live EPG now-playing labels and source-level EPG refresh for Xtream live channels
- Recents view split by media type
- In-app web playback (Vidstack) for live and on-demand streams
- MPV pop-out playback
- Settings for hardware decode, startup behavior, default player, and theme
- Local persistence with SQLite, plus logs and crash reports
- Frontend: React 19, TypeScript, Vite, Tailwind CSS v4, shadcn/ui, Zustand
- Desktop runtime: Tauri v2
- Backend: Rust
- Storage: SQLite (
rusqlitebundled) - Playback: Web player (
@vidstack/react) andlibmpv/mpv - Testing: Vitest + Testing Library (frontend),
cargo test(backend)
src/- React app, pages, UI components, store, and API clientssrc-tauri/- Rust backend commands, playback engine, source import/parsing, storage.github/workflows/tests.yml- CI test job for Windows and Linux.github/workflows/release.yml- tagged Windows installer release workflow
- Node.js 22+ (CI uses Node 22)
- npm
- Rust toolchain (stable)
- Tauri prerequisites for your OS: Tauri v2 prerequisites
- MPV requirements:
- Embedded/
libmpvbackend: dynamic library available on your library path- Windows candidates:
mpv-2.dll,libmpv-2.dll,mpv.dll - Linux candidates:
libmpv.so.2,libmpv.so
- Windows candidates:
- MPV pop-out:
mpvexecutable available on yourPATH(mpvormpv.exe)
- Embedded/
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelfgit clone https://github.com/nalyDzzz/SilkCast.git
cd SilkCast
npm install
npm run tauri devFor full desktop behavior, use npm run tauri dev instead of only npm run dev.
npm run dev- Start Vite dev servernpm run tauri dev- Run the full desktop app in developmentnpm run build- Build frontend assetsnpm run tauri build- Build desktop bundlesnpm run prepare:mpv-runtime- Validate/copy Windows MPV runtime DLLs into bundle resourcesnpm run build:windows:exe- Build NSIS installer (.exe)npm run build:windows:installers- Build NSIS + MSI installersnpm run build:windows:installers:strict- Same as above but fail if required MPV DLLs are missingnpm run test- Run Vitest in watch modenpm run test:run- Run frontend tests oncenpm run test:rust- Run Rust testsnpm run test:all- Run frontend and Rust testsnpm run test:coverage- Run frontend tests with coverage
- Place MPV runtime DLLs in a folder (must include one of
mpv-2.dll,libmpv-2.dll, ormpv.dll). - Set
MPV_DLL_DIRto that folder. - Build installers.
$env:MPV_DLL_DIR="C:\path\to\mpv\bin"
npm ci
npm run build:windows:installersArtifacts are produced in:
src-tauri/target/release/bundle/nsis/*.exesrc-tauri/target/release/bundle/msi/*.msi
Push a tag that starts with v (for example v0.1.0) to trigger the release workflow:
git tag v0.1.0
git push origin v0.1.0The workflow builds Windows installers and uploads them to a draft GitHub Release.
App data is stored under the OS-specific Tauri app data directory.
The backend creates:
storage/silkcast.db- SQLite databaselogs/silkcast.log- application logcrash/- panic/crash reports
- Development and CI currently target Windows and Linux.
- On Wayland compositors (including Hyprland), MPV window embedding is not supported. SilkCast falls back to MPV pop-out mode for that path.
SilkCast is a media client only.
- No IPTV providers or playlists are bundled
- No scraping modules are included
- Users are responsible for supplying legally obtained sources
No license file has been added yet.