figma-export est un outil CLI permettant d'exporter en masse des fichiers Figma, FigJam et Figma Slides vers votre bureau local au format propriétaire .fig
/ .jam
/ .deck
de Figma. figma-export prend en charge le téléchargement par équipe, par projet et même par brouillons.
Cet outil exploite l'API REST et Playwright de Figma pour automatiser la découverte des fichiers Figma et leur téléchargement.
D'autres versions peuvent fonctionner, mais n'ont pas été officiellement testées.
Vous aurez également besoin d'un jeton d'accès Figma que vous pourrez générer via les paramètres de votre profil utilisateur Figma.
cd
dans le dépôtnpm install
Créez un fichier .env
à la racine du référentiel :
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
Si vous utilisez SSO pour vous connecter à Figma, vous pouvez soit définir manuellement un mot de passe (voir wiki) , soit fournir votre cookie de session d'authentification Figma via FIGMA_AUTH_COOKIE
au lieu de FIGMA_EMAIL
et FIGMA_PASSWORD
:
FIGMA_AUTH_COOKIE= " my-auth-cookie-value "
FIGMA_ACCESS_TOKEN= " figd_abcdefghijklmnopqrstuvwxyz "
DOWNLOAD_PATH= " /Users/anonymous/Downloads "
WAIT_TIMEOUT=10000
La valeur de FIGMA_AUTH_COOKIE
doit être la valeur du cookie __Host-figma.authn
. Veuillez vous référer au wiki pour savoir comment récupérer cette valeur.
files.json
détermine quels fichiers Figma de votre compte seront téléchargés.
Conseil
Les brouillons ne sont qu'un projet caché dans Figma, vous pouvez donc absolument les télécharger avec figma-export. Consultez le wiki pour savoir comment récupérer l'ID du projet de brouillon.
Il est recommandé d'utiliser l'une des commandes intégrées pour générer files.json
:
npm run get-team-files {team_ids ...}
- Récupère tous les fichiers de tous les projets dans les ID d'équipe donnés (séparés par des espaces)npm run get-team-files 12345 67890
npm run get-project-files {project_ids ...}
- Récupère tous les fichiers pour les ID de projet donnés (séparés par des espaces)npm run get-project-files 12345 67890
Pour trouver l'identifiant de votre équipe Figma, accédez à votre accueil Figma, cliquez avec le bouton droit sur votre équipe dans la barre latérale gauche, puis cliquez sur Copier le lien . Le dernier segment de l'URL que vous avez copié contiendra votre identifiant d'équipe : https://www.figma.com/files/team/1234567890
.
Pour trouver un ID de projet, accédez à l'accueil de votre équipe, cliquez avec le bouton droit sur le projet, puis cliquez sur Copier le lien . Le dernier segment de l'URL que vous avez copié contiendra l'ID du projet : https://www.figma.com/files/project/1234567890
.
Vous êtes libre de construire manuellement ce fichier tant qu'il suit cette structure :
[
{
"name" : String,
"id" : String,
"team_id" : String?,
"files" : [
{
"key" : String,
"name" : String
},
...
]
},
...
]
Il s'agit d'une structure modifiée à partir de la valeur de retour du point de terminaison des fichiers de projet GET de Figma.
Une fois que vous avez généré files.json
, vous pouvez ensuite exécuter npm run start
pour démarrer les téléchargements. L'état de chaque téléchargement sera affiché dans la console.
Chaque fichier sera téléchargé sur votre DOWNLOAD_PATH
spécifié dans un dossier nommé avec le nom et l'ID du projet. Chaque fichier sera enregistré sous le nom et l'ID (clé) du fichier. La structure des dossiers ressemblera à ceci :
Project A (12345)/
├── File X (123).fig
└── File Y (456).fig
Project B (67890)/
└── File Z (789).fig
Si vous avez exécuté get-team-files
, votre files.json
aura également des références aux ID d'équipe afin que les projets soient placés dans un dossier nommé d'après l'ID d'équipe. Dans ce cas, la structure des dossiers ressemblera à ceci :
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
Les téléchargements parallèles sont désactivés par défaut. Pour les activer, mettez à jour les propriétés suivantes dans playwright.config.ts
:
export default defineConfig ( {
...
fullyParallel : true ,
workers : 3 , // The maximum number of parallel downloads
...
} ) ;
Si vous rencontrez des téléchargements qui échouent, vous pouvez tenter de réexécuter uniquement ces téléchargements ayant échoué à l'aide de la commande npm run retry
.
Notez que les téléchargements peuvent échouer pour un certain nombre de raisons, mais cela est généralement dû à l'atteinte du délai d'expiration de Playwright. Vous pouvez augmenter ce délai d'attente en mettant à jour la configuration timeout
dans playwright.config.ts
.
Les commandes suivantes sont disponibles via npm run
:
Commande | Description |
---|---|
get-team-files | Génère files.json à partir des ID d'équipe Figma |
get-project-files | Génère files.json à partir des ID de projet Figma |
start | Démarre les téléchargements |
retry | Réessaye les téléchargements ayant échoué depuis la dernière exécution |
dry-run | Répertorie les fichiers qui seront téléchargés |
report | Afficher un rapport HTML de la dernière exécution |
A tout moment, vous pouvez appuyer sur ctrl+c
pour arrêter une commande.
timeout
dans playwright.config.ts
).WAIT_TIMEOUT
)