AxTongue hosts user-submitted, dynamic bilingual captions for YouTube videos. Each word in the original language is defined, and corresponding phrases from each language light up as the video goes along. This allows you to immerse yourself in a language right away, even if you don't know a word of it.

There are many options for learning in depth. If you are new to a language, one thing you can try is activating the "loop line" button and navigating through videos with the "next line" button.


By default, the "From" and "To" buttons are highlighted. This makes the search results only show videos with subtitles "from" the given original language "to" the given translated language.

By default, the "By" button is not highlighted, and the "By" input is filled with the artist or source of a given video. You can select "By" if you want to see only results by a given artist or source. If you want to prioritize a given artist but not exclude others, enter the artist's name into the "Search" input instead. The "By" button activates on its own if you make changes to the "By" input.

By default, the search results are ordered by how many user-submitted tags they have in common with a given video. If you select one or more tags, the search results will only consider those tags.

The "Search" input searches for results with the text you put in. It targets titles, artists/sources, tags, and original language text. If there is any text in the search field, the search ignores unselected tags.

Changing the "To" language loads the relevant translation for the currently shown video. By contrast, changing the "From" language only affects the search results.

Each language has its own set of tags. It's possible to set the language "From" to "None," in case a video has no original language text but you still want AxTongue to include it. In that case, you still need to set a "To" language to specify the language the tags are in.


You can control the playback speed of a video with the "Speed" setting. It increments by .25 from .25 to 2. This is especially useful for timestamping videos. The possible speeds are set by YouTube.

"Autoplay" plays the first video in the search results once the current video ends. "Loop" makes the video start again when it ends. If neither is checked, the video will just stop.

You can control how many seconds Autoplay will wait to trigger once the video ends with the "Autoplay delay" setting.

"Hide seen" hides search results that your browser has already visited.

The "Desync" button desynchronizes the subtitles from the video. This is for people who want to let the video play while learning with concealed subtitles. Deactivating "Desync" seeks the video to the highlighted original text word. You can double tap edit if you want the subtitles to catch up to the video instead.

The "Log in" button takes you to a log in page. At the moment, the only purpose of logging in is that it attaches your username to the edits and comments you make. Otherwise it will show as "Anonymous."

By default, the search results will only show results that are not marked "Unavailable" or "Unfinished," which requires them to be fully timestamped. Under "Show results:", the "Unfinished" button makes the search results show only unfinished results. The "Missing timestamps" button shows unfinished results that are missing timestamps. The "<10 tags" button shows results with fewer than ten tags. The number ten is arbitrary. These options were designed for people who want to contribute to works in progress.

The fourth option is "Unavailable." This is for YouTube videos that do not load or are otherwise unavailable (in every country). To mark a video as unavailable, submit an edit with a comment that begins with the word "unavailable". If the video becomes available again, or it was marked incorrectly, simply submit an edit of any kind. To bypass the check that prevents you from submitting edits if there were no changes made, you can submit an edit with a comment that begins with the word "available".

The "Edit" button or the pencil button toggles Edit Mode, which allows users to add or change captions and tags.

Conceal Buttons

The purpose of concealment is to practice producing phrases in a language instead of just interpreting them. This would allow you to practice speaking and writing instead of reading and listening.

You should consider concealment strictly optional. It's effective, but involves more work.

The "C1" button conceals one word per line, if there are any words to conceal. Words that have no definitions, like "ooh," are not concealed. If the video is playing, the word will be revealed when it is highlighted. Otherwise, it will be revealed if it is clicked when it is highlighted, or when you click the "play/pause" button. The goal is to think of what word goes in the blank before it is revealed, or if you don't know it, to focus on memorizing that word in particular.

The "C9" button conceals up to nine words per line, which should be all words. The "CA" button conceals all words, but does not underline them.

If you know a given word already, you can click the checkmark button. This adds the underlined word(s) to the list of words that will not be concealed anymore, except in "CA" mode. If no words are underlined, or if you click on a word before clicking the checkmark, the highlighted word will be added to your list of checked words, or removed from your list of words if it is already on the list.

You can view all words you have checked in the "Prune Checked Words" link under the video. This gives you an interface similar to flashcards that allows you to study words you have checked independently. If you are serious about learning vocabulary, you should check it out and read the additional instructions on the page.

