I'm happy to merge PRs if anyone would like to help! I'm also open to feature suggestions and bug reports! Regardless of which you want to contribute, please be as descriptive as possible. If submitting a PR, please explain why your change is necessary in the PR and commit messages. Big features should first be discussed over an issue, so please start there first!
The UI portions of this userscript are written with Svelte 3 and
Typescript, then built with Vite.
You'll most likely have to be familiar with Svelte to work on it, though it's pretty easy
to get up to speed. A small script (/dist.js
) takes the Vite build and bundles it with the userscript
metadata block, incrementing the version number if creating a release build.
You will need Node.js and ideally should be pretty familiar with Javascript development. Development mostly centers around testing things on a test webpage that simulates a VRV video page.
You will also need to setup and install Docker and Docker Compose
- Fork the repository, create a branch for your feature.
- Copy any number of
.mp4
videos to thevideos/
directory in the project root (they can be nested in folders). - In separate terminal windows run each of these:
npm run build-static:dev
(compiles front end scripts, both for the subtitler and the dev server)npm run build-server:dev
(compiles typescript files for the server)./run.sh dev
(starts the dev server)
- Open a web browser to
http://localhost:3500
, scroll down and select a video.
- Edit files in
src/
and save - Your browser should automatically reload with your changes
- Repeat until you're done with the feature you're working on.
- Run
npm run build-subtitler:test
and paste the code fromdist/jimaku-player.user.js
into Tampermonkey and try out your changes on VRV/Crunchyroll, please try to do some general regression testing around anything that possibly could be impacted by your changes. - Submit a PR targeting master from your fork!
You can find all source files in src/
. Here is breakdown of those directories:
- The subtitler code (what turns into the Jimaku Player userscript) is in
src/static/subtitler
. - The dev server front end is in
src/static/local-player
(separated intohost
andplayer
, as it uses aniframe
to mimic the way VRV's player works) - The dev server's code is in
src/server
When releasing a new build npm run build-subtitler:release
will create a production build of the userscript. I
won't accept PRs that include a new build of the userscript, I will build new releases myself so I can verify
the contents and make an announcement on Discord.