Funscript Organizer

Funscript Organizer v0.2.1

Hey everyone! I built this Firefox extension to solve a problem I was having - downloading funscripts and videos, then needing to rename one or the other, one at a time. You’re still doing that here, but a lot faster. If I feel like the algorithm gets good enough maybe I’ll have it auto rename, or at least have a pop up if it thinks there’s a good enough match…

What it does

Tracks your downloads and tries to match up funscripts with their videos automatically. It’s pretty decent at figuring out which files belong together, even when the naming is inconsistent. Of course, the scope seems to be increasing every time I touch it :sweat_smile:

Now with:

  • automatic grouping of multi-axis scripts
    • use the + sign to add any stragglers
  • configurable output folder for matches
    • if the file names already match when they make it to your watched folder, they’ll get sent to the output folder automatically, if configured.
  • Support for subfolders in your output folder on a per-match basis
  • ‘Variation’ support if folders are configured, accessible in “Match mode”
    • there’s an “Is Variation” toggle, clicking it will show the list of folders in your output folder, sorted by match probability
    • When selected, the script is moved to the folder, while retaining its original name
    • DOESN’T HANDLE GROUPED SCRIPTS RIGHT NOW

Current status

Current version: 0.1.4
Added installer scripts for windows, will need others to test that it actually works. Requires python 3.6+

Features that work

  • Automatically tracks funscript and video downloads
  • Smart matching algorithm that ignores brackets, creator tags, quality markers, etc.
  • Visual interface with match confidence indicators
  • One-click renaming with the native host
  • Badge showing how many unmatched files you have
  • Pop-out window if you want more space
  • Dark/light themes and customization

Installation

Download the .xpi from releases and install it in Firefox.
Download the .zip from releases for your corresponding platform - included is an installer script to set up the native host (this is required for renaming/folder watching)

Known issues

  • You tell me
  • “Add variant” function doesn’t handle groups yet - beware Fixed

Feedback

This is my first Firefox extension so probably has rough edges. Let me know what breaks or what would make it more useful. I have some approximate knowledge but definitely no full fledged programmer. Most of this was with claude code, with heavy handed directions XD

4 Likes

Changelog Updates

v0.2.1

  • Grouped/multi-axis funscripts not moving together when adding as a “variant”
  • In-progress downloads no longer are tracked (and preemptively moved before the download finishes)
  • Better download handling

Todo: Fix scoring for “variant mode”

Full Changelog: Comparing v0.1.4...v0.2.1 · cicklolwut/Funscript-Organizer · GitHub

Media

It sounds useful. I just installed it and will let you know how it fairs. Thanks!

1 Like

I’ve made some adjustments/fixes but haven’t updated the package yet. If you want to try it out, you can load the temporary extension from the manifest file in about:debugging

Added grouping, multi axis tracking, ability to rename base name in “match mode”

The “+” icon should start “group mode”, if for some reason multi axis scripts have different base names (ie, from different users)

Some minor ux/ui changes as well, and the ability to move matched files to a designated folder

Todo:

  • considering ways to implement .srt matching
  • would be cool to have a small db to track downloaded and matched scripts/videos to get notified if you’re downloading a script you already have
  • if database gets implemented, have a UI to show scripts, with an “add variant” button to make a hardlink to a video for an existing script but with name matching the variant funscript (maybe this could be handled via the existing stash plugin I’ve seen - or possibly both, as an option for folks that don’t run stash)
  • for variants, maybe in match menu after selecting a funscript, have an “is variant” toggle to change the list from unmatched videos to already-matched videos

I haven’t tested the new version yet, but I’ll try to take a look at it later.

I wrote a script that shows if I’ve liked a post on the main page and I only like scripts I download. I did that because I would forget if I had that script yet or not, so I can definitely see that being useful in general.

I use the stash plugin as well, so I only have single video with all of the variant scripts in the same folder.

On that note, maybe an option to create a new folder with the same basename as the video and script and move them both into it? That’s how I organize all of my videos, since it contains all scripts to the same folder with the video.

Good idea, I haven’t used the plugin so I wasn’t sure if that was handled by having them in the same folder or if it created hardlinks for each video variant.

I just have all of my files in one folder xD

So maybe have a “Group matches by folder” toggle in the config and have variants populated that way. Maybe wouldn’t even need a database if not making hardlinks, just mount the stash drive and use that as the output folder, and read the output folder for existing matches when adding variants.

Database might be more performant, though… something to toy around with. I’ll need to look into how the plugin handles tracking if at all

Updated and added new package to releases.

  • Added “Organize in subfolders” toggle
  • Added “Is Variant” checkbox if “Organize in subfolders” is checked
    • when checked, will list folders in ‘matched’ directory - selected folder will move the script into that folder without changing the name.
    • you still have the opportunity to rename in this mode

todo:

  • not sure how the folder listing will handle having thousands of files… need to test
  • in the case of above, i should look into a lightweight database if this is problematic
    - update native host scripts for windows
    - maybe just update the script to instead of point to the python file, have the script create the file. :thinking: done
  • port to chromium
  • idk i’m sure i’ll think of something else

Bump to 0.2.1 with fixes, looking pretty good.

Windows folks!

The releases page includes an install script - I don’t have the means to test right now, but try it out and let me know if there are any issues :smiley:

any chance you could make one for Chrome/Brave?

I’ve been meaning to come back to this, I’ll try to get around to making updates soon :smiley:

1 Like