Double clicking the checkmark adds every word in a line to the list. Triple clicking it adds every word in a video to the list. Quadruple clicking it removes every word in a video from the list (in case you made a mistake).

The "D" button desyncs the video from the captions.

The magnifying glass button seeks the next word in a video that is not on your list. It will seek the next unchecked word in the current line if it is concealed. If it is revealed, the button will start with the following line. This allows you to focus only on words that you don't know. If it reaches the end of a video, it searches from the beginning of the video. Then, if it doesn't find anything, it lets you know.

The "reveal" button, or the "play/pause" button, reveals all the words in a line that are concealed and plays the video from the beginning of the line. When it reaches the beginning of the next line, it pauses the video. This allows you to think of what words are concealed without time pressure, at the expense of constantly grinding the video to a halt.

If you click the reveal button after all the words are already revealed, it skips to the next line and pauses the video. This allows you to move through text quickly if you don't care to listen to or watch the video. I would recommend pressing the reveal button to reveal the words and then pressing the magnifying glass button to skip to a pertinent line.


In edit mode, the subtitles turn into inputs you can edit directly.

Definitions and transcriptions come from the user-submitted translations, not the dictionary. AxTongue does have a dictionary, but "getting" from it copies its information onto the page, which you can then modify as you like. Editing a translation does not affect the dictionary, and vice versa.

Depending on which languages you are using, you may not realize this: the smaller text above words is for transcriptions, which are for languages written in different scripts, like Hindi and Chinese.

Typically, one original language word is highlighted. Clicking on a translated language word matches or unmatches it with the original language word, if the translated word is not blank. This is undone if you start typing. This is because if you click a translated word, you probably want to change the matching, but if you clicked a translated word to change something like the spelling, you probably didn't want to change the matching.

If you prefer to match original language words based on the translated words, you can click on the space below a given translated word. This highlights the space. Clicking on original language words will now match or unmatch them to the highlighted translated word. Click the space again to deactivate this mode.

Pressing "Space" creates a new word. If you want to create a space within a word, press "Space" twice or press "Shift+Space." For some languages, pressing the spacebar doesn't trigger a space. In those cases, you can usually press "Ctrl+Space" to simulate an ordinary "Space," creating a new word.

Pressing "Backspace" at the beginning of a word combines it with the previous word, along with its supertitles. Pressing "Backspace" at the beginning of the first original language word in a line combines the full line with the previous line.

Pressing "Delete" at the end of a word combines it with the next word, along with its supertitles. Pressing "Delete" at the end of the last original language word in a line combines the full line with the next line.

It is possible to input numbers directly into the timestamps. This is useful for minor adjustments. Otherwise, it is usually better to use the timestamp buttons.

If you navigate to an untranslated original language line that is identical to a previous original language line, the translation will be copied from the previous line. A message on the right shows what line it was copied from. If you want to undo the match, put a "#" as the last translated word, or click the "#" button.

The dictionary buttons on the left are based on the "From" and "To" language selections.

There are three "Get from Dictionary" options for pulling translated language definitions, transcriptions, and notes for the words in the original language text from the dictionary: "Word", for the highlighted original language word, "Line," for the current original language line, and "All" for all original language lines. These buttons also split the original text for Japanese and Chinese.

For the most part, getting from the dictionary prioritizes longer words.

Selecting the "Word" option also pulls the relevant dictionary entries below the dictionary buttons. Clicking on one of the entries replaces the highlight original language word and supertitles with the dictionary entry. The "Clear" button that comes up clears the entries from the screen. If you want to change a dictionary entry without altering the current word in your edit, you can create a blank word in the subtitles, click on one of the entries, alter it to your liking, add it to the dictionary, then delete the word in the subtitles.

The "Add to Dictionary" button adds the highlighted original text word to the dictionary, along with the supertitle definition, transcription, and notes.

There is a special procedure for adding prefixes and suffixes to the dictionary. To add a prefix, add either "-[" or "]-" (a claw), without quotes, to the end of the transcription, which is the upper supertitle. To add a suffix, add this to the beginning instead. (E.g. -[ing or ]-ing, non]- or non-[). Once this is in place, you can add a space to the beginning or end of the transcription or the definition, if you want a space. Spaces at the beginning and end would otherwise be ignored. Then "Add to Dictionary" as usual.

