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 |