Skip to main content
The Camera Workflow extension guides you through a complete backup preparation workflow in a single Raycast command.

Launch the Extension

Press ⌘ Space and search for:
Prepare Library for Backup
Press Enter to open the conversion form.

Workflow Steps

The extension follows a six-step process:

1. Dependency Check

The form displays the dependency status at the top:
βœ… Dependencies ready (embedded media-converter)
If dependencies are missing, install them before proceeding:
brew install ffmpeg imagemagick

2. Source Selection

Choose your media source using one of two methods:

3. Destination Setup

Choose where the prepared library will be saved:

4. Preset Selection

Choose a conversion preset or customize settings:

5. Conversion Settings

1

Dry Run

Enable Dry Run to preview changes without converting files.The converter will:
  • Analyze all source files
  • Simulate the conversion process
  • Show what would be converted
  • Calculate estimated space savings
Always run a dry-run first to verify your settings.
2

Parallel Jobs

Set the number of concurrent conversions.Recommended values:
  • 2-4 jobs: Safe for most Macs
  • 6-8 jobs: High-end machines with ample RAM
  • 1 job: Low-memory systems or during heavy multitasking
Higher values increase CPU/RAM usage. Monitor system performance during conversion.

6. Run and Monitor

Click Prepare Library for Backup to start the conversion.

Conversion Progress View

The extension switches to a live progress view showing:

Real-time Output

The conversion log displays in real-time:
[2026-03-03 14:30:15] Starting conversion...
[2026-03-03 14:30:16] Source: /Volumes/EOS_DIGITAL
[2026-03-03 14:30:16] Destination: /Users/you/Desktop/prepared-library-20260303-1430
[2026-03-03 14:30:17] Scanning source directory...
[2026-03-03 14:30:20] Found 1,234 images and 89 videos
[2026-03-03 14:30:21] Running safety test...
[2026-03-03 14:30:25] Converting images...
[2026-03-03 14:30:26] [1/1234] IMG_0001.jpg β†’ 2026/03-March/2026-03-15/images/IMG_0001.avif
...

Status Indicator

The status updates automatically:
  • 🟑 In Progress: Conversion is running
  • 🟒 Completed: All files processed successfully
  • πŸ”΄ Failed: Error occurred during conversion

Backup Report

When complete, the extension displays key metrics:
- Files processed: 1,323 files
- Files skipped: 12 files (already converted)
- Files verified: 1,311 files
- Total time: 45m 32s
- Original size: 45.2 GB
- Compressed size: 12.8 GB
- Space saved: 32.4 GB (71.7%)
- Converted files in: /Users/you/Desktop/prepared-library-20260303-1430
- Detailed logs: /Users/you/Desktop/prepared-library-20260303-1430/conversion.log

Quick Actions

After conversion, use the action panel to:

Open Log File

View the detailed conversion log with timestamps, errors, and file-by-file results.

Open Prepared Library

Browse the organized output directory with converted files.

Output Structure

The prepared library is organized by date:
prepared-library-20260303-1430/
β”œβ”€β”€ conversion.log
β”œβ”€β”€ 2024/
β”‚   β”œβ”€β”€ 12-December/
β”‚   β”‚   β”œβ”€β”€ 2024-12-25/
β”‚   β”‚   β”‚   β”œβ”€β”€ images/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ IMG_0001.avif
β”‚   β”‚   β”‚   β”‚   └── IMG_0002.avif
β”‚   β”‚   β”‚   └── videos/
β”‚   β”‚   β”‚       └── VID_0001.mp4
β”œβ”€β”€ 2025/
β”‚   β”œβ”€β”€ 01-January/
β”‚   β”‚   β”œβ”€β”€ 2025-01-01/
β”‚   β”‚   β”‚   β”œβ”€β”€ images/
β”‚   β”‚   β”‚   └── videos/

Date Extraction Logic

Files are organized by their creation date, not filesystem modification time. The converter extracts dates using:
  1. macOS metadata (mdls) - most reliable for RAW files
  2. EXIF data (EXIF:DateTimeOriginal) - standard for photos
  3. Video metadata (creation_time) - from video containers
  4. File modification time - fallback only
This ensures photos are organized by when they were taken, not when they were copied to your computer.

Safety Features

The extension includes multiple safety mechanisms:

Pre-conversion Checks

  • Disk space verification: Ensures sufficient space for output
  • Dependency validation: Confirms all required tools are available
  • Path validation: Verifies source and destination exist and are accessible
  • Safety test: Converts a sample file before batch processing

During Conversion

  • Original preservation: Source files are never modified (unless explicitly deleted)
  • Atomic operations: Files are converted to .tmp then renamed atomically
  • Processing markers: Track active conversions with PID/timestamp
  • Integrity verification: Validates output files after conversion

Recovery and Resumption

  • Idempotent operations: Re-running the same command safely skips completed files
  • Abandoned file cleanup: Detects and removes .tmp files from crashed processes
  • Corruption detection: Re-converts files that fail integrity checks
Always run a dry-run first to verify your settings and see what will be converted.

Common Workflows

Goal: Quickly prepare an SD card for cloud backup
1

Insert SD card and launch extension

The card should appear in Suggested Source automatically.
2

Use defaults

  • Preset: Google Photos
  • Destination: Auto-create on Desktop
  • Dry Run: Enabled (first time)
3

Review dry-run results

Check the report to see space savings and file counts.
4

Run actual conversion

Disable Dry Run and run again.
5

Upload to cloud

Open the prepared library folder and upload to Google Photos, iCloud, etc.
Goal: Create an archive with minimal quality loss
1

Select source and destination

Choose your media folder and output location.
2

Use High Quality preset

  • Preset: High Quality
  • This uses AVIF 90 and H.265 CRF 23
3

Adjust parallel jobs

Increase to 4-8 for faster processing on powerful machines.
4

Run conversion

Monitor progress and review final report.
Goal: Fine-tune conversion for specific requirements
1

Select Custom preset

This unlocks all advanced settings.
2

Configure photo settings

  • Format: AVIF or WebP
  • Quality: Adjust based on your needs (70-95 recommended)
3

Configure video settings

  • Codec: H.265 (best compatibility), AV1 (best compression, slower)
  • CRF: 23-28 for good balance, lower for higher quality
4

Test with dry-run

Always preview custom settings before converting.

Next Steps

Extension Overview

Learn about the architecture and design

CLI Interface

Use the command-line tool directly

Build docs developers (and LLMs) love