Skip to content

API Reference

This section documents the C# scripting API for Fast Video Cataloger.

Quick Start

Scripts are executed from the Script Console window in Fast Video Cataloger. Each script receives an IScripting object that provides access to all other interfaces.

using VideoCataloger;
using VideoCataloger.RemoteCatalogService;

class Script
{
    public static void Run(IScripting scripting, string arguments)
    {
        // Get interfaces
        IConsole console = scripting.GetConsole();
        ISelection selection = scripting.GetSelection();
        IVideoCatalogService catalog = scripting.GetVideoCatalogService();

        // Get selected videos
        List<long> selected = selection.GetSelectedVideos();
        console.WriteLine($"Selected {selected.Count} videos");

        // Search all videos
        VideoFileEntry[] videos = catalog.SearchVideos(new VideoQuery());
        console.WriteLine($"Catalog contains {videos.Length} videos");
    }
}

The other way in: the REST API

The interfaces below run inside Fast Video Cataloger, from the Script Console. That is what lets them drive the program itself - the selection, the GUI, the video player.

If you do not need any of that, the catalog is also reachable over HTTP. A shared catalog serves a REST API covering videos, scenes, keywords, actors, bins and indexing, and it is a much larger surface than the tools an AI assistant sees through the MCP connector. Its reference page is complete and needs no server running to read; a running server also publishes a browsable copy at http://your-server:8754/api/docs, with the OpenAPI specification at /swagger/v1/swagger.json.

Which one you want:

C# scripting API REST API
Runs inside the application anywhere, over HTTP
Needs Fast Video Cataloger open a shared catalog; the application can be closed
Language C# any
Can reach the GUI yes - selection, player, progress no, it is headless

Scripting Interfaces

These interfaces are provided by the main application (VideoCataloger.exe):

Interface Description
IScripting Root interface - provides access to all other interfaces
ISelection Get and set current selection (videos, thumbnails, actors, bins)
IConsole Console output and script execution
IGUI User interface control, refresh, progress
IUtilities Path conversion and masking utilities
IVideoPlayer Video playback control
IVideoIndexer Video indexing and frame capture
IVideoIndexerCallbacks Callbacks for indexing events
IActionPipe External process communication

Catalog Service

The catalog service provides all database operations:

Interface Description
IVideoCatalogService Main catalog interface - videos, tags, actors, thumbnails

Data Types

These classes are used for passing data to and from the catalog service:

Type Description
VideoFileEntry Video file data (path, title, description, rating, etc.)
VideoQuery Search query parameters for videos
SceneQuery Search query parameters for thumbnails/scenes
ThumbnailEntry Thumbnail data (image, time, tags)
Tag Keyword tag
TagGroup Tag grouping
Actor Actor/cast member
Bin Video bin/collection
VideoPlaylist Video playlist
Archive Archive information
ExtendedProperty Custom extended property