commit 3e600b24d7e9c71bd41451a9294365ea319195b3 Author: Zac Gaetano Date: Fri Apr 3 10:26:46 2026 -0400 Add README diff --git a/README.md b/README.md new file mode 100644 index 0000000..c89e542 --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +# AMPP Folder Organizer + +IronPython 3.4 script for Grass Valley AMPP Framelight X Script Task brick. Automatically organizes ingested assets into nested virtual folders based on filename prefixes, using `--` as the path delimiter. + +## Overview + +This script runs as part of the FramelightX asset ingestion pipeline. It parses filenames with the format: + +``` +FolderName--SubFolder--Filename.ext +``` + +and creates the folder structure `FolderName/SubFolder/` in AMPP, linking the asset to the deepest folder. + +## Example + +| Filename | Result | +|----------|--------| +| `BMG--Videos--Clip1.mp4` | Creates `BMG/Videos/`, links asset there | +| `NEWS--PKG--Story.mxf` | Creates `NEWS/PKG/`, links asset there | +| `IMG--4709.jpg` | Creates `IMG/`, links asset there | +| `NoPrefix.mp4` | Skipped (no `--` found) | + +## History + +- **v3.2** → v3.3: Fixed special character handling in folder names (apostrophes, ampersands, etc.) by properly URL-encoding the hierarchy lookup path. + +## Environment + +- **Runtime:** IronPython 3.4 on .NET 8 +- **Available Objects:** `httpClient` (ScriptHttpClient), `job` (ScsJob), `asset` (ScriptAsset), `logger` (ScriptLogger) +- **HTTP Endpoint:** Relative paths to AMPP API (e.g., `api/v1/store/folder/folders`) + +## API Calls + +### Get or check folder existence +``` +GET api/v1/store/folder/folders/hierarchy?path={encoded_path} +``` + +### Create folder +``` +POST api/v1/store/folder/folders +Body: {"name:text": "FolderName", "parentFolders:tags": ["parentFolderId"]} +``` + +### Link asset to folder +``` +POST api/v1/store/folder/references +Body: {"folder:id": "folderId", "asset:id": "assetId"} +``` + +## Deployment + +Copy the script content into a FramelightX **Script Task** brick. Place it **before** the Proxy Generator in the ingest workflow. + +## Notes + +- The script is idempotent: running it multiple times on the same asset is safe. +- Special characters (apostrophes, ampersands, parentheses) are preserved in folder names. +- The `--` delimiter is URL-safe and does not conflict with filesystem conventions.