Titres, tags, confidentialité et Shorts : upload YouTube video through API
Un seul POST authentifié suffit pour upload YouTube video through API avec un titre, jusqu'à 20 tags, un statut de confidentialité et l'id d'une playlist existante. Ici, YouTube se limite à la vidéo - pas de posts Communauté, pas de posts image ou texte - la charge utile est donc réduite et les règles strictes.

Toutes les options spécifiques à YouTube tiennent dans un seul objet
youtubeConfigs porte postType, videoTitle, tags, categoryId, privacyStatus, playlistId ainsi que les drapeaux notify/embed/kids/license, et il voyage dans la même requête POST /social-posts qui référence le fichier uploadé.
Publiez sur toutes vos plateformes en un clic
Partagez sur Instagram, TikTok, YouTube, X et plus en un clic. Chaque post s'adapte automatiquement.
Calendrier de contenu visuel
Le calendrier AdaptlyPost affiche chaque brouillon, publication programmée et publication parue, jour par jour, pour que vos créneaux restent remplis.
Toutes vos statistiques réseaux sociaux au même endroit
AdaptlyPost suit les vues, likes, partages et l'engagement de chaque compte connecté dans un seul tableau de bord d'analyse.
Accès API et skill OpenClaw
Connectez via API ou laissez votre agent OpenClaw gérer les publications. Automatisez les réseaux sociaux avec des commandes en langage naturel.
Générateur d'images IA pour les réseaux sociaux
Créez des images captivantes en quelques secondes. Décrivez votre vision et laissez l'IA la concrétiser.
Générateur de légendes IA pour chaque plateforme
Le copilote IA d'AdaptlyPost rédige les légendes, les réécrit pour chaque plateforme et ajoute les hashtags à partir d'un seul prompt.
Planificateur de contenu pour réseaux sociaux
AdaptlyPost regroupe brouillons, posts programmés et contenus publiés dans une seule file, pour que vous sachiez ce qui part et quand.
La Confiance des Créateurs et des Équipes
Découvrez comment créateurs, marketeurs, agences et petites entreprises utilisent AdaptlyPost pour rester réguliers et gagner des heures chaque semaine.
11 comptes sur 8 plateformes avec quasiment zéro friction
Je gère actuellement 11 comptes répartis sur Facebook, Instagram, Threads, LinkedIn, Bluesky, YouTube, X et TikTok, tous connectés et publiant chaque jour. Facilité d'utilisation : 10/10. La courbe d'apprentissage est quasi inexistante. Programmer des posts sur plusieurs plateformes prend des minutes au lieu des heures que j'y passais à la main. Ça a remplacé au moins deux autres abonnements, et je ne regrette rien.
Simple, puissant et un support formidable
C'est facile à utiliser, et le connecter à Claude me permet d'organiser et de diffuser vidéos et images tout en restant fidèle au style de ma marque. Ce qui ressort vraiment, c'est le support : j'ai dit à Taras qu'il me fallait deux nouvelles fonctionnalités, publier des posts Instagram mélangeant images et vidéos, et envoyer des PDF sur LinkedIn via MCP, et il avait les deux prêtes en seulement 3 heures. Rapide, réactif et vraiment formidable.
Mon expérience honnête : gérer mes réseaux sociaux avec AdaptlyPost et Claude AI
Et puis le moment qui me paraît encore un peu fou : j'ai demandé à Claude de générer les publications complètes, images et visuels compris, et de tout programmer via AdaptlyPost. Je suis allé dans mon calendrier de contenu en m'attendant à devoir surveiller le processus. Il était déjà rempli. 30 jours de publications, textes et visuels, programmés et prêts. L'ensemble a pris une dizaine de minutes. Avant, j'y perdais des heures chaque semaine.
Enfin un outil adapté à un workflow terminal-first (et un support de premier ordre !)
J'ai essayé plusieurs outils de planification pour les réseaux sociaux par le passé, et aucun ne correspondait vraiment à mon workflow. Adaptly a complètement changé la donne.
Un développeur réactif et un lien de connexion côté client qui règle un vrai problème d’agence
Ma fonctionnalité préférée est le lien de connexion partageable. On génère un lien pour qu'un client connecte lui-même ses comptes sociaux, sans aucun accès au tableau de bord. Obtenir d'un client non technique qu'il me donne accès à ses comptes a toujours été un point de friction, et cela supprime presque tout le problème. J'envoie un lien, il clique et autorise, et c'est fait.
Un planificateur multi-comptes solide, nous gérons 3 marques avec au quotidien
Nous utilisons AdaptlyPost pour programmer Instagram, Facebook, LinkedIn (et les Stories) pour trois marques. Ce que j'apprécie le plus, c'est qu'il se fait oublier une fois les publications en file d'attente. Nous programmons des photos, des carrousels et des Reels/Stories par lots, nous vérifions le calendrier et nous le laissons publier.
Du terminal vide à l'upload publié
Créez une clé, puis retrouvez la chaîne
Les clés sont délivrées dans le tableau de bord, sous Settings > API Tokens, et commencent par adaptly_. Envoyez-les en `Authorization: Bearer <key>` vers https://post.adaptlypost.com/post/api/v1. La chaîne elle-même se connecte en OAuth dans le tableau de bord - aucun endpoint ne connecte, ne déconnecte ni ne teste l'état d'une chaîne YouTube - puis `GET /social-accounts` renvoie son id, sa platform et son displayName à référencer dans le post. Un appel vise une seule chaîne YouTube : une deuxième chaîne demande un deuxième appel, et envoyer deux comptes YouTube dans une même charge utile est rejeté avec un 400.
Envoyez le fichier, puis POST /social-posts avec youtubeConfigs
Seuls video/mp4 et video/quicktime sont acceptés, et `POST /upload-urls` rejette d'emblée tout autre type mime : demandez-y donc des URL présignées (1 à 20 fichiers, valables une heure), envoyez le fichier en PUT, puis créez le post avec `text`, `platforms: ["YOUTUBE"]`, `timezone` (IANA, par exemple "Europe/Berlin"), `contentType: "VIDEO"` et un objet `youtubeConfigs`. La liste des types de contenu pris en charge par YouTube se réduit à VIDEO et son maximum d'images par post est de 0 : un post IMAGE ou TEXT incluant YouTube n'atteint donc jamais la chaîne. Le corps de la requête est validé de façon synchrone : un `videoTitle` dépassant 100 caractères, plus de 20 `tags`, un champ obligatoire manquant ou un type de contenu non pris en charge reviennent tous en 400 sur l'appel de création lui-même, sans qu'aucun enregistrement de post soit écrit et sans rien à relancer. `postType: "SHORTS"` exige un fichier en 9:16 de 60 secondes ou moins : vérifiez donc le format et la durée avant d'appeler. Ajoutez `scheduledAt` pour programmer au lieu de publier immédiatement.
Lisez platformPostId, ou corrigez et relancez
`GET /social-posts/:id/results` renvoie l'entrée YouTube avec `status`, `publishedAt`, `errorMessage` et `platformPostId` - l'id brut de la vidéo YouTube. Aucune URL de visionnage n'est jamais renvoyée : construisez vous-même le lien à partir de cet id. Cet endpoint rapporte ce que YouTube a fait après que nous avons accepté et expédié l'upload, pas si la charge utile était bien formée - les charges utiles malformées n'arrivent jamais jusque-là, puisqu'elles ont échoué avec un 400 à la création. Ce qui apparaît dans `errorMessage` vient de la chaîne : un `playlistId` qui n'existe pas sur la chaîne connectée, une autorisation OAuth révoquée par le propriétaire de la chaîne, ou un upload que YouTube a refusé ou limité pendant son propre traitement. Corrigez la cause de fond, puis appelez `POST /social-posts/:id/retry` avec les `platformIds` en échec plutôt que de recréer le post. Il n'existe aucun sandbox nulle part dans l'API : ce qui s'en approche le plus est de publier avec `privacyStatus: "PRIVATE"` et de basculer le statut ensuite dans YouTube Studio.
Tarifs simples et transparents
Choisissez le forfait parfait pour vous
Creator
Parfait pour les indépendants et solopreneurs
$19
/mois
30 comptes sociaux connectés
Posts programmés illimités
Collaboration en équipe
1 espace de travail
150 crédits IA/mois
Légendes IA
Studio d'images IA
API/MCP/CLI
Posts image, vidéo et carrousel
Direct Connector
Plugin direct
Extensions de navigateur
Compatible avec
Plus populaire
60 comptes sociaux connectés
Posts programmés illimités
3 membres d'équipe
3 espaces de travail
400 crédits IA/mois
Légendes IA
Studio d'images IA
API/MCP/CLI
Posts image, vidéo et carrousel
Direct Connector
Plugin direct
Extensions de navigateur
Compatible avec
Enterprise
Pour les agences et entreprises prêtes à grandir
$89
/mois
100 comptes sociaux connectés
Posts programmés illimités
10 membres d'équipe
10 espaces de travail
1000 crédits IA/mois
Légendes IA
Studio d'images IA
API/MCP/CLI
Posts image, vidéo et carrousel
Direct Connector
Plugin direct
Extensions de navigateur
Compatible avec
Sur mesure
Limites sur mesure, marque blanche et support prioritaire
Sur mesure
Comptes sociaux illimités
Posts programmés illimités
Membres d'équipe illimités
Espaces de travail illimités
Crédits IA illimités
Légendes IA
Studio d'images IA
API/MCP/CLI
Posts image, vidéo et carrousel
Direct Connector
Plugin direct
Extensions de navigateur
Compatible avec
Essai 7 jours inclus sur tous les forfaits
Vous voulez voir la comparaison complète des fonctionnalités ? Voir la page des tarifs
Ce que vous pouvez réellement définir sur un upload YouTube
Uploads longs avec métadonnées attachées
`postType: "VIDEO"` publie un upload standard. `videoTitle` définit le titre, avec un plafond de 100 caractères, `tags` accepte jusqu'à 20 chaînes, `categoryId` prend l'id numérique de catégorie YouTube, et le `text` du post accompagne la vidéo comme corps de description. Rien d'autre que cet objet n'est paramétrable : cette API n'expose aucun champ miniature, chapitre, écran de fin, sous-titres ou première.
Les Shorts sur le même endpoint
Passez `postType` à `"SHORTS"` pour publier des YouTube Shorts via l'API - même endpoint, même youtubeConfigs, même pipeline upload-urls. La contrainte décisive vient du média, pas du drapeau : un Short exige un ratio 9:16 et une durée de 60 secondes ou moins, alors validez dimensions et durée avant l'appel plutôt qu'après.
Confidentialité, notifications et désignation du public
`privacyStatus` accepte PUBLIC, UNLISTED ou PRIVATE. `notifySubscribers` décide si les abonnés de la chaîne sont notifiés, `allowEmbedding` fixe l'autorisation d'intégration, `madeForKids` porte la désignation du public, et `license` définit la licence de la vidéo. Tous ces réglages sont par post : un arriéré d'archives peut donc partir en privé et sans notification pendant qu'une vidéo de lancement passe en public et notifie.
Ajouter l'upload à une playlist existante
Renseignez `playlistId` dans youtubeConfigs et l'upload terminé est classé dans cette playlist. Elle doit déjà exister - l'API peut ajouter à une playlist, mais ne peut ni en créer, ni en renommer, ni en réordonner, ni en lister - alors copiez l'id depuis YouTube Studio (la valeur `list=` dans l'URL de la playlist) et stockez-le dans votre propre configuration. Si l'id est erroné, cela apparaît sur l'entrée YouTube renvoyée par `/results`.
Branchez votre premier upload YouTube
Créez une clé dans Settings > API Tokens, importez GET /openapi.json dans votre client HTTP, Make ou n8n, et le premier upload n'est plus qu'à un POST. Testez avec privacyStatus PRIVATE avant de passer en public.