ClipCast helps you prepare and schedule video posts for YouTube, Instagram, and TikTok: bring in your videos, run transcription and AI-assisted metadata locally, then publish—or use Manual Assist where you finish the upload yourself in the browser. API keys and Google sign-in use your own credentials (bring your own keys); they are stored on your computer, not in this repository.
![]() |
|---|
| Main window: manage your queue, edit titles and descriptions, and see YouTube, Instagram, and TikTok at a glance. |
Ready to use: you only need to download the Windows installer from GitHub Releases, install it, and open ClipCast. No Git, no Node.js, no compiling from source, and no command line required for normal use.
ClipCast is a desktop app for Windows shipped as a normal .exe installer—the same kind as most Windows programs.
- Open Releases on GitHub and download the latest Windows installer (
.exe). - Run the installer and launch ClipCast from the Start menu.
- In the app, go to Settings (gear menu) and set up Integrations (API keys / YouTube connection) as needed, then add videos, generate metadata, plan scheduling, and publish.
Typical flow: Install → Settings / Integrations → Add videos → Generate metadata → Plan → Publish · optional automation where supported.
More help: step-by-step guides, screenshots, and troubleshooting — getclipcast.app/guide.
- Import videos and folders; table with scheduling, filters, and per-platform options
- Speech-to-text and optional OpenAI for metadata (and optional cloud transcript)
- Exports and templates for YouTube, Instagram, TikTok
- YouTube: connect with your own Google OAuth app and upload or schedule
- In-app updates when you install from our GitHub Releases (updates follow new releases here)
- Interface available in multiple languages
- Windows installer with optional steps (startup, shortcuts, etc.)
Nothing in this repository should contain real API keys, OAuth client secrets, or tokens. Use the in-app Settings screens (for example Integrations) so secrets are stored securely on your machine.
- In the app, open Settings → Integrations.
- Add an OpenAI API key. It stays in the OS credential store, not in project files.
- Optionally turn on cloud transcription if you prefer that over the local path.
Metadata generation uses your OpenAI key; there is no separate cloud backend run by this project.
Each user creates a Google OAuth “Desktop app” in Google Cloud Console. Installers from this repo do not include a shared Google Client ID or secret.
- Create or pick a project, enable YouTube Data API v3.
- Set up the OAuth consent screen (add test users if the app is in Testing).
- Under Credentials, create an OAuth client ID of type Desktop app; note Client ID and Client secret.
- In ClipCast: Settings → Integrations, paste and save those values, then use Connect YouTube in the command bar.
Optional sample shape only: assets/oauth/google_oauth_client.sample.json (placeholders—never commit real secrets; see .gitignore).
Developers only: you can also pass GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET (or YT_GOOGLE_*) for local debugging.
An NVIDIA GPU alone is not enough: drivers should be recent enough for CUDA 12.x–compatible use. If something fails, ClipCast may still run on CPU.
- Update NVIDIA drivers from nvidia.com, reboot, try again.
- In ClipCast: Settings → Developer mode → check Compute backend and Refresh after driver changes.
- In a terminal,
nvidia-smican confirm the driver reports a sensible CUDA version.
More detail: getclipcast.app/guide (troubleshooting section).
Pipeline outputs (audio, transcripts, exports, reports) use one base folder you can change in the app.
- Settings → Developer mode → Outputs folder
- Browse… or Reset for the default.
- Subfolders include things like
Reports/andExports/<platform>/.
Pull requests and issues are welcome. Keep changes focused and match the project’s style. Do not commit secrets—use Integrations locally. See also For developers below. ESLint: .eslintrc.cjs.
Please report security issues privately (for example GitHub Security → Advisories for this repository) before posting sensitive details in public issues.
This project is released under the MIT License.
This section is for people working in the source repository. End users should use the GitHub Releases installer instead of building from scratch.
| Part | Notes |
|---|---|
| App shell | Desktop runtime; main entry: electron/main.mjs |
| User interface | Web-style UI in src/ |
| Video / AI pipeline | Python under yt_pipeline/; official builds bundle a runtime and tools in the installer |
| Media tools | Bundled helpers in release builds (ffmpeg / related) |
- Node.js 20+ and npm (or compatible client) to install dependencies and run dev scripts
- Windows is the main platform; other targets may be experimental
Day-to-day users of the prebuilt app do not install Node or Python separately—the release bundles what the packaged app needs.
git clone https://github.com/viodipro-dotcom/ClipCast.git
cd ClipCast
npm ci # or: npm install
npm run devnpm run dev starts the dev UI server and opens the desktop app against it (hot reload while editing the interface).
| Script | Purpose |
|---|---|
npm run dev |
Development mode: UI server + desktop app |
npm run build |
Production UI build into dist/ |
npm run preview |
Preview the UI build in a browser (no desktop shell) |
npm run build:icon |
Regenerate app icons (scripts/build-icon.mjs) |
npm run clean:outputs |
Clean default pipeline output folders (scripts/clean-outputs.mjs) |
npm run prepare:cuda-dlls |
Copy CUDA DLLs for local packaging (scripts/prepare-cuda-dlls.mjs, Windows) |
npm run dist |
Full local packaging to release/ (no upload) |
npm run release |
Same pipeline, then publish assets (needs token/config for GitHub upload) |
npm test |
Project test entry if configured |
Official Windows installers (with bundled pipeline runtime and media tools) are built in CI and attached to GitHub Releases. That is what most people should download.
Building a full installer on your own machine (npm run dist / npm run release) is only needed for maintainers or advanced testing. It expects a complete vendor/ layout (bundled Python tree, binaries, optional CUDA copies) consistent with package.json build.extraResources. The release workflow prepares those pieces on the build server before packaging.
- OAuth: CI does not embed Google OAuth secrets; users still bring their own keys in the app.
- Updates: The packaged app checks this repository’s release feed when updates are configured; installing at least one build from this repo’s Releases aligns in-app updates with these assets.
The website/ folder is a separate documentation / marketing site. It is not required to run the desktop app.
cd website
npm install
npm run dev
npm run build.
├── src/ # User interface
├── electron/ # Desktop app shell, connectivity, uploads, etc.
├── yt_pipeline/ # Local pipeline (transcribe, metadata, reports)
├── scripts/ # Dev helpers, cleaning, packaging prep
├── vendor/ # Filled by release automation (or manually for local full builds)
├── assets/ # Icons and non-secret samples
├── build/ # Icon sources
├── website/ # Optional docs site
└── .github/ # CI (e.g. release workflow)
