Atalhos e AppleScript

O JPGBoost integra-se com as ferramentas de automatização próprias do macOS. Está disponível uma ação nativa nos Atalhos e no Spotlight, e um comando compress exposto ao AppleScript e ao Automator.

Incluído no Free

Esta funcionalidade está disponível tanto no JPGBoost Free como no Pro. No Free, cada imagem processada conta para a quota diária: 50 imagens por dia e 5 MB por ficheiro. O JPGBoost Pro remove ambos os limites.

Duas formas de automatizar

O JPGBoost expõe duas interfaces de automatização nativas do macOS. Ambas funcionam como processamento independente: recebem ficheiros e definições como entrada, devolvem ficheiros comprimidos como saída, e são independentes da lista atualmente aberta na janela da aplicação.

  • App Intents para a app Atalhos e o Spotlight.
  • AppleScript para osascript, o Editor de Scripts e o Automator.

A aplicação não precisa de estar aberta

Esta é a principal diferença em relação à API local e às pastas monitorizadas, que exigem ambas que a aplicação já esteja em execução.

Seja através de uma ação de Atalhos ou do comando AppleScript compress, o macOS reabre o JPGBoost automaticamente assim que chega um pedido, tal como qualquer outra aplicação com suporte de scripts. Não tem de fazer nada, mesmo que tivesse fechado explicitamente a aplicação antes.

O que esperar

O único efeito visível é um ligeiro atraso, o tempo que demora a abrir, quando a aplicação não estava já aberta. Terminado o processamento, permanece aberta: o macOS não a fecha automaticamente.

A ação «Comprimir imagens»

A ação aparece automaticamente na app Atalhos, na categoria JPGBoost, assim que a aplicação tenha sido aberta uma vez. Não é necessária qualquer configuração.

  1. Abra a app Atalhos e crie um atalho.
  2. Adicione uma ação que forneça ficheiros, por exemplo Selecionar Ficheiros ou Obter Conteúdo de Pasta.
  3. Adicione a ação Comprimir imagens do JPGBoost.
  4. Preencha os parâmetros que quiser. Os que deixar em branco podem ser preenchidos por um perfil de exportação.
  5. Encadeie outra ação a seguir, se necessário: a ação devolve os ficheiros comprimidos.
ParâmetroFunçãoObrigatório
Input FilesAs imagens a comprimirSim
Output FormatFormato de saída desejadoNão
QualityQualidade de 1 a 100Não
Export ProfileNome de um perfil de exportação existenteNão
Destination FolderPasta de saída (consulte o aviso abaixo)Não

O campo «Destination Folder»

Limitação conhecida da app Atalhos

Este é o ponto que mais costuma confundir. O campo Destination Folder é difícil de preencher corretamente a partir do editor de atalhos. A solução fiável consiste em passar por um perfil de exportação.

Este campo espera uma referência de pasta real em formato URL, ou seja, um caminho que comece por file:// (por exemplo file:///Users/eu/Downloads/), e não texto simples. Os seguintes métodos falham com um erro Invalid URL:

  • escrever um caminho à mão, por exemplo /Users/eu/Downloads;
  • arrastar uma pasta do Finder para o campo, que apenas deposita ali texto simples.

O editor de Atalhos do macOS também não oferece nenhuma ação nativa do tipo «Escolher uma Pasta» que permita construir uma de outra forma.

Caso 1: nenhum atalho para construir

Assim que o JPGBoost tiver sido aberto pelo menos uma vez, a frase genérica que a própria aplicação declara («Comprimir imagens com JPGBoost», «Comprimir com JPGBoost») é reconhecida diretamente pelo Spotlight, sem nunca abrir a app Atalhos.

Esta invocação direta transmite apenas os ficheiros selecionados. Nenhum outro parâmetro é fornecido, o que provoca o erro «Pasta de destino em falta» enquanto a configuração abaixo não tiver sido feita.

Para que esta invocação funcione:

  1. No JPGBoost, abra Definições → Perfis e defina um perfil como perfil predefinido, com uma pasta de destino configurada.
  2. No Finder, selecione as imagens a comprimir.
  3. Prima ⌘Espaço e depois escreva «Comprimir imagens».

O JPGBoost preenche então automaticamente os parâmetros em falta a partir do perfil predefinido, nomeadamente a pasta de destino, o formato e a qualidade.

Não é necessário nenhum atalho na app Atalhos.

Caso 2: com um atalho construído

Este caso é útil quando é necessário ter vários comportamentos disponíveis sob nomes distintos. Por exemplo, «Comprimir para o Ambiente de Trabalho» pode usar um perfil, enquanto «Comprimir para Arquivo» usa outro. O perfil predefinido do caso 1 só permite gerir um comportamento de cada vez.

  1. No JPGBoost, abra Definições → Perfis e crie um perfil com uma pasta de destino, selecionada através do seletor nativo da aplicação.
  2. Na app Atalhos, crie um novo atalho e dê-lhe um nome claro, por exemplo «Comprimir para o Ambiente de Trabalho».
  3. Na ação JPGBoost do atalho, preencha apenas Export Profile com o nome do perfil a utilizar. Deixe Destination Folder em branco: a pasta definida no perfil será utilizada automaticamente.
  4. O atalho fica então diretamente disponível no Spotlight com o nome que lhe deu, em vez da frase genérica declarada pelo JPGBoost.

Spotlight

A ação também é acessível a partir do Spotlight. As frases de ativação, do tipo «Comprimir imagens com JPGBoost», estão traduzidas nos quinze idiomas suportados.

Idioma de apresentação

O título da ação, a sua descrição, os seus parâmetros e as suas mensagens de erro seguem o idioma da ferramenta que os apresenta (Atalhos ou Spotlight), independentemente do idioma escolhido para a própria janela do JPGBoost.

AppleScript

O comando compress usa-se tal como o de qualquer outra aplicação com suporte de scripts.

tell application "JPGBoost"
    compress {"/caminho/para/imagem1.png", "/caminho/para/imagem2.jpg"} ¬
        to "/caminho/de/saida" format "webp" quality 80
end tell

Os parâmetros to, format e quality são opcionais. O parâmetro profile pode substituí-los, ou preencher o que eles não cobrem, exatamente como --profile na linha de comandos.

tell application "JPGBoost"
    compress {"/caminho/para/imagem.png"} profile "Web JPEG"
end tell

O comando devolve uma cadeia JSON: um objeto por ficheiro, com os campos path, originalSizeBytes, compressedSizeBytes, ratio, destination e error. É a mesma forma da saída --json da CLI e das respostas da API local.

A partir do Terminal

osascript -e 'tell application "JPGBoost" to compress {"/caminho/imagem.png"} profile "Web JPEG"'

A partir do Automator

Use a ação Executar Script AppleScript e cole nela o mesmo bloco tell. Assim pode criar um serviço acessível a partir do menu contextual do Finder.

Permissão de «Automação»

Apenas uma permissão a conceder

Da primeira vez, o macOS mostra o seu habitual alerta de permissão de «Automação»: a aplicação que envia o comando (Editor de Scripts, Automator ou Atalhos) quer controlar o JPGBoost. Clique em Permitir. Esta permissão só é pedida uma vez.

Resolução de problemas

SintomaCausaSolução
Invalid URL na pasta de destinoO campo recebeu texto em vez de uma referência de pastaUse um perfil de exportação com pasta de destino e deixe o campo em branco
A ação não aparece na app AtalhosA aplicação nunca foi abertaAbra o JPGBoost uma vez e volte a abrir os Atalhos
A ação falha com uma mensagem de quotaA quota diária do JPGBoost Free foi atingida (50 imagens), ou um ficheiro ultrapassa 5 MBAguarde a reposição à meia-noite, ou passe para o JPGBoost Pro para remover ambos os limites
O comando AppleScript devolve um erroPermissão de Automação negadaVerifique Definições do Sistema → Privacidade e Segurança → Automação. Uma recusa por quota Free não interrompe o lote: é assinalada ficheiro a ficheiro no JSON devolvido