An interactive command-line suite of tools for Ftrack, built with TypeScript and Ink.
Outputs the schema and data for a given task.
Outputs the schema and data for a given shot.
Outputs the schema and data for a given version.
Updates shot thumbnails from their latest versions. Includes AβZ sorting, progress tracking with ETA, and smart detection of existing thumbnails to avoid unnecessary updates.
Download media files from Ftrack versions, either individually by ID or in bulk from multiple shots, with filtering and search to suit your workflow.
Key Features:
- Single Version Download: Download media from a specific version by ID
- Multiple Shot Download: Bulk download from shots using fuzzy search patterns
- Advanced Filtering: Filter shots and versions by status, user, date, and custom attributes
- Media Preferences: Choose between original files, encoded files, or both
- Progress Tracking: Realβtime download progress with file size information
- Fallback Handling: Automatic and manual fallback options for failed downloads
- Concurrent Downloads: Efficient batch processing with configurable concurrency
- Smart Organisation: Downloads organised by shot and version structure
Finds the latest delivered version for each shot and updates the "latestVersionSent" and "latestVersionSentDate" custom attributes on the shot level.
Manage version and component deletion in Ftrack. Supports multiple selection methods including direct ID input, shot name wildcards, list-based selection, and advanced pattern matching. Features dry-run previews, CSV reports, and flexible component deletion strategies.
Key Features:
- Multiple Selection Methods: Direct IDs, shot name patterns, list selection, or advanced search
- Wildcard Support: Use
*for pattern matching in shot names (e.g.,SHOT_*matches all shots starting with "SHOT_") - Advanced Selection: Pagination, filtering, fuzzy search, and interactive refinement
- Dry Run Mode: Preview deletions before they happen, with a detailed impact summary
- CSV Reports: Export deletion reports to the Downloads folder for recordβkeeping
- Component Strategies: Choose to delete all components, original only, or encoded only
- Batch Operations: Efficient handling of large deletion sets with progress tracking
During normal use, all API calls are made directly to Ftrack, and API keys are stored locally and encrypted uniquely to your machine.
Required custom attributes on the AssetVersion:
- custom_delivered
- custom_date_sent
Required custom attributes on the Shot:
- latestVersionSent
- latestVersionSentDate
No custom attributes required β works with standard Ftrack entities (AssetVersion, Component)
The Delete Media tool provides several ways to select and delete versions or components:
1. Direct ID Input
Enter version IDs: 12345,67890,11111
2. Shot Name Patterns (with wildcards)
Enter shot name pattern: SHOT_* # Matches all shots starting with "SHOT_"
Enter shot name pattern: *_010 # Matches all shots ending with "_010"
Enter shot name pattern: SEQ01_*_v* # Complex pattern matching
3. List-based Selection
- Choose from existing Ftrack lists
- Select specific items from the list
4. Advanced Selection
- Pagination through large datasets
- Search and filter capabilities
- Fuzzy matching for approximate searches
- Interactive refinement of results
Component Deletion Strategies:
- All Components: Delete all associated media files
- Original Only: Delete only original/source components
- Encoded Only: Delete only encoded/processed components
Safety Features:
- Dry-run mode shows a preview before deletion
- CSV reports exported to the Downloads folder
- Confirmation prompts for destructive operations
Simply download the relevant file under Releases and open it.
- Download the relevant file under Releases.
- In the terminal app of your choice, make the file executable:
chmod +x AstraFtrackTools-linux
- Run the executable.
Due to macOS security restrictions, the binary is unsigned. You may need to remove the quarantine flag before running it:
- Download the relevant file under Releases.
- Open Terminal.
- Navigate to the Downloads folder:
cd ~/Downloads- Remove the quarantine flag:
xattr -d com.apple.quarantine astraftracktools-macos- Make it executable:
chmod +x astraftracktools-macos- Run it:
./astraftracktools-macosOn first run, the app will ask you for your Ftrack credentials and automatically test them:
- Ftrack Server URL (e.g. https://yourcompany.ftrackapp.com)
- Ftrack API User (e.g. your Ftrackβassociated email)
- Ftrack API Key (secure password input)
- Log in to your Ftrack instance
- Go to My Account (top right)
- Navigate to Security Settings
- Under Personal API Key, click Generate New Key
β οΈ This key will only appear once and can be revoked/regenerated at any time
The tool will automatically test your credentials and securely store them locally. You can update your credentials at any time using the "Set Ftrack Credentials" option in the main menu.
- TypeScript - For type-safe development
- Deno - Secure runtime for JavaScript and TypeScript
- Ink - React for CLIs, powering the new TUI
- Ftrack API - For interacting with Ftrack services
- React - Component-based UI architecture
- Deno 1.37.0 or later
- Node.js (for development dependencies)
-
Clone the repository:
git clone https://github.com/matteoveglia/AstraFtrackTools.git cd AstraFtrackTools -
Install dependencies:
deno cache --reload --lock=deno.lock src/index.tsx
-
Run in development mode:
deno task dev
Build standalone executables for all platforms:
deno task buildsrc/
βββ components/ # React components for the TUI
β βββ App.tsx # Main application component
β βββ CredentialsSetup.tsx # Ftrack credentials wizard
β βββ ProjectSelector.tsx # Project selection interface
β βββ MainMenu.tsx # Main navigation menu
β βββ Settings.tsx # Settings and credential management
β βββ ToolRunner.tsx # Tool execution wrapper
β βββ common/ # Shared components
β βββ SelectInput.tsx # Custom select input component
βββ services/ # Business logic and Ftrack API clients
βββ tests/ # Test files
- Create a new branch for your feature/fix
- Make your changes following the component architecture
- Test your changes thoroughly
- Submit a pull request
Run the test suite:
deno test --allow-net --allow-read --allow-write --allow-env- Install Deno: https://deno.land/
- Clone this repository
- Copy .env.example to .env and configure your Ftrack credentials
- Note: .env is only needed to run the test suite
- Install dependencies:
deno installdeno task startdeno task devdeno task dev:debugdeno task builddeno task testβββ src/ # Source code
β βββ main.ts # Entry point
β βββ ... # Other source files
βββ .env # Environment variables for testing
βββ deno.json # Deno configuration
βββ deno.lock # Dependency lock file
βββ package.json # Package configuration
We welcome contributions and suggestions!
This project is licensed under the terms of the LICENSE file.