Node n8n

Publiez sur Instagram, TikTok, YouTube, X, Facebook, LinkedIn et Bluesky depuis n’importe quel workflow n8n.

n8n-nodes-chat33
npm

1. Installer

Dans votre instance n8n, allez dans Settings → Community Nodes → Install et saisissez le nom du package :

nom du package
n8n-nodes-chat33

Nécessite n8n avec les community nodes activés (auto-hébergé, ou n8n Cloud avec des community nodes vérifiés).

2. Créer l’identifiant

  1. Dans Chat33, ouvrez Réglages → Clés API et créez une clé (les autorisations par défaut suffisent : accounts:read, posts:read, posts:write, media:write).
  2. Dans n8n, ajoutez un identifiant Chat33 API : laissez Base URL sur https://chat33.io et collez la clé API.
  3. Cliquez sur Test. Il vérifie la clé avec GET /api/v1/accounts.

3. Ressources et opérations

RessourceOpérationsRemarques
AccountGet ManyListe vos canaux connectés ; alimente aussi les menus déroulants de comptes
PostCreate, Validate, Get, Get Many, Delete, Duplicate, Get LogsCreate et Validate choisissent les comptes dans un menu déroulant en direct ; Validate est un essai à blanc (rien n’est publié)
MediaUploadFichier binaire du workflow (jusqu’à 500 Mo) ou import depuis une URL publique (vidéos jusqu’à 4 Go pour TikTok ; YouTube 2 Go, X 512 Mo, Instagram/Facebook 1 Go, LinkedIn 200 Mo, Bluesky 300 Mo)

Configure Platform Settings (node 0.2.0+) : le menu déroulant de comptes enregistre des ID de canaux, le node ne peut donc pas savoir quelles plateformes vous avez choisies. Cochez-les ici et seules ces collections apparaissent. Chaque plateforme accepte aussi une Caption qui remplace le texte commun pour ce réseau seulement : un même node peut ainsi envoyer un message différent à chacun.

YouTube Settings : cochez YouTube sur chaque publication YouTube. Made for Kids est imposé par YouTube/la FTC et la publication est rejetée sans lui. La confidentialité est public par défaut : réglez-la si vous voulez une vidéo non répertoriée ou privée. Contient aussi le titre, la description, les tags, la catégorie et la notification aux abonnés. Les publications programmées ignorent le choix de confidentialité : elles sont envoyées en privé et YouTube les bascule à l’heure programmée.

TikTok Settings : si TikTok n’est pas coché, la vidéo arrive dans les brouillons du compte au lieu d’être publiée. Réglez Publish Mode sur Direct Post pour publier, ce qui exige aussi un niveau de confidentialité. Les options que vous ne définissez pas restent inchangées : commentaires, duos et collages restent donc activés tant que vous ne les désactivez pas. La divulgation commerciale et le label de contenu généré par IA correspondent pour vous aux champs de conformité de la Content Posting API de TikTok.

Instagram Settings : First Comment est publié juste après la publication, là où vont d’ordinaire les hashtags pour qu’ils restent hors de la légende.

X Settings : Post as Thread découpe le texte selon un séparateur et enchaîne chaque morceau en réponse, avec en plus les autorisations de réponse.

LinkedIn Settings : visibilité (tout le monde sur LinkedIn, ou relations uniquement), URL d’un article à partager comme carte de lien, et titre/description du média. Les publications vont sur le profil personnel du membre. Les Pages d’entreprise ne sont pas encore prises en charge.

Chaque option acceptée par l’API a désormais un champ typé : Additional Options → Platform Config (JSON) ne sert donc que pour ce qui a été ajouté à l’API après le node ; le schéma est dans l’explorateur OpenAPI.

4. Exemple : publier une vidéo depuis un webhook

Trois nodes : Webhook → Chat33 (Media Upload) → Chat33 (Post Create).

  1. Webhook : méthode POST, reçoit le JSON { "videoUrl": "...", "caption": "..." }.
  2. Chat33 → Media → Upload : Input Type URL, File URL ={{ $json.body.videoUrl }}. Renvoie l’URL d’un média hébergé.
  3. Chat33 → Post → Create : choisissez les comptes dans le menu déroulant, Text ={{ $('Webhook').item.json.body.caption }}, Media URLs ={{ $json.url }}, Additional Options → Media Type video, plus les réglages TikTok/YouTube si nécessaire.

Déclenchez-le :

bash
curl -X POST https://your-n8n.example.com/webhook/my-path \
  -H "Content-Type: application/json" \
  -d '{"videoUrl": "https://example.com/video.mp4", "caption": "Hello from n8n 🚀"}'

La réponse contient la ou les publications créées avec le statut QUEUED. Chat33 publie dans la minute. Ajoutez un node Post → Get ou définissez un callbackUrl pour suivre le statut final.

Limites des médias

  • Vidéos : jusqu’à 4 Go par import d’URL pour TikTok (mp4, mov, webm) ; les autres plateformes plafonnent plus bas à la publication : YouTube 2 Go, X 512 Mo, Instagram/Facebook 1 Go, LinkedIn 200 Mo, Bluesky 300 Mo
  • Les fichiers de plus de 500 Mo destinés à TikTok sont envoyés automatiquement par transfert fragmenté, sans passer par une URL ou un domaine, avec simplement une publication plus lente.
  • Images : jusqu’à 20 Mo (jpeg, png, webp, gif). Instagram/Facebook plafonnent à 8 Mo, LinkedIn à 10 Mo, X à 5 Mo, Bluesky à 2 Mo
  • Envois binaires depuis le workflow lui-même : jusqu’à 500 Mo (node 0.1.2+, qui envoie directement vers le stockage au lieu de passer par l’API). Au-delà, hébergez le fichier n’importe où en public (https) et utilisez le mode URL.
  • Les publications programmées gardent une copie. Quand vous programmez une publication dont le média est sur votre propre hébergement, Chat33 copie le fichier dans son stockage peu après la création de la publication : une publication programmée des semaines à l’avance sort donc quand même si votre lien d’origine expire ou si le fichier est supprimé. Les publications immédiates sautent cette étape : elles sont publiées en deux minutes environ, le lien est donc récupéré alors qu’il est forcément encore là.

Dépannage

Insufficient scope: recréez la clé API avec les autorisations par défaut, ou ajoutez l’autorisation manquante dans Réglages → Clés API.

TikTok DIRECT_POST requires a privacy level: ajoutez TikTok Settings sur le node Post Create et choisissez un niveau de confidentialité que le compte autorise.

File too large: voir les limites des médias ci-dessus ; compressez la vidéo ou utilisez le mode URL.