Dictionary entries are written over, not deleted. To change a definition or transcription, just overwrite it and add it. If a word has multiple distinct meanings, you can add them all so people can retrieve the one they need with the results pulled by the "Word" button.

There is a special procedure if the original text entry itself creates a problem. Suppose an entry is created for the text "good mor." Getting "good morning" from the dictionary would incorrectly split it into "good mor" and "ning." To bury an entry, make the original language highlighted text match the text of the entry, set the transcription to "[X]", without quotes, and "Add to Dictionary". It would still be in the dictionary, but now it loses its priority to "good" and "morning."

Sometimes, the primary meaning of a string of text is clearly different depending on whether it is attached to another word. For example, "이" at the end of a Korean word is a subject marker, whereas "이" by itself means "this". If you want to ensure a word is treated differently when it's on its own, put "[]" without quotes at the beginning and the end of its transcription. This forces the "Get from Dictionary" process to respect spaces before and after the word. This isn't the default behavior is so words take affixes by default. You can put [] before a word to ensure it doesn't take a prefix, or after it to ensure it doesn't take a suffix.

Below the dictionary buttons is the tag input. Each new line corresponds to a new tag. The tags will be displayed in the order they are input.

By default, the "Desync" button on the upper right is active. This means the captions and navigation buttons are desynchronized from the video. It is especially useful for making timestamps. Deactivating the "Desync" button seeks the video to the timestamp of the highlighted original language word, if there is one. Tapping the "Edit" button makes the subtitles catch up to the video instead.

The "Previous" and "Next" buttons highlight the previous or next word in the original language captions. They are useful for timestamping videos.

The "Stamp" button timestamps the highlighted original language word. Most of the time, it is best to do this while "Desync" is active. The "& Next" button timestamps the highlight original language word then highlights the next word, the same as pressing "Stamp" and "Next." This is useful for timestamping a video in sequence. You may find it useful to reduce the video to .75 speed.

When you timestamp the first word in a line, AxTongue will check to see if this line and the following lines are identical to previous timestamped lines. If they are, it will automatically fill in blank timestamps based on previous timestamps. It will not overwrite timestamps, so you can override it manually. This was designed with song choruses in mind.

The "Break" button creates a new line beginning with the highlighted original language word. If the first word in a line is highlighted, it creates an empty line before the given line. The "(Next)" button creates a new line beginning with the next highlighted original text word. If the last word in a line is highlighted, it creates an empty line after the given line, and timestamps it as long as the current time of the video is later than the last word's timestamp, if it has one. The break buttons also timestamp if there is no timestamp already and the current time of the video is later than the previous word's timestamp, if there is one.

The break buttons also break the translated text starting from the first translated word that is matched to a word from the new original line that is not followed by any words matched to the previous line. If you want to break only the translated text, click on the number/blank below the translated language word you want to break on or before, then click "Break" or "(Next)". This also discards the matches for the broken words.

The "← 3s" button rewinds the video by three seconds. The "← Word" button rewinds the video to the previous word's timestamp.

The "Offset" input controls the number in seconds to be subtracted from the current time of the video when creating a timestamp. This is to account for human delay in pressing the button. I recommend timestamping a few words and then seeking to them without desynchronization to test your personal offset. Your offset may be different depending on how well you know the video you're timing. Personally, I set it to .2 when I stamp at .75 speed, and .15 when I stamp at .5 speed.

The "Undo" and "Redo" buttons undo or redo up to thirty of your most recent edits.

The "Unfinished" button controls whether or not an edit should be marked as unfinished, in which case it will not show up in ordinary search results. This button activates on its own if there are errors or issues.

The "Comment" input allows you to attach comments to your edit, which you can find with the "Show previous edits" buttons.

The "Submit" button submits your edit if it doesn't detect any serious errors.

The "Check" button scans the edit for possible problems, relaying up to three sets of messages. Messages with a red background are errors, which will prevent you from submitting an edit. Messages with an orange background are issues. You may submit an edit, but it will be marked as unfinished. Messages with a yellow background are merely considerations, which may not indicate a problem at all. Within these messages, clicking on underlined text brings up the relevant text in the subtitles. Words that have no definitions create a consideration that ends with a "(#)". Clicking this substitutes a pound sign for the definition. No definition will show for the word in regular viewing mode, and it will no longer register as a consideration.

