Nekocap
Browser extension for creating & uploading community captions for YouTube, niconico and other video sharing sites.
A browser extension for creating, uploading and viewing community created captions on video sharing sites such as YouTube, Vimeo and niconico. The project is written primarily in JavaScript, distributed under the GNU General Public License v3.0 license, first published in 2020. Key topics include: caption, captions, editor, extension, substation-alpha.
Latest release: 1.22.0
March 10, 2026View Changelog →
<p align="center">
<a href="https://nekocap.com/" target="_blank" rel="noopener">
<img src="https://user-images.githubusercontent.com/314281/102780389-cc03ed00-43d0-11eb-87c3-6d50a2ab5752.png" width="100" alt="NekoCap logo">
</a>
</p>
<div align="center"><sub>Logo by <a href="https://twitter.com/Iceikory" target="_blank" rel="noopener">@Iceikory</a></sub></div>
<h1 align="center">NekoCap</h1>
<div align="center">


Features
Extension
- Built in caption editor accessible directly from supported video sharing sites
- Custom caption positioning
- Support for hotkeys from various editing software
- Caption file export (SRT)
- More to come
- Caption file loading (SRT, VTT, SBV, SSA, ASS, TXT supported)
- Caption upload
- Caption viewing
- Advanced Substation Alpha (SSA/ASS) caption rendering
- Caption rating system
Website
- Captioned video search
- Captioner profiles
- Caption review page
- Captioner moderation tools (verify, reject)
Supported sites
- YouTube
- Vimeo
- bilibili
- niconico
- TVer
- Netflix (editor disabled)
Setup for local development
Tested build environment
- Node 22.14.0
- Windows 10
Steps
- Run
npm ci - Copy the contents of
.env.sampleto.envand fill in the details.- Firebase variables are used for auth
- Run
npm run watchto start the webpack dev server for both the extension
and the NekoCap website - Go to
chrome://extensionsin Chrome and load the unpacked extension from
thedist/extensionfolder - Go to
http://localhost:12341to access the NekoCap website
Adding fonts to be hosted from the NekoCap site for SSA/ASS rendering
- Create a folder called
fontsin thepublicfolder. - Add woff2 webfonts that you want to serve from the website into that folder
- Modify
src/common/substation-fonts.tsto assign font names to the
corresponding woff2 files in that folder. - Run
npm run fontlistto generate thepublic/fontlist.jsonfile that will
be pulled by the extension and website to know which fonts are available. You
can serve this file and the fonts separately so that you don't have to
redeploy when new fonts are added.
Creating a production build
- Copy the contents of
.env.sampleto.env.prodand fill in the details.- Add
PRODUCTION=1to the end of the file.
- Add
- Run
npm run buildto build both the extension and the website- Run
npm run build:extto build just the extension - Run
npm run build:webto build just the website
- Run
- The output will be in
.next/anddist/extension- License information of utilized packages will be in *.licenses.txt next
to the output javascript
- License information of utilized packages will be in *.licenses.txt next
Creating a Firefox extension build
- Copy the contents of
.env.sampleto.env.prodand fill in the details.- Add
PRODUCTION=1to the end of the file.
- Add
- Run
npm run buildto build both the extension and the website- Run
npm run build:ext:firefoxto build just the extension
- Run
- The output will be
dist/extension
If you want to build the NekoCap website Docker image
- Follow step 1 in Creating a production build
- Copy the contents of
Dockerfile.sampletoDockerfileand change whatever
is necessary. - Copy the nginx template
docker/default.conf.templateto
docker/default.confand change the configuration to suit your needs. - Run
docker buildwith your desired options.
Environment variables
Refer to the list of environment variables
here.
Special thanks
Many great packages helped to bring this to life but extra kudos go to these
projects without which NekoCap would not have been the same:
- SubtitleOctopus - ASS
rendering - React Hotkeys - Easy to use
hotkeys (use the latest Github build and not the outdated npm one) - subtitle.js - SRT and VTT parsing
- ass-compiler - ASS parsing
Translations:
- Arabic: Adnamie
- French: Adnamie
- Japanese: rama_onehalf
- Persian: Pikhosh
- Vietnamese: Golđén
Contributors
Showing top 3 contributors by commit count.
This article is auto-generated from nopol10/nekocap via the GitHub API.Last fetched: 6/14/2026
