diff --git a/README.md b/README.md index 1ffb57b4..788326f1 100755 --- a/README.md +++ b/README.md @@ -62,33 +62,39 @@ Thank you to all those who have translated asbplayer: If you are a non-English native, and would like to help translate asbplayer, please contact me on [Discord](https://discord.gg/ad7VAQru7m). ## Getting Started +> [!NOTE] +> asbplayer is both a subtitle control and flashcard creation tool. If you are not interested in flashcards, and only want to use asbplayer's subtitle features, you can read about them under [Subtitle features](#subtitle-features). -First, see if you can get started with one of the [community guides](#community-guides). +First, see if you can get started by following one of the [community guides](#community-guides). -Otherwise, the following steps will work for any language: +Otherwise, the following steps for setting up automated Anki flashcards should work for any language: -1. Install a dictionary for your target language that allows you to do instant lookups. Popular ones are [Yomitan](https://chromewebstore.google.com/detail/yomitan/likgccmbimhjbgkjambclfkhldnlhbnn) for Japanese and [VocabSieve](https://github.com/FreeLanguageTools/vocabsieve) for European languages. +1. Install and set up a dictionary tool for your target language that allows you to do instant lookups. Popular ones are [Yomitan](https://chromewebstore.google.com/detail/yomitan/likgccmbimhjbgkjambclfkhldnlhbnn) for Japanese and [VocabSieve](https://github.com/FreeLanguageTools/vocabsieve) for European languages. 2. Install [Anki](https://apps.ankiweb.net/), and create a deck and note type. -3. Install the [AnkiConnect](https://ankiweb.net/shared/info/2055492159) plugin for Anki. -4. [Configure](https://killergerbah.github.io/asbplayer/?view=settings) asbplayer to create cards via AnkiConnect using your deck and note type. - -5. Enhance a video using asbplayer and subtitle files. + - *Note: Use one of the [community guides](#community-guides) to learn how to set up an Anki deck.* +4. Install the [AnkiConnect](https://ankiweb.net/shared/info/2055492159) plugin for Anki. +5. [Configure](https://killergerbah.github.io/asbplayer/?view=settings) asbplayer to create cards via AnkiConnect using your deck and note type. +6. Enhance a video using asbplayer and subtitle files. - **For streaming video:** After installing the [Chrome extension](https://chromewebstore.google.com/detail/asbplayer-language-learni/hkledmpjpaehamkiehglnbelcpdflcab), drag-and-drop a subtitle file into the streaming video you want to mine. - **For local files:** Drag-and-drop media/subtitle files into the [asbplayer website](https://killergerbah.github.io/asbplayer). You may have to [adjust the subtitle offset](#adjusting-subtitle-offset) to get the subtitles in sync. -6. When a subtitle appears that you want to mine, use Ctrl + Shift + X to open the flashcard creator. -7. Fill in the definition and word fields and then export the card. To fill in the definition field you may use the dictionary you installed in step 1. +7. When a subtitle appears that you want to mine, use Ctrl + Shift + X to open the flashcard creator. +8. Fill in the definition and word fields and then export the card. To fill in the definition field you may use the dictionary you installed in step 1. ## Community guides +Text guides: - [Shiki's Lazy Sentence Mining Workflow (Japanese)](https://docs.google.com/document/d/e/2PACX-1vQuEAoZFoJbULZzCJ3_tW7ayT_DcQl9eDlrXMnuPGTwDk62r5fQrXak3ayxBsEgkL85_Z-YY5W4yUom/pub) - [Sentence mining from Netflix and YouTube with asbplayer (Japanese)](https://soyuz18.notion.site/Sentence-mining-from-Netflix-and-YouTube-with-asbplayer-83a03590cd8349ba81ca10340645b565) + +Video guides: - [Refold's installation guide](https://www.youtube.com/watch?v=Pv4Sp01Uh64) - [Refold's sentence mining guide (Japanese + European languages)](https://www.youtube.com/watch?v=jXO4gmCmcNE) - [Sentence Mining: Learning Japanese From Anime (Japanese)](https://www.youtube.com/watch?v=B60cj69MSmA) +- [How to Setup and Use ASBPlayer for Vocab Mining (Japanese)](https://www.youtube.com/watch?v=D1tlb7zo8Og&ab_channel=pooks_) ## Demos @@ -97,9 +103,16 @@ Otherwise, the following steps will work for any language: ## Detailed usage -### Enhancing streaming video with asbplayer features +To use asbplayer with streaming video, install the Chrome [extension](https://chromewebstore.google.com/detail/asbplayer-language-learni/hkledmpjpaehamkiehglnbelcpdflcab). Otherwise, use the [website](https://killergerbah.github.io/asbplayer/). + +In order to make use of any of asbplayer's features, subtitles (or an empty subtitle track) must first be loaded, either onto a streaming video or a local video file. The following section instructs how to do this. -Install the Chrome [extension](https://chromewebstore.google.com/detail/asbplayer-language-learni/hkledmpjpaehamkiehglnbelcpdflcab). There are a number of ways to enhance streaming video with asbplayer: +--- +### Subtitle features + +#### Enhancing streaming video with asbplayer-controlled subtitles + +There are a number of ways to load subtitles with streaming video: 1. Drag-and-drop a subtitle file into the video element you want to enhance. 2. Load a subtitle file into the [asbplayer website](https://killergerbah.github.io/asbplayer/) and click on the camera in the bottom right to pick a video element to enhance. This is the recommended way to load BluRay subtitle files onto streaming video. @@ -108,36 +121,17 @@ Install the Chrome [extension](https://chromewebstore.google.com/detail/asbplaye asbplayer features will then be accessible for that video. -### Enhancing local video files with asbplayer features +#### Enhancing local video files with asbplayer-controlled subtitles Drag-and-drop media and subtitle files into the [asbplayer website](https://killergerbah.github.io/asbplayer/) to load them. asbplayer features will then be accessible for those files. Not all media files may be compatible - see the [Browser Compatibility](#browser-compatibility) section. -### Keyboard shortcuts - -Keyboard shortcuts are customizable from the [asbplayer website settings](https://killergerbah.github.io/asbplayer/?view=settings#keyboard-shortcuts). Once asbplayer has been bound to a video, you can use the keyboard shortcuts to access most of asbplayer's features. - -### Creating Anki flashcards - -Make sure [Anki](https://apps.ankiweb.net/) and [AnkiConnect](https://ankiweb.net/shared/info/2055492159) are installed. Integration with AnkiConnect can be configured in the [settings](https://killergerbah.github.io/asbplayer/?view=settings) as in this [video](https://youtu.be/Mv7fEVb6PHo?t=44). - -When a subtitle that you want to mine appears, use Ctrl + Shift + X to open the flashcard creator. - -See the [keyboard shortcuts](https://killergerbah.github.io/asbplayer/?view=settings#keyboard-shortcuts) for other ways to interact with and create cards. - -### Adjusting Anki flashcards - -All text fields can be edited from the flashcard creator prior to flashcard creation. - -Adjust the selected time interval for the card using the slider at the bottom of the export dialog. -The newly selected time interval can be applied to the card using the buttons available in the sentence and audio sections of the card. See this [video](https://youtu.be/BSr_JusW8E8?t=34) for a demo. - -### Adjusting subtitle offset +#### Adjusting subtitle offset Use Ctrl + Left/Right to adjust subtitle offset so that the previous/next subtitle appears at the current timestamp. Then use Ctrl + Shift + Left/Right for finer adjustment by 100ms increments. If you are using the asblayer website, you can also use the `Subtitle Offset` text field available in the controls UI. -### Subtitle track detection for streaming video +#### Subtitle track detection for streaming video Use Ctrl + Shift + F to see auto-detected subtitle tracks for streaming video. Below are the sites where automatic subtitle detection is supported: @@ -152,15 +146,62 @@ Use Ctrl + Shift + F to see auto-detected subtitle tracks for streami Ctrl + Shift + F also allows you to load an empty subtitle track so that you can extract audio and screenshots from streaming video without loading subtitles. -### Extension side panel UI +#### Filtering subtitle text + +If you'd like to filter out specific instances subtitle text, one way to do so is by using a regular expression (regex). asbplayer can match any sequence following a specified regex pattern and remove the matches. + +Under the MISC section in asbplayer settings, locate the "Subtitle regex filter" textbox. Enter an appropriate regex to filter desired content. +You can replace filtered content similarly by entering a string into the "Subtitle regex filter text replacement" textbox. Leaving this blank will simply remove the content. + +Useful examples of regular expressions: + - `(\(|().*(\)|))` : Remove names enclosed by parenthesis to indicate speakers (i.e. "**(山田)** 元気ですか?") + - `\[.*\]` : Remove indications enclosed by brackets that sound or music that is playing (i.e. "**\[PLAYFUL MUSIC]**") + +Learn how to write and test custom regular expressions at [Regex Learn - Playground](https://regexlearn.com/playground). + +#### Downloading subtitle files + +Once loaded into the extension, you can download the subtitles by opening the side panel and clicking the `Download Subtitles as SRT` button in the top-right. You can also download subtitles via the website by clicking the same download button in the top-left. + +> Note: Using the [regex feature](#filtering-subtitle-text) will alter the .srt that is downloaded. + +--- +### Anki integration + +#### Creating Anki flashcards + +Make sure [Anki](https://apps.ankiweb.net/) and [AnkiConnect](https://ankiweb.net/shared/info/2055492159) are installed. Integration with AnkiConnect can be configured in the [settings](https://killergerbah.github.io/asbplayer/?view=settings) as in this [video](https://youtu.be/Mv7fEVb6PHo?t=44). + +When a subtitle that you want to mine appears, use Ctrl + Shift + X to open the flashcard creator. + +See the [keyboard shortcuts](https://killergerbah.github.io/asbplayer/?view=settings#keyboard-shortcuts) for other ways to interact with and create cards. + +#### Adjusting Anki flashcards + +All text fields can be edited from the flashcard creator prior to flashcard creation. + +Adjust the selected time interval for the card using the slider at the bottom of the export dialog. +The newly selected time interval can be applied to the card using the buttons available in the sentence and audio sections of the card. See this [video](https://youtu.be/BSr_JusW8E8?t=34) for a demo. + +--- +### Other basic features + +#### Extension side panel UI Most of the extension features detailed above can be accessed through the extension's side panel UI. The side panel can be opened with the \` button or `Open Side Panel` from the extension popup. -### Audio track selection for mkv files +#### Keyboard shortcuts + +Keyboard shortcuts are customizable from the [asbplayer website settings](https://killergerbah.github.io/asbplayer/?view=settings#keyboard-shortcuts) or from accessing the extension directly. Once asbplayer has been bound to a video, you can use the keyboard shortcuts to access most of asbplayer's features. + +#### Audio track selection for mkv files An audio track selector will appear for `mkv` files if experimental web platform features are enabled from `chrome://flags`. Note that enabling this flag may cause issues with other features of asbplayer, such as card creation through the Chrome extension. -### One-click mining flow +--- +### Advanced features + +#### One-click mining flow The asbplayer website can be setup to support one-click mining workflows by integrating with other tools via its [WebSocket interface](#websocket-interface) and a locally-running proxy that intercepts AnkiConnect traffic. Below are steps to set up such a workflow using Yomitan: @@ -177,7 +218,7 @@ The asbplayer website can be setup to support one-click mining workflows by inte See the proxy's [example configuration file](https://github.com/killergerbah/asbplayer/blob/main/scripts/anki-connect-proxy/.env.example) for how to further configure it. -### WebSocket interface +#### WebSocket interface The asbplayer website can be controlled remotely through a WebSocket connection, which enables [one-click mining flows](#one-click-mining-flow) with the right setup. Currently asbplayer responds to one type of payload: