openjutsu
One-click character swap for videos: an open-source, local Higgsfield Genjutsu alternative built on ComfyUI and MiniMax H3, with FLUX.3 Klein relighting.
Search a Plays.tv username to find the clips the Wayback Machine saved, then watch and download them for free.
MediaGitHub @Tilin29OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Plays.tv shut down in 2019 and took its clips with it. Many were saved by the Wayback Machine. Search a username to see what can still be recovered.
Taken from the repository README
Loading the full README.
Read the full README ↗Vite + React 19 + TypeScript frontend, TanStack Router, Tailwind v4 + shadcn/ui, Convex backend.
npm install
npm run dev # runs Vite and `convex dev` together
Other scripts: npm run build, npm run typecheck, npm run lint.
vercel.json configures the build: Vercel runs npx convex deploy, which pushes the
Convex functions to the production deployment and then runs npm run build with
VITE_CONVEX_URL pointing at it. All routes rewrite to index.html so client-side
routes like /u/<name> work on reload.
One-time setup:
npx convex login, then npx convex dev and choose
to create a new project (this replaces the local anonymous deployment in .env.local).CONVEX_DEPLOY_KEY with that key (Production environment).main then deploys both the backend and the frontend.For Vercel preview deployments, add a Convex Preview deploy key as
CONVEX_DEPLOY_KEY for the Preview environment; each preview gets its own Convex backend.
Feature-based frontend, layered Convex backend.
convex/ Backend (runs on Convex)
schema.ts Tables + shared field validators
model/<domain>.ts Business logic: plain functions taking ctx
<domain>.ts Public API: thin query/mutation/action wrappers
_generated/ Generated by `convex dev` (do not edit)
src/ Frontend
main.tsx Entry point
app/ App composition: providers, router instance
routes/ TanStack Router file-based routes (thin: compose features)
routeTree.gen.ts Generated by the router Vite plugin (do not edit, commit it)
features/<feature>/ One folder per feature
components/ UI for this feature
hooks/ Convex hooks (useQuery/useMutation) for this feature
index.ts Public surface: other code imports only from here
components/ui/ shadcn/ui primitives (managed by the shadcn CLI)
components/layout/ App-wide layout (shell, header, ...)
lib/ Framework-agnostic helpers (utils, env)
@/features/<name>, never
from its internals. Code shared by several features goes in components/, lib/ or hooks/.api.* directly. Convex access lives in the
feature's hooks/, so data shape changes stay in one place.convex/model/.
Reuse validators from schema.ts instead of redefining them.src/routes/ defines the URL, params/search validation
and loaders, and renders feature components. Logic stays in features/.components/ui/. Add with npx shadcn@latest add <name>, and wrap a
primitive in a feature component when you need to customise it.@/… → src/…@convex/… → convex/… (e.g. import { api } from '@convex/_generated/api')