Jukebox
Messages
Friends
Owner panel
Review queue

Events written in author mode by anyone without Manager wait here.

Home
My List
Schedule
Library
Admin
Pending account requests 0
Accounts
Server settings
Who may use this site Enforced by the server itself, so it holds even against a browser that has been tampered with.
Accept account requestsPeople can ask for an account; nobody gets in until you approve.
Open registrationAnyone can create an account instantly, with no approval. Leave this off unless you really mean it.
Activity
Settings
Library
Anime folderChoose the folder that holds your shows.
Extra episode source Episode titles and summaries come from TVmaze automatically — no setup needed. If a show isn’t on TVmaze, a free TMDB key lets VioletWatch try there too. Entirely optional. Get a key
Show technical details Reveals behind-the-scenes information like source filenames under each episode. Off by default — it isn’t something most people need to see.
Moment hints Names the moment when you hover its mark on the progress bar, and gives a quiet nudge when you reach a new one. Only ever shows moments you’ve already watched past.
Content warnings A quiet heads-up a few seconds before extreme moments — flashing lights and the like — with a one-tap skip. Off unless you want it, and only for episodes that ship warning data.
Colours follow the show While you’re inside a show, the interface takes on its palette. Your chosen accent still rules everywhere else.
Library manager A health report for your folders: missing episodes, duplicates, and how much of each show has subtitles and details.
Accounts & data file Accounts and settings live in this browser, which means clearing its data would take them with it. Save a copy into your anime folder so they survive.
Playback
Arrow key jumpHow far ← and → skip.
J / L jumpThe bigger skip, on the J and L keys.
Skip-intro lengthHow far the Skip Intro button jumps.
Resume where I left offJump back to your last position automatically.
Auto-mark watchedMark an episode watched once you pass 90%.
Appearance
Accent colourDrives every gradient, glow and highlight.
Interface sizeScales the whole UI — handy on a TV or a small laptop.
Background imageYour own wallpaper behind the void. Stored on this PC.
Background dimDarkens the wallpaper and the 3D scenery, so text stays readable over them.
Background blurBlurring keeps the wallpaper from competing with the UI.
SceneryA backdrop behind the void — space, a planet, dusk over Japan, and more.
Motion
Grid follows pointerThe void mesh drifts and parallaxes with your mouse.
Grid bends at the cursorThe mesh dips gently where your pointer is (Theater mode).
Card tiltPosters lean toward your cursor in 3D.
Zoom into the episode Starting an episode grows its thumbnail into the player instead of cutting straight there — and shrinks back to where it came from when you leave. Follows whichever view mode you're in.
Reveal on scrollCards fade in as they come into view.
Preview on hoverHovering a show cycles through its episode thumbnails.
Subtitles
Offer to skip marked sectionsWhen an episode has an ep01.json beside it, prompt to skip intros and recaps.
Keep text formattingHonour bold, italics, underline and colours from the subtitle file.
Separate simultaneous speakersWhen two lines overlap, show each on its own and fade the one that isn't currently being said. Signs and broadcasts move to the top.
Theater & curve
The real geometry, drawn with the same maths the theater panel uses — a top-down cross-section of the actual cylinder, and the panel seen at an angle.
Curve amountHow tightly the screen wraps, like a curved monitor. 0 is perfectly flat.
40
Curve directionWrapping around you (like a monitor), or bulging outward.
Rotation limitHow far you can turn the panel by dragging.
Spring backReturn to rest when you let go, or leave it where you put it.
Mouse parallaxThe panel leans very slightly toward your cursor.
Edge bleedLet the picture's colour spill out past the frame.
Cinema
Show a crowdFill the cinema with silhouettes that doze, leave, and file out at the end.
Default audience sizeHow full the room is (override per-episode from the cinema gear).
18+ crowd eventsOff by default. Enables a very abstract couple silhouette in the back rows.
Spoilers
Spoiler levelHow much an episode reveals about itself.
Atmosphere
Spatial travelMove through the dimension when changing screens.
Ambient light bleedLet the picture spill colour into the void.
Void gridThe warped mesh behind the theater screen.
Server
Send everything to your server account One file with every bookmark, journal entry, episode watched, resume position, saved word, prediction and moment you’ve reached. Take it to the server, sign in, and use Bring your PC data over — it merges rather than overwrites, so whichever side is newer wins.
Your serverNot connected. Connect once and uploading becomes a single click from any show.
Send your libraryPick any show and send the episodes that aren’t up there yet. Resumable — a dropped connection carries on where it stopped.
Your data
Data folderKeep everything in a folder on your PC (e.g. VioletData) instead of only inside this browser profile — every profile pointed at the same folder shares accounts, progress, bookmarks, all of it. Sign-ins stay per-profile.
Backup / move to another PCOne file with everything: progress, current episode, watched flags, captions, settings and your background.
StorageChecking…
Reset everythingWipes progress, captions and preferences on this PC.
About & Help
How it works

