FunscriptToolbox

FunscriptToolbox (FSTB?) is a command line tool that contains multiple features that can analyze and/or transform .funscript files.

For now, it only includes verbs to allow the synchronization of a .funscript to a video different than the one used by the scripter.

AudioSync verbs

  • audiosync.createaudiosignature (short: as.cas)
  • audiosync.createfunscript (short: as.cfs)
  • audiosync.verifyfunscript (short: as.vfs)

Use the application --help argument to see the application documentation.

See below, in the comments, for some use cases.

Notes

Every .funscript file that the tool creates or overrides are saved in a “vault”, found in “%appdata%\FunscriptToolbox\Vault”. If you ever make a mistake and override the wrong file or something, check this folder for your old file.

The tool also keeps log files of the last 10 executions in the folder “%appdata%\FunscriptToolbox\Logs”.

Binaries and Sources

FunscriptToolbox is fully open source over at github.

Latest release: 1.0.2

Please use github issues for your bug report.

8 Likes

The tool should be useful for some old scenes that have been altered after a script has been created. For example, NaughtyAmericaVR has a bad habit of altering their intro or even changing some parts of the scene (see Wake and Bake).

I know that @JohnSilverGold has been able to re-synchronize a few of his NA videos with this tool.

It should also be useful for 2D scripts that are often based on videos from free site (pornhub, etc), which can also change their video without notice.

1 Like

So far, I haven’t found an application (OFS, scriptplayer, etc) that wasn’t able to read a .funscript with an embedded signature. Let me know if you find an application that is not able to read the file.

Here’s an example:
NaughtyAmericaVR - 2017-04-20 - Melissa Moore - Wake and Bake [zalunda].funscript (667.8 KB)

1 Like

what file extensions do you need added? just .asig?

Yes, please. Thanks @hugecat

k added it

1 Like

Fixed a stupid bug where I moved files, instead of copying, to the %appdata% vault.
So, when generating a file, the file was created and then moved immediately to the vault. So, it seems to disappear.
Oups. Fixed in 1.0.1.

How to setup as a scripter

  1. Download & extract the tool somewhere (for example, C:\Tools\FunscriptToolbox)
  2. Create a folder “ScriptToRelease” (or anything you like).
  3. Create a batch file “PrepareForRelease.bat” in the folder “ScriptToRelease”, with the following content (modify the path of the tool if needed):
"C:\Tools\FunscriptToolbox\FunscriptToolbox.exe" audiosync.createaudiosignature *.funscript
PAUSE

Notes:
If there is interest, I might expand the tool with commands that could be added to the PrepareForRelease batch file, like adding your default metadata, creating the heatmap image, downloading all images found on the video url, etc).

The tool might not work well with video with music since it’s trying to match similar audio sections. With music, there might be a lot of sections with almost identical audio.

After that, each time you create a script

  1. Move new-scene.mp4 and new-scene.funscript to the folder ScriptToRelease.
  2. Start “PrepareForRelease.bat”.
  3. Your .funscript, with an embedded audio signature, is ready to be released.

Your job is done.
In theory, you should not have to synchronize your script with all versions that exist on the internet.
“Consumers” should be able to do that themselves.

How to setup as a consumer

  1. Download & extract the tool somewhere (for example, C:\Tools\FunscriptToolbox)
  2. Create a folder “ScriptsToValidate” (or anything you like).
  3. Create a batch file “ValidateScripts.bat” in the folder “ScriptsToValidate”, with the following content (modify the path of the tool if needed, add --verbose argument if you want more logs):
"C:\Tools\FunscriptToolbox\FunscriptToolbox.exe" audiosync.verifyfunscript --fix *.funscript
PAUSE

After that, each time you have to synchronize a script to your own video version

  1. Move scene.funscript, scene.asig (if .funscript doesn’t include audiosignature) and scene.mp4 to the folder ScriptsToValidate.
  2. Make sure all the files have the same names.
  3. Start “ValidateScripts.bat”.
  4. If your video version is same as the scripter’s version, you’ll see something like this:

  1. If your version is different, you’ll see this and a synchronized version script will have been created for you:

How to create synchronized .funscript for a remastered video

If you have acces to scene.funscript, scene.mp4 and new-remastered-scene.mp4, the easiest way to create a synchronized funscript for the remastered scene is to open a command prompt and use this command:

"C:\Tools\FunscriptToolbox\FunscriptToolbox.exe" as.cfs -s scene.funscript -n new-remastered-scene.mp4