Clipify automatically plays your best Twitch clips to keep your stream alive and your viewers entertained, even when you're away. Designed for streamers who want to keep their channel active, Clipify offers an intuitive interface, easy setup, and powerful features to engage your audience at all times.
❗ Note: Clipify is open source, but currently not intended for self-hosting due to the way it is coded and managed. Please use the official hosted version on clipify.us.
- Auto-play Twitch Clips: Keep your stream alive by automatically playing your best clips when you're AFK.
- Easy to Use: Intuitive interface for effortless setup and management.
- Plug & Play: Add as a browser source to your streaming software.
- Player Control: Choose to play clips from today, all-time, or just your featured clips.
- Multiple Overlays: Create as many overlays as you like for different stream scenes.
- Clip Playlists: Build reusable playlists, auto-import clips, and use different playback strategies.
- Channel Points Integration: Let viewers play their favourite clips using Twitch channel points.
- Remote Control Panel: Control playback, queue state, mute, and visibility from a dedicated live remote.
- Editors & Managers: Let trusted teammates manage overlays and playlists without sharing your full account.
- Analytics Integration: Built-in support for Plausible Analytics.
To get started with Clipify, simply visit https://clipify.us and log in with your Twitch account. No installation required!
The community's “live with Clipify” status combines Twitch's live status with confirmed browser-source activity in OBS's program output. Studio Mode preview visibility and ordinary browser visits do not qualify. Activity changes travel over the existing secret-authenticated WebSocket connection and stay in the process-local subscription registry. There are no presence database reads, writes, or HTTP heartbeats. Each source connection is tracked separately; closed connections stop counting immediately, and the existing 30-second ping/pong loop terminates unresponsive connections within roughly 60 seconds. Current presence is checked independently of cached Twitch metadata. This follows the existing single-process WebSocket architecture; multiple application instances would need a shared presence layer for a complete aggregate.
OBS's browser API exposes active-state changes but no initial-active getter. After a source reload, its state stays unconfirmed until OBS emits an active-state event (switching the source out of program output and back in confirms it). Modern events and the legacy obsstudio.onActiveChange callback are supported. OBS activation also triggers a deployment check; already-loaded older JavaScript relies on its existing deployment polling until it reloads. Streaming software that does not expose these bindings stays unconfirmed; Streamlabs compatibility still needs an application-level check. These signals confirm source participation in program output, including an idle Clipify overlay, rather than whether a clip is currently playing or whether pixels are obscured by another source.
- Free: Unlimited clips, one overlay, all core features.
- Pro: 2€/month - Multiple overlays, playlists, remote control panel, editor access, channel points integration, priority support, and more.
You can upgrade to Pro directly on clipify.us.
-
Clone the repository:
git clone https://github.com/TheDanniCraft/clipify.git cd clipify -
Install dependencies:
bun install
-
Run the app in development mode:
bun run app:dev
Clipify uses Drizzle ORM for database management. Example commands:
- Push schema:
bun run db:push - Generate migrations:
bun run db:generate - Run migrations:
bun run db:migrate - Open studio:
bun run db:studio
Run ESLint:
bun run app:lint
# or
npm run app:lintbun run app:build
# or
npm run app:buildStart the production server:
bun run app:start
# or
npm run app:startOfficial images are published to ghcr.io/thedannicraft/clipify.
docker pull ghcr.io/thedannicraft/clipify:latest
# or use a specific tag from the GitHub release pageExample run:
docker run -p 3000:3000 ghcr.io/thedannicraft/clipify:latestEnvironment variables are managed via Infisical.
| Script | Description |
|---|---|
app:dev |
Start development server with Infisical env |
app:build |
Build Next.js app |
app:start |
Start production server |
app:lint |
Run ESLint |
db:push |
Push Drizzle schema (with Infisical env) |
db:generate |
Generate Drizzle migrations |
db:migrate |
Run Drizzle migrations |
db:studio |
Open Drizzle studio (with Infisical env) |
