Version: 0.4.3
Build: 12
Channel: Alpha MVP
Platform: macOS 15+
AssetFox is a native macOS post-production toolkit for checking, collecting, ingesting, and inspecting media files. It is built as a single desktop app with a sidebar workflow for post-production operators.
This repository is prepared for public visibility with telemetry secrets and release artifacts kept out of the tracked source tree. Before changing GitHub visibility, run the Public Repository Checklist.
Quality Check: compare multiple video exports with synchronized playback, frame stepping, reference-based cut checks, black/freeze detection, timeline findings, raw FFmpeg diagnostics, and TXT export of QC results.Ingest: copy files from multiple sources to a destination with preflight checks, optional SHA-256 verification, conflict handling, cancellation, partial progress preservation, and TXT/CSV/JSON reports.Duplicate Finder: scan folders for exact duplicate files, review duplicate sets, quarantine or trash selected duplicates, and export CSV results.Collect Media: collect media from Premiere FCP XML or native.prprojfiles, filter FCP XML paths to supported media assets, merge XML/project references, relink sources, and report missing or skipped media.Media Info: inspect technical metadata for video, audio, image, RAW, MOV, MXF, and other media files, with compare mode for checking differences between files.About: show version/build, MediaInfoLib status, FFmpeg/ffprobe availability, and anonymous analytics controls.
0.4.3 / build 12 focuses on release hardening:
- FCP XML collection is restricted to supported media extensions through
CollectMediaPathFilter. - Unsupported FCP XML file URLs are skipped with the report reason
unsupported media extension ignored. - Parser security coverage lives in
Tests/CollectMediaXMLParserSecurityTests.swift. script/test_collect_media_xml_parser.shruns the standalone parser security test.- Internal release builds use
script/build_release.shfor versioned self-contained artifacts. - Privacy-conscious telemetry is anonymous, opt-out capable, and does not collect file names, file paths, media content, project names, raw FFmpeg output, or user-entered text.
For quick local packaging on machines without a full Xcode release setup:
bash build.shThe legacy package script creates:
~/Desktop/AssetFox.app~/Desktop/AssetFox-macos.zip
For internal self-contained release builds, configure telemetry and FFmpeg tools first, then run:
./script/build_release.shThe release script creates versioned artifacts:
dist/AssetFox-<version>-build<build>-self-contained/AssetFox.app
dist/AssetFox-<version>-build<build>-self-contained.zip
dist/AssetFox.app
dist/AssetFox-macos.zip
The app bundle is ad-hoc signed before zipping. For transfer to another Mac, copy the zip, unzip it, and open the app. If Gatekeeper blocks first launch, use Open Anyway in macOS Security settings.
- Open
AssetFox.xcodeprojin Xcode for full IDE work. - The app uses one macOS window with a
NavigationSplitViewsidebar. - Root navigation lives in
AssetFox/Sources/Root. Quality Checklives underAssetFox/Sources/QualityCheck.Collect Mediacontracts, parsers, services, view models, and views live underAssetFox/Sources/CollectMedia.Ingestlives underAssetFox/Sources/Ingest.Media Infolives underAssetFox/Sources/MediaInfo.- Runtime lookup helpers live under
AssetFox/Sources/Runtime. - Anonymous analytics lives under
AssetFox/Sources/Telemetry. - No Python runtime is embedded in the macOS app target.
Run the Collect Media parser security test:
script/test_collect_media_xml_parser.shSee docs/SMOKE_TEST.md for the full launch and feature checklist.
- Smoke Test
- FFmpeg Tool Placement
- MediaInfoLib Embedding
- Telemetry Build Setup
- Public Repository Checklist
AssetFox/
├── AssetFox.xcodeproj/
├── AssetFox/
│ ├── Sources/
│ │ ├── Root/
│ │ ├── QualityCheck/
│ │ ├── CollectMedia/
│ │ ├── Ingest/
│ │ ├── MediaInfo/
│ │ ├── Runtime/
│ │ ├── Telemetry/
│ │ ├── Models/
│ │ ├── Services/
│ │ └── Views/
│ └── Info.plist
├── docs/
├── script/
├── Tests/
├── build.sh
└── README.md