VioletWatch reads a folder of video files directly in your browser — nothing is uploaded anywhere. Posters, scores and synopses are looked up from the free AniList API based on each folder's name. Your watch progress and resume positions are saved locally in this browser.

Folder layout

Pick the folder that contains your shows. Each show should be its own sub-folder:

Anime/
├─ One Piece/
│   ├─ One Piece - 1001.mp4
│   └─ One Piece - 1002.mp4
└─ Re Zero/
    ├─ Re Zero - 01.mp4
    └─ Re Zero - 01.srt   ← subtitles auto-detected
Subtitles

Drop a .srt or .vtt file with the same name next to a video and it loads automatically (SRT is converted on the fly). Toggle it with the CC button or the C key.

Auto-generated captions

If an episode has no subtitles, the player offers to generate them for you using a local speech-recognition model (OpenAI Whisper, via transformers.js). It runs entirely on your PC — audio never leaves your machine. Pick how you want it done: Quick → English (Whisper translates the audio directly — fastest, roughest), JA → EN (better) (transcribes the Japanese first, then runs a dedicated Japanese→English model over the text — slower but noticeably better, since text→text is an easier problem than audio→translation), or Original language. If the episode already has Japanese subtitles, best of all is to right-click → Translate these → English: it skips speech recognition entirely, so there are no transcription errors to compound. Also pick a quality level: Faster (base) or Better (small) — "small" is noticeably more accurate but slower and a bigger download. It runs on the CPU for accuracy (the WebGPU path produced garbled output), the model's encoder is kept at full precision (quantising it is what caused the earlier repeating-gibberish output), and a repetition filter strips any looping the model still produces. serve.py makes the CPU path multi-threaded so it stays reasonably quick. Results are saved permanently and you can Save .srt. You can also right-click the video to regenerate, remove, or load your own subtitle file. Audio decoding has the same format limits as playback (works best on .mp4).

Saving & persistence

Watch progress, resume positions, fetched metadata and generated captions are all stored on your PC (localStorage + IndexedDB) and the app requests persistent storage so the browser won't clear them — everything survives closing the app. The one thing browsers won't let a local page remember is the folder itself, so you'll re-pick it each launch; the moment you do, all your progress and captions snap back into place.

Video formats & MKV

.mp4 / .m4v / .webm (H.264 / AAC) play natively. Browsers can't open .mkv (and .avi, .ts, etc.) directly, so VioletWatch offers to convert them to MP4 on your PC using FFmpeg compiled to WebAssembly — nothing is uploaded. When a file can't play, click Convert & play:

Quick convert (re-wrap to MP4) is fast and works when the video is H.264.
• For HEVC/x265: install the HEVC Video Extensions from the Microsoft Store ($0.99) and open VioletWatch in Microsoft Edge — then quick convert is usually enough (Edge decodes HEVC with your GPU; VioletWatch tags it hvc1 so the browser accepts it).
• If it still won't play (no HEVC support, or AV1), you'll be offered a full re-encode — plays anywhere but slow.

The converter downloads ~32 MB the first time. Converting happens in memory, so very large files (>~1 GB) can run out of memory — for those, converting to mp4 with a desktop tool is more reliable. After converting, hit Save .mp4 to keep the converted file so it plays instantly next time (you can delete the original .mkv).

Viewing modes

The player has three modes, switchable top-right (or press T to jump to Theater):

Normal — standard flat playback, edge to edge.
Theater — the picture floats as a glass-edged panel inside an infinite warped grid void. The frame curves and tilts back in 3D while the video itself stays perfectly flat and sharp, and an ambient light bleed sampled from the picture spills out onto the void.
Cinema — pure black, no framing, maximum focus.

Theater costs almost nothing to run: the video is never redrawn, the grid is painted once per resize, and only a tiny 24×14 ambient sample refreshes a few times a second.

Keyboard shortcuts (player)

Space / K play·pause  ·  J / L −10s·+10s  ·  ← / → −5s·+5s  ·  ↑ / ↓ volume  ·  F fullscreen  ·  M mute  ·  C captions  ·  T theater  ·  N next episode  ·  0–9 jump to %  ·  < / > speed

Catching up…
🎬

Can't play this file

Your browser can't decode this video's format. It works best with .mp4 (H.264).

Cinema · this episode
10s
10s
Up next in 6s
💬
This video doesn’t have captions
Generate subtitles locally on your PC. Saved for next time.
Transcribing…
Play / Pause
Loop
Subtitles
Captions on / off
Regenerate captions
Translate these → English
Load subtitle file…
Style for this show…
Remove captions
Bookmarks
Recap this episode
Who is this again?
Synchronized start
Rate & review this episode
Add bookmark hereB
Mark a skippable section…
Show bookmarks
Save chapters .json
Stats for nerds
Bookmark at 0:00
0/120
Bookmarks0
Subtitles ready.
Converted to MP4.
0:00
0:00/0:00

VioletWatch

Sign in to continue

ORIGIN0.00 · 0.00
Loading…