VSS PLUGINS

A long time ago, I made some plugins for the subtitle software VisualSubSync , like others before and after me.
The old French+English wiki became obsolete in places (especially the links). I'm keeping the English content for posterity, but I suggest you have a look at Spirit's excellent mod for VSS, which includes some of these plugins and much more.

You're a French subber? Check out Subfactory's super list of bookmarks and tools.

VSS Mod by Spirit Subfactory

How to install a plugin

Right-click on the plugin's download link.
Select “Save link target as…”
Save the file into the jsplugin directory of your VisualSubSync installation location.

If it replaces an old plugin, deactivate the old one by adding (for instance) ”.bak” at the end of the filename.

Subfactory's certification packs

More information about these certifications (in French) on Subfactory (you will need to be logged in). You can download the packs on Subfactory or right here:

Presets SW2 to 3 (US) (23.976 fps)

For British or Italian TV subtitles: Presets SW1, 2 and 3 (UK) (25 fps)

Extract the ZIP file into the VSS directory (first delete your jsplugin subdirectory and overwrite all). To load a preset, go to File > Load presets… and choose the .ini you want in the “presets” folder.

Information about VSS

Official VisualSubSync website

Latest VSS version: 1.0.1.

To download VisualSubSync, go there .

Convert an SRT file into a transcript

SRT to transcript by bean

This script removes all timing and styling features and puts cut sentences back into one line. Useful to make a transcript out of a subtitle file.

Example:

Before After
11
00:01:10,431 –> 00:01:13,340
The woman sitting opposite you
is Katherine Reimer.

12
00:01:14,030 –> 00:01:15,659
She's a psychiatric nurse,

13
00:01:15,678 –> 00:01:19,285
with experience in…
related areas.
The woman sitting opposite you is Katherine Reimer.
She's a psychiatric nurse, with experience in… related areas.

NoTAG and ASS Generator

Vous êtes nombreux à taguer vos sous-titres et à utiliser le remove tag de Lama et ses versions modifiées pour réaliser des versions notag. Voici un remove tags amélioré par Dapitch666 et Golgi qui va vous permettre de gagner un peu de temps dans cette opération et de générer des versions ass de vos sous-titres, prêtes à l'emploi.

-- Bbsiocnarf

Pourquoi faire des versions ASS ?

D'une part, parce qu'elles permettent l'utilisation des tags ass sur l'ensemble des plate-formes (Linux, Windows et Mac OS ) et, d'autre part, car les platines de salon et autres disques durs multimédias qui supportent le format ASS doivent, en théorie, (je n'ai pas vérifié) supporter les balises ass et donc permettre aux utilisateurs de ces engins de bénéficier de versions TAG.

Utilisation

Télécharger NoTag and ASS Generator

Ce Remove Tags permet de générer 2 nouveaux fichiers correctement nommés à partir d'un seul.

Exemple : A partir de ce fichier : BSG.4×01.lol.TAG.srt

On obtient :

  • BSG.4×01.lol.TAG.srt
  • BSG.4×01.lol.NoTAG.srt
  • BSG.4×01.lol.TAG.ass
  • Le TAG.srt est inchangé
  • Le NoTAG.srt supprime les {\}, remplace les lettres spéciales comme o dans l'e et préserve les italiques.
  • Le TAG.ass est un fichier 100 % ass.

Attention, si vous laissez dans vos sous-titres des commentaires comportant l'enchainement des deux signes “\N” (exemple des coupes dans une VO : [\Now, }) celà va générer des sauts de lignes en ASS… Préférer la syntaxe suivante par exemple : {\*Now, }.

Version "multi" (mod par nathbot)

Dans cette version :

  • on peut effectuer cette opération sur plusieurs fichiers SRT d'un coup
  • les fichiers ass sont nommés sans la chaîne de caractères “TAG” (ex : monsoustitre.ass au lieu de monsoustitre.TAG.ass ). Si vous préférez garder le nom avec “TAG”, éditez le fichier vbs et cherchez la ligne de commentaire commençant par “Note from nathbot:”, qui indique comment annuler la modification.

Version "multizip" (mod par nathbot)

Cette version crée en plus un zip pour chaque groupe de fichiers TAG+NoTAG+ASS.

Remove Tags

RemoveTags by Lama

How to use it : drag-and-drop the SRT file onto the VBS file.

- RemoveTags_retireaccolade removes everything that is between curly brackets {}

  1. RemoveTags_retirecouleur removes <font xxx> and </font> tags (color tags)
  2. RemoveTags_toustags removes everything between curly brackets, font tags and italic tags.

KeyFrameExtract

Small software created by VSS's author, which allows you to extract keyframes (scene changes) from a video file and to save them under different formats: number, time codes, or SRT file.

Download KFExtract

Miscellaneous

Subtitle Statistics by Spirit : get detailed statistics on your subtitles.

Plugins for VisualSubSync

Most can be downloaded from spirit's BitBucket .

The listing below is mostly for "historical" purpose, but it will give you a description of what each plugin does.

Scene change

Series of scene changes

By Nathbot and Spirit

VSS version: 0.9.11+

Detects : if the subtitle overlaps one or more scene changes. In that case, try to fix it to improve the viewer's reading comfort.

Parameters
  • MaxSceneChanges : maximum number of scene changes overlapped by the subtitle (default: 2).
Filter inside

VSS version: 0.9.11+

Detects : scene changes on which you can still see the orange area, when they are overlapped by a subtitle. It depends on the “Filter inside subtitle” parameter.

Example :
img249.imageshack.us_img249_4184_exemplevs1.th.jpg

Fixing: it tries to move the subtitle's start or end point depending on where the problem lies.

Parameters
  • MaxRsLevel : maximum reading speed level after fixing an error
    • 0 = Disabled
    • 1 = Fast, acceptable (default)
    • 2 = A bit slow
    • 3 = Good
    • 4 = Perfect
  • ParamBlinkRange : time range for the subtitle end, within which you consider there is a blinking effect after a scene change (default: 500 ms)

Timing

Speed

By Spirit and Nathbot - replaces “TOO SLOW”, “TOO FAST”, “CPS too low” and “Extend CPS” plugins.

common.js is required in the jsplugin/common folder.

VSS version: 0.9.18+

Detects : cases when the reading speed (RS) and/or the number of characters per second (CPS) is less or greater than specified values.

Fixing: when possible, it lenghtens too short subtitles to the ideal duration (avoiding overlaps), and/or shortens too long subtitles to the maximum duration. In case of a “TOO FAST” subtitle that is against a scene change, the plug-in tries to go over this scene change. If this attempt still gives a “TOO FAST” subtitle, it is cancelled.

Parameters
  • Mode : 1 = RS mode, only checks the reading speed (default)
    • 2 = CPS mode, only checks the number of characters per second
    • 3 = RS + CPS mode, checks boths
  • MinRS : reading speed's minimum level
    • 1 = TOO SLOW! (default)
    • 2 = Slow, acceptable
    • 3 = A bit slow
    • 4 = Good
  • MaxRS : reading speed's maximum level
    • 1 = TOO FAST! (default)
    • 2 = Fast, acceptable
    • 3 = A bit fast
    • 4 = Good
  • MinCPS : Minimum CPS (default: 4).
  • MaxCPS : Maximum CPS (default: 25).
  • MaxStartMove : maximum allowed duration to move the subtitle start (default: 0).
  • Optimize : detection mode for subtitles that can be optimized
    • 0 = deactivate (default)
    • 1 = Detects subtitles that can be lenghtened
    • 2 = Detects subtitles that can be shortened
    • 3 = Detects both
  • IgnoreLinesOf : ignore lines with more than X characters (default: 0)
  • BreakSceneChanges : the plug-in tries to go over scene changes in case of “TOO FAST”.
    • 0 = deactivate
    • 1 = activate
Duration

By Spirit and Nathbot

common.js file is required in the jsplugin/common folder.

VSS version: 0.9.18+

Detects : too short or too long subtitles depending on the specified values. If activated, it detects subtitles with an acceptable duration (between the strict minimum duration and the ideal minimum duration).

Fixing: if possible, lenghtens the subtitle to the ideal minimum duration (defined in the General preferences) while avoiding overlaps.

Parameters
  • StrictMinDuration : struct minimum duration. Used for detection. When fixing, it's the minimum duration defined in the General preferences that is used.
  • StrictMaxDuration : strict maximum duration. Used for detection and fixing.
  • MaxStartMove : maximum allowed duration to move the subtitle start.
  • FixAcceptable : Detects subtitles with an “acceptable” duration
    • 0 = no
    • 1 = yes (default)
Anti-blink

VSS version: 0.9.11+

Detects : if there are two or three subtitles inside the interval specified as parameter. If so, there is a risk of a “blinking” effect (i.e. lots of short subtitles following one another inside a short period of time) that should be fixed, for example by merging two subtitles, if possible.

Fixing: VSS is not omnipotent, you'll have to fix it yourself.

Parameters
  • Interval2Subs : interval used to check 2 successive subtitles (check from the first subtitle start to the second subtitle end).
  • Interval3Subs : interval used to check 3 successive subtitles (check from the first subtitle start to the third subtitle end).

Important : if you get an alert about 3 subtitles, the subtitle mentioned in the Errors Report is the one in the middle . If the alert is about 2 subtitles, the subtitle mentioned is the first one.

In the following example, the three subtitles which are in the interval are: “Bonjour”, “Vous m'avez…” and “J'habite ici”. In this case, the solution might be to merge the last two subtitles.

Overlapping (3)

VSS version: 0.9.11+

Detects : like the original Overlapping plug-in, it detects subtitles that overlap or are too close to each other. An extra parameter (Detection) allows you to choose if you want to detect only overlaps, only too short blanks or both.

Fixing: fixes overlaps and lenghtens blanks between too close subtitles.

Parameters
  • Mode :
    • 1 = moves both subtitles' end and start equitably.
    • 2 = only moves the left subtitle's end.
    • 3 = only moves the right subtitle's start.
  • Detection :
    • “all” = detects overlaps and blanks
    • “overlaps” = only detects overlaps
    • “blanks” = only detects blanks
All to...

By Nathbot and Spirit

common.js file is required in the jsplugin/common folder.

VSS version: 0.9.11+

Detects : all subtitles that are slower than the speed specified as parameter. Fixing : shorten them to the speed specified as parameter (stopping at the minimum duration if necessary).

Parameters
  • RsLevel : the reading speed you want.
    • 1 = TOO FAST!
    • 2 = Fast, acceptable (par défaut)
    • 3 = A bit fast
    • 4 = Good
  • WithMinDuration : take the minimum speed defined in common parameters into account
    • 0 = no
    • 1 = yes (default)

Uses common parameters (“Subtitle” tab in Preferences).

VSS version: 0.9.11+

Series of fast subtitles

VSS version: 0.9.10 and +

Detects : if two fast subtitles are following each other. Fixing : none

Parameters
  • Detection mode
    • Mode 1: Detects two “TOO FAST”;
    • Mode 2: Detects two “TOO FAST” and/or “Fast, acceptable”;
    • Mode 3: Detects two “TOO FAST” and/or “Fast, acceptable” and/or “A bit fast”.

It's not possible to automatically merge two subtitles yet, so you'll have to do it manually.

Typography / Spelling

Typography
common.js is required in the jsplugin/common folder.

VSS version: 0.9.10+

Detects and fixes : typography errors.

Parameters
  • Language = language of the subtitles
    • auto = automatic detection
    • en = English
    • fr = French
  • TwoConsecutiveHyphens : allow ”–” as interruption sign
    • 0 = no (default)
    • 1 = yes
Case

Detects and fixes : lowcase letter that should be uppercase, after a punctuation sign that requires one (i.e. excluding ”…” and ”:”). It takes quotation marks and tags into account.

Spelling common errors: French

VSS version: 0.9.10 et +

Detects and fixes : some common French spelling errors.

Examples:

  • Ca –> Ça
  • A –> À (at the beginning of a sentence)
  • verbs that should start with Ô or É
  • acceuil –> accueil…

Others are to be added eventually.

Interface

Plugins on this page are to be put into the jsplugin/general folder. In VSS, they are available in the “ JS Tools” menu.

General

“general_plugin.js” improvement:

common.js file is required in the jsplugin/common folder.

This plugin allows you to display extra columns in the VSS interface:

  • Duration
  • CPS
  • Rating (to use instead of “RS”, for those who don't like numbers).
  • Line displays the longest line's length
  • Blank displays the blank time between the subtitle and the next; it is green or yellow if it's alright, otherwise it displays the problem or the overlapping (the error can be at the subtitle start or end).

Like with RS column, right-click on the columns' headers in the subtitles area.

More detailed quick stats

“action_quick_stats.js” improvement:

common.js is required in the jsplugin/common folder.

Displays more detailed statistics on the subtitles.

Miscellaneous

Line

By Spirit, Nathbot, Toff and Dapitch666 .

common.js file is required in the jsplugin/common folder.

VSS version : 0.9.11+

Detects :

  • subtitles with a line that is too long
  • subtitles with two lines that could be with only one
  • subtitles with more than X lines

Fixing :

  • A too long one-line subtitle will be put on two lines.
If the option is activated, a two-lines subtitle will be better divided up between the two lines, taking into account some words that shouldn't be at the end of a line (e.g. a pronoun). This option is not full-proof, so use it carefully.
  • Puts the subtitle back onto one line. Doesn't remove italic tags.
  • Puts the subtitle back onto one line.
Parameters
  • Mode :
    • 1 = checks the length using the number of characters (default)
    • 2 = checks the length using the number of pixels
    • 3 = checks both
  • MaxPerLine = maximum number of characters for a line. Used for fixing and by the “no need for two lines” option.
  • StrictMaxPerLine = strict maximum number of characters for a line. Used for checking subtitles with two lines or more.
  • MaxPixelsPerLine = maximum number of pixels for a line. Used for fixing and by the “no need for two lines” option.
  • StrictMaxPixelsPerLine = strict maximum number of pixels for a line. Used for checking subtitles with two lines or more.
  • MaxLines = maximum number of lines
  • NoNeedForTwoLines : detection mode for the “no need for two lines” option
    • 0 = deactivate
    • 1 = only detect incomplete sentences (default)
    • 2 = detect all
  • DetectBadSplits : detect possible bad cuts between two lines (preferably check one subtitle by one)
    • 0 = no (default)
    • 1 = yes
  • Language : language used regarding words that shouldn't be at the end of a line
    • auto = automatic (default)
    • en = English
    • fr = French
    • none = deactivate
"Single-quoted italics"

VSS version : 0.9.10+

Detects : subtitles that start with an apostrophe instead of being in italic. I use this plug-in to clean some English subtitles.

Fixing : removes the apostrophe at the start and the end of the subtitle, then adds italic tags.

Un-closed tags

VSS version : 0.9.10+

Detects : subtitles where a closing tag is missing.

Fixing : adds a closing tag at the end of the subtitle.

By Dapitch666.

Very close to scene change

VSS version : 0.9.11+

Detects : subtitles whose start or end is very close to a scene change, without overlapping it. It is useful if you make a small parameter change, and want the blanks between subtitles and scene changes to stay consistent.

Fixing : moves the subtitle's start or end to stick to the scene change edge.

Parameters
  • Number of milliseconds between the subtitle and the scene change for the blank to be detected.