n8n-nodes-transcription-hess
v0.1.0
Published
Node n8n pour le moteur de transcription audio Whisper HESS
Maintainers
Readme
n8n-nodes-transcription-hess
Node communautaire n8n pour le moteur de transcription Whisper HESS (paquet
api/ à la racine du projet Whisper). Envoie un fichier audio binaire à
l'API POST /transcrire et renvoie le texte + les segments horodatés.
- Node :
Transcription HESS— entrée : un item avec un champ binaire audio ; sortie :{ texte, segments[], langue, duree_audio, duree_calcul, modele }. - Credential :
Transcription HESS API— URL de base + clé API (headerX-API-Key), avec bouton Test (appelleGET /sante).
Compiler
npm install
npm run build # tsc -> dist/ + copie de l'icôneLe build produit dist/ (c'est le seul dossier publié, cf. files dans
package.json).
Installation privée sur Render (shell, sans rien publier) — méthode retenue
Le node reste 100 % privé (aucune publication npm). On dépose le paquet
compilé sur le disque persistant de n8n (monté sur /home/node/.n8n),
dans le dossier custom/ que n8n scanne au démarrage.
⚠️ Contrairement à l'install par l'UI, un node posé sur le disque n'est chargé qu'au (re)démarrage de n8n. Il faut donc redémarrer le service une fois (Render : Manual Deploy → Restart, ou un redéploiement — le disque et son contenu persistent dans les deux cas). Aucune perte de données.
1. Sur le PC — construire le paquet
npm install
npm run build
npm pack # produit n8n-nodes-transcription-hess-0.1.0.tgz (~6 ko)2. Transférer le tarball dans le shell Render (copier-coller, privé)
Le tarball fait ~6 ko : on le passe en base64 par le presse-papier.
Sur le PC (PowerShell) — copie le base64 dans le presse-papier :
[Convert]::ToBase64String([IO.File]::ReadAllBytes("n8n-nodes-transcription-hess-0.1.0.tgz")) | Set-ClipboardDans le Shell du service n8n (dashboard Render → onglet Shell) :
mkdir -p /home/node/.n8n/custom && cd /home/node/.n8n/custom
[ -f package.json ] || npm init -y
cat > pkg.b64 <<'EOF'
<COLLER ICI le base64 du presse-papier, puis Entrée>
EOF
base64 -d pkg.b64 > pkg.tgz && rm pkg.b64
npm install ./pkg.tgz # installe le node + sa dépendance form-data(Le node atterrit dans /home/node/.n8n/custom/node_modules/ — sur le disque
persistant.)
3. Redémarrer n8n
Dashboard Render → service n8n → Manual Deploy → Restart (ou un redéploiement). Au redémarrage, « Transcription HESS » apparaît dans la palette.
Pour mettre à jour le node plus tard : refaire
npm run build+npm packsur le PC, re-transférer,npm install ./pkg.tgz(écrase), redémarrer.
Alternative : installer dans n8n (UI — node communautaire public)
Sur ton n8n self-hosted (Render) :
- Vérifier que les nodes communautaires sont activés (par défaut oui ;
variable
N8N_COMMUNITY_PACKAGES_ENABLEDnon mise àfalse). - ⚠️ Render : monter un disque persistant sur le dossier de données
n8n (
/home/node/.n8n), sinon le node installé disparaît à chaque redéploiement. (Disque persistant = offre Render payante.) - Dans n8n : Settings → Community Nodes → Install, saisir le nom du
paquet npm une fois publié :
n8n-nodes-transcription-hess.
Publier sur npm (préalable à l'install par l'UI)
npm login
npm publish --access publicLe nom n8n-nodes-transcription-hess et le mot-clé
n8n-community-node-package rendent le paquet reconnu comme node n8n.
Tester en local sans publier (lien)
Sur une instance n8n locale (npm global ou Docker avec volume) :
npm run build
npm link
cd ~/.n8n/custom # créer ce dossier s'il n'existe pas
npm link n8n-nodes-transcription-hessPuis relancer n8n : le node apparaît dans la palette.
Configurer dans le workflow
- Ajouter une credential Transcription HESS API :
- URL de base : l'URL publique du tunnel cloudflared/ngrok (ex.
https://xxxx.trycloudflare.com), ouhttp://127.0.0.1:8770si n8n est sur le même réseau que le PC. - Clé API : la valeur
cle_apideapi/config.json. - Cliquer Test → doit être vert (
/sante).
- URL de base : l'URL publique du tunnel cloudflared/ngrok (ex.
- Mettre le node Transcription HESS après un node qui fournit un binaire
audio (Read/Download File, HTTP Request en mode fichier, Google Drive…).
- Propriété binaire : nom du champ binaire (souvent
data). - Langue, Inclure segments, Utiliser lexique, et Options (beam, modèle) selon le besoin.
- Propriété binaire : nom du champ binaire (souvent
- Le texte transcrit est dans
{{ $json.texte }}.
Timeout : la transcription est synchrone (~×3,5 le temps réel sur CPU). Pour de longs fichiers, augmente le timeout de la requête au besoin.
Structure
credentials/TranscriptionHessApi.credentials.ts # URL + clé, auth header, test /sante
nodes/TranscriptionHess/TranscriptionHess.node.ts # logique du node (POST multipart)
nodes/TranscriptionHess/transcription.svg # icône
test-appel.js # test manuel local (non publié)