In edit mode, a few more buttons and two large text inputs appear below the video.

The "Original", "Transcript", and "Code" buttons determine what the left text input shows. "Original" shows the original text, matched by line. "Transcript" shows each original text line under the timestamp of its first word, rounded to the nearest second. It's what you would get if you copied and pasted the transcript of a YouTube video. "Code" shows the JSON object that makes up the supertitles, subtitles, and basic information about the video and edit.

The "Translation" and "Timestamps" buttons determine what the right text input shows. "Translation" shows the translated text, matched by line. "Timestamp" shows the timestamps for the original text in sequence, matched by line. It also pulls special options for adjusting all timestamps. The "Adjust all lines" button adds the value of the accompanying input in seconds to all the timestamps of the edit. If you activate the "Adjust all times based on next stamp" button, the next time you timestamp an original language word that already had a timestamp, all timestamps with values will be adjusted by the difference between the new and old timestamp.

The "↓" button in the middle refills the text inputs based on the edits made to the page. The "↑" arrow on the left changes the edits on the page to the content of the left text input, and the "↑" arrow on the right the right text input. The "Code" input is strict, although it will discard text that doesn't fit AxTongue's format, or its border will glow red if there is an error that prevents the upload. When uploading from other inputs, AxTongue preserves highlight matches and supertitles if the new input is similar enough to the old one.

Clicking or tapping on one of the line numbers on the left-hand side of the text inputs pulls that line in the subtitles and scrolls up to the video. Double clicking or double tapping a line number of the "Original" and "Translation" inputs changes the subtitle line to the line in the input.

The "Show previous 10 edits" button pulls summaries of the most recent ten edits in the translated language for the video. The "Show all previous edits" button does the same for all edits in the translated language. Clicking on one of the summaries loads the edit onto the page. The "Clear" button that comes up clears the summaries from the page.

You can view edits for all videos on this page.

Style Guide

The first priority in an AxTongue translation should be getting someone who does not know the original language to understand it. A clunky translation may be better than smooth one if it provides more insight into how the original line means what it does.

The paired phrasal translations in the subtitles are to work in conjunction with the word-for-word definitions. The best practice is for the definitions to be more literal and the translations to be more idiomatic. The gap between them is often enlightening.

Best practice is for lines to lead with capital letters. Question marks and exclamation points are fine, but periods and commas at the end of a line should usually be left out.

Do not use other people's translations from outside this site without their permission.

You are more than welcome to contribute translations for a language you are not proficient in! Thank you. I recommend using someone else's translation as a reference, in case you miss a nuance. This is not nearly the same thing as copying.

It is often useful to combine multiple words into one bit of text in an original language line, like "ice cream." I recommend splitting all individual words in a translation, but this barely matters.

Definitions should be comprehensible at a glance. One word for one word is ideal. The broader meaning of a term can be drawn out in the subtitles.

If a part of the original language text happens to be in the translated language, which often happens when translating into English, it is better to leave the definition blank than to have the same word twice in the supertitles. You can put a # sign as the definition to prevent this from showing up as a yellow consideration on the right.

In editing mode, by default, "Mimic Mobile" is on. This approximates what a mobile user would see. The best practice is for original language lines to be short enough to fit on a single line, with no line break. The translation can span multiple lines. Further research has suggested that this is not as important as I once thought, but it's still good to do if you can.

Tags are used in two ways: a video's collection of tags determines what videos are most similar to it, and individual tags can be used to construct playlists. Tags are only as good as the videos they match. There is no standard for what the tags should be.

Video titles and artist/source names should be the name that is used for international marketing, if there is one. This usually means they should be in English and in Roman script. Otherwise, they should be in the original language and script. Unlike tags, video titles and artist/source names are shared by all translations. If someone were to translate a French title into Arabic, the Arabic title would show up for every language.

How to Add a New Translation

Copy and paste the video ID from the YouTube URL to the AxTongue URL, or navigate to the video on the YouTube website and replace the "youtube" in "" with "axtongue".

← Back to AxTongue