figma-export é uma ferramenta CLI para exportação em massa de arquivos Figma, FigJam e Figma Slides para sua área de trabalho local no formato .fig
/ .jam
/ .deck
proprietário da Figma. figma-export suporta download por equipe, projeto e até rascunhos.
Esta ferramenta aproveita a API REST e o Playwright do Figma para automatizar a descoberta de arquivos Figma e baixá-los.
Outras versões podem funcionar, mas não foram testadas oficialmente.
Você também precisará de um token de acesso Figma que pode ser gerado por meio das configurações do perfil de usuário do Figma.
cd
no repositórionpm install
Crie um arquivo .env
na raiz do repositório:
FIGMA_EMAIL= " [email protected] "
FIGMA_PASSWORD= " hunter2 "
FIGMA_ACCESS_TOKEN= " figd_abcdefghijklmnopqrstuvwxyz "
DOWNLOAD_PATH= " /Users/anonymous/Downloads " # Absolute path where files will be downloaded to
WAIT_TIMEOUT=10000 # Time in ms to wait between downloads
Se estiver usando SSO para fazer login no Figma, você pode definir manualmente uma senha (consulte o wiki) ou fornecer seu cookie de sessão de autenticação Figma por meio de FIGMA_AUTH_COOKIE
em vez de FIGMA_EMAIL
e FIGMA_PASSWORD
:
FIGMA_AUTH_COOKIE= " my-auth-cookie-value "
FIGMA_ACCESS_TOKEN= " figd_abcdefghijklmnopqrstuvwxyz "
DOWNLOAD_PATH= " /Users/anonymous/Downloads "
WAIT_TIMEOUT=10000
O valor de FIGMA_AUTH_COOKIE
deve ser o valor do cookie __Host-figma.authn
. Consulte o wiki sobre como obter esse valor.
files.json
determina quais arquivos Figma em sua conta serão baixados.
Dica
Os rascunhos são apenas um projeto oculto no Figma, então você pode baixá-los totalmente com o figma-export. Confira o wiki para saber como obter o ID do projeto de rascunho.
É recomendado que você use um dos comandos integrados para gerar files.json
:
npm run get-team-files {team_ids ...}
- Obtém todos os arquivos de todos os projetos dentro de determinados IDs de equipe (separados por espaço)npm run get-team-files 12345 67890
npm run get-project-files {project_ids ...}
- Obtém todos os arquivos para determinados IDs de projeto (separados por espaço)npm run get-project-files 12345 67890
Para encontrar o ID da sua equipe Figma, navegue até a página inicial do Figma, clique com o botão direito na sua equipe na barra lateral esquerda e clique em Copiar link . O último segmento da URL que você copiou conterá o ID da sua equipe: https://www.figma.com/files/team/1234567890
.
Para encontrar um ID de projeto, navegue até a página inicial da sua equipe, clique com o botão direito no projeto e clique em Copiar link . O último segmento da URL que você copiou conterá o ID do projeto: https://www.figma.com/files/project/1234567890
.
Você está livre para construir manualmente este arquivo, desde que siga esta estrutura:
[
{
"name" : String,
"id" : String,
"team_id" : String?,
"files" : [
{
"key" : String,
"name" : String
},
...
]
},
...
]
Esta é uma estrutura modificada do valor de retorno do endpoint dos arquivos de projeto GET do Figma.
Depois de gerar files.json
, você pode executar npm run start
para iniciar os downloads. O status de cada download será mostrado no console.
Cada arquivo será baixado para o DOWNLOAD_PATH
especificado em uma pasta nomeada com o nome e ID do projeto. Cada arquivo será salvo com o nome e ID (chave) do arquivo. A estrutura de pastas ficará mais ou menos assim:
Project A (12345)/
├── File X (123).fig
└── File Y (456).fig
Project B (67890)/
└── File Z (789).fig
Se você executou get-team-files
, seu files.json
também terá referências aos IDs da equipe, portanto os projetos serão colocados em uma pasta com o nome do ID da equipe. Nesse caso, a estrutura de pastas será semelhante a esta:
1029384756/
├── Project A (12345)/
│ ├── File X (123).fig
│ └── File Y (456).fig
└── Project B (67890)/
└── File Z (789).fig
5647382910/
└── Project C (45678)/
└── File W (012).fig
Os downloads paralelos estão desabilitados por padrão. Para ativá-los, atualize as seguintes propriedades em playwright.config.ts
:
export default defineConfig ( {
...
fullyParallel : true ,
workers : 3 , // The maximum number of parallel downloads
...
} ) ;
Se você encontrar downloads que falham, você pode tentar executar novamente apenas os downloads que falharam usando o comando npm run retry
.
Observe que os downloads podem falhar por vários motivos, mas normalmente é devido ao alcance do tempo limite do Playwright. Você pode aumentar esse tempo limite atualizando a configuração de timeout
em playwright.config.ts
.
Os seguintes comandos estão disponíveis via npm run
:
Comando | Descrição |
---|---|
get-team-files | Gera files.json a partir dos IDs da equipe Figma |
get-project-files | Gera files.json a partir de ID(s) do projeto Figma |
start | Inicia downloads |
retry | Tenta novamente downloads com falha da última execução |
dry-run | Lista os arquivos que serão baixados |
report | Mostrar um relatório HTML da última execução |
A qualquer momento, você pode pressionar ctrl+c
para interromper um comando.
timeout
em playwright.config.ts
)WAIT_TIMEOUT
)