Giter Club home page Giter Club logo

easysubs's Introduction

Learn languages with fun ๐ŸŽ‰

Browser extension to learn languages by watching movies and TV shows.

WARNING

The master branch contains version 3.0 which is currently under active development.
You can find the release version in the v1.0 branch

Installation

The extension supports Chrome, Firefox, Opera and Yandex. It should also work in other browsers that have WebExtensions API support, but it hasn't been tested yet.

Release version available on Chrome Web Store

chrome store

Build

  1. Install node 18+
  2. Clone repo git clone [email protected]:Nitrino/easysubs.git
  3. Go to folder and install dependencies cd easysubs && pnpm i
  4. Build extension pnpm build

Manual install

  1. Download and unzip latest version
  2. Open extensions page in browser:
    • For Chrome: chrome://extensions/
    • For Yandex browser: browser://tune/
  3. Turn on developer mode (for all except Yandex browser)
  4. Load unpacked extension:
    • For Chrome and Opera: Click to Load unpacked button and select folder
    • For Firefox: Click to Load temporary Add-on... button and select folder
    • For Yandex browser: Drag and drop folder to extensions page

Features

Integration with multiple video services

The list of services will expand at the request of users.
To use the plugin, you must have a subscription to the desired service.

Now supported:

Word and full subtitle translation

Simply move the cursor over the word you want to translate. The video will automatically pause and resume when you move the cursor away from the subtitles.
In the translation pop-up for the word, you can see alternative translations and how often they are used. Click the subtitles to translate the entire phrase.

word translation

Export words to learning services

The list of services will be extended in response to user requests.

Now supported:

To export, you'll need to be logged in to the service you want to use (make sure it's the same browser). Then select the service you want to use in the extension settings.

A โž•(plus) icon will then appear next to the words in the translation, and clicking on it will export the word to the selected service.

word translation

Rewind to previous and next subtitle

Rewind to the previous sentence by pressing โฌ…๏ธ (left arrow).
Rewind to the next sentence by pressing โžก๏ธ (right arrow). Repeat the current subtitle โฌ‡ (down arrow).

Rewind only works if the next/previous sentence is less than 5 seconds apart from the current sentence. Otherwise it'll rewinds 5 seconds.
To force rewinding to the next/previous sentence use alt (option for macOS) + arrow button.

word translation

Subtitle progress bar

There is a subtitle progress bar at the bottom of the player to help you navigate between subtitles.
Click the progress bar to rewind the video to the desired point.

word translation

Subtitle settings and custom subtitles

The extension allows you to customise the appearance, position and delay of subtitles.

You can also upload your own subtitles if they are not available on the video service. SRT`` and VTT`` formats are supported.

word translation

Additional features

  • Show all available audio tracks and subtitles on Netflix regardless of region.

Contributing

We are open to community help.
To report a bug or feature offer, create issue and describe the question in detail.

You can also implement the desired feature and send a pull request. We recommend discussing the feature in issues tracker before implementation. This will help reduce your time.

easysubs's People

Contributors

c0rrupt avatar dependabot[bot] avatar gignupg avatar jtraub avatar nitrino avatar sserebryan avatar sudocurse avatar thesunwave avatar vetal4eg avatar xamgore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

easysubs's Issues

Improve readme

  • Description
  • Screenshots
  • Intall guide
  • Contribute guide
  • Roadmap

Netflix: add the ability to rewind by subs

Related #14 (comment)
Netflix returns an error when rewinding through HTML5 video API.
image

Tricky way:
We can reuse netflix js.
In the chrome debugger we can find the player instance and rewind as follows:

let videoPlayer = netflix.appContext.state.playerApp.getAPI().videoPlayer;
let sessionId = videoPlayer.getAllPlayerSessionIds()[0];
let player = videoPlayer.getVideoPlayerBySessionId(sessionId);
player.seek(100000)

To use this, we need to inject our js in the page and configure the exchange of messages between page and extension

Example: https://github.com/jonnylin13/LongDistance/blob/61777d7970e2cedd3c2c5d36e6f8fb3a19ee66a0/extension/controller.js

Support YouTube

  • Get subtitles
  • Show extension subtitles and translations
  • Show subs progress bar
  • Rewind by subs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.