## Trigger Compresto via deep linking

The deep link support these parameters:

- `quality`. Possible values: `highest`, `high`, `good`, `medium`, `acceptable`. Default is `high`
  - For PDF, the param is `pdfQuality` which the possible values are: `best`, `high`, `balance`, `low`
- `videoFormat`. Possible values: `same`, `mp4`, `webm`. Default is `same`
- `imageFormat`. Possible values: `same`, `webp`, `jpg`, `png`. Default is `same`
- `format`. Default value is `same`. If `videoFormat` or `imageFormat` is missing, `format` parameter will be used.
- `removeAudio`. Possible values: `true`, `false`. Default is `false`
- `fileNameFormat` to customise the output file name format. It is appended to the original file name. Supported tokens:
  - `{timestamp}` - Current unix timestamp
  - `{datetime}` - Current date and time in `yyyy-MM-dd'T'HHmmss` format
  - `{date}` - Current date in `yyyy-MM-dd` format
  - `{time}` - Current time in `HHmmss` format
  - `{quality}` - Quality of the output file
  - `{resolution}` - Resolution of the output file
- `outputFileName` to set an explicit output file name (base name only, without extension). Overrides `fileNameFormat`. When multiple files are processed, a number is appended to avoid collisions (e.g. `name`, `name 1`, `name 2`).
- `outputFolder` or `outputPath` to customise the output folder. Default is same as input files.
- `removeInputFile` for removing input files after compression.
- `subfolderProcessing` for including the files in subfolders recursively. Possible values: `all`, `none`, or a number to set the max depth.

### File compression using deep linking

The deeplink format is as follows:

```
compresto://open?path={path_to_your_file_1}|{path_to_your_file_2}
&[param1]=[value1]&[param2=[value2]
```

Each file path is divided by `|` character. Each param is divided by `&` character. Below are some example deeplinks:

```
// compress a video
compresto://open?path=/Users/hieudinh/Desktop/video.mp4&quality=medium&videoFormat=mp4&removeAudio=true
// compress an image
compresto://open?path=/Users/hieudinh/Desktop/image.png&quality=medium&imageFormat=png
// compress video and image
compresto://open?path=/Users/hieudinh/Desktop/image.png|/Users/hieudinh/Desktop/video.mp4&quality=medium&imageFormat=png&videoFormat=mp4&removeAudio=true
// compress a video with a custom output file name
compresto://open?path=/Users/hieudinh/Desktop/video.mp4&videoFormat=webm&outputFileName=my-clip
```

### Output file name results

`fileNameFormat` is appended to the original file name, while `outputFileName` replaces it entirely. When both are provided, `outputFileName` takes precedence and `fileNameFormat` is ignored. Given an input file `video.mp4`, here are the resulting output file names:

| Parameters | Output file name |
| --- | --- |
| `fileNameFormat=_compressed` | `video_compressed.mp4` |
| `fileNameFormat=-{date}` | `video-2026-06-04.mp4` |
| `fileNameFormat=-{quality}-{resolution}` | `video-Good-FullHD.mp4` |
| `outputFileName=my-clip` | `my-clip.mp4` |
| `fileNameFormat=_compressed` and `outputFileName=my-clip` | `my-clip.mp4` |
 
The extension follows the chosen `videoFormat` / `imageFormat` (or stays the same as the input when `same`).

### File importing using deep linking

You can also import files into CompressX for customization before compressing. The deeplink format is as follows:

```
compresto://import?path={path_to_your_file_1}|{path_to_your_file_2}
```

## Trigger Compresto via command line

In your favourite Terminal, you can trigger compression or importing by using the same deep link with `open` command.

```
// compression
open "compresto://open?path=/Users/hieudinh/Desktop/test1.mp4|/Users/hieudinh/Desktop/test2.mp4"
// import
open "compresto://import?path=/Users/hieudinh/Desktop/test1.mp4|/Users/hieudinh/Desktop/test2.mp4"
```
