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.

Une charge utile POST /social-posts avec un objet youtubeConfigs contenant videoTitle, tags, privacyStatus et playlistId

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é.

Gérer

Publiez sur toutes vos plateformes en un clic

Partagez sur Instagram, TikTok, YouTube, X et plus en un clic. Chaque post s'adapte automatiquement.

Planifier

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.

Mesurer

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.

Intégrer

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érer

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.

Créer

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.

Organiser

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.

jeremy8939jeremy8939

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.

destacadestaca

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.

basantkumar405basantkumar405

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.

mayank09mayank09

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.

automatexyzautomatexyz

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.

DacstyleDacstyle

Du terminal vide à l'upload publié

Étape 1

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.

Étape 2

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.

Étape 3

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

-17%

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

Pro

Pour les professionnels et équipes en croissance

$39

/mois

  • 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.