While using Netflix for studying language with the help of Language Learning Netflix, I found that many titles lacked subtitles in my desired languages. In particular, Netflix often has subtitles region locked (ie JP subs in Japan only). The goal of this project is to load external subtitles into Netflix to allow for efficient language learning.
- Preact (lightweight React alternative)
- Redux
- Webpack/Babel
To use the script with Netflix, you will first need to set up a few things
- A Netflix account
- Language Learning Netflix
- Tampermonkey
- (Optional) Netflix - subtitle downloader
This project has only been tested on Chrome with Tampermonkey. Greasemonkey, Firefox, etc have not been tested and are not guaranteed to function correctly.
Download the latest release at here or on GreasyFork. Install the script to your browser using Tampermonkey. Navigate to Netflix.
Under the subtitles menu, you will find a third section to load external subtitles.
Currently supported subtitle formats:
- WEBVTT
- SRT
After uploading a subtitle it will automatically be selected. It will also be cached for future use with the same title. Begin playing the video to see subtitles. Note that this script will display subtitles below any LLN subtitles. Subtitles will be displayed as plain text. In order to take advantage of LLN's language learning features, it is recommended to use LLN for the language you wish to learn, and this script for subtitles in your native language.
As an example, a Japanese language learner wishing to watch the title "Attack on Titan" would ideally watch on Netflix Japan. LLN will then display JP subtitles, and this script can be used to upload subtitles. It is up to the user to find subtitles to upload. In some cases, such as the aforementioned title, Netflix itself provides subtitles in different regions. Using the optional script mentioned before, one can download these subtitles and upload them when playing in another region. uNoGS can be used to determine subtitle availability by region. Subtitles can also be found online. The author does not endorse any illegal activity, so please check your local copyright laws before downloading any subtitles.
You will often find that external subtitles are out of alignment with the video. If this happens, click on the align button to open the alignment window.
The first subtitle displayed will be the next LLN subtitle. Below it will be the expected subtitle from this script. If they do not match, use the left or right arrow to find the expected subtitle. Once found, click the align
button to set the alignment.
You can also manually align by inputting a number in the box below. Values are in milliseconds. Negative numbers display the subtitle earlier, positive values delay it.
For developers wishing to build or modify the script:
- Node and npm
- Yarn 2
yarn install
yarn build
for dev oryarn package
for production
Use yarn start
to start the webpack dev server. In the dist
directory, a devproxy.user.js
file will be generated. Installing this file in Tampermonkey will allow file changes to be picked up from webpack server on page refresh.