API de Publication sur les Réseaux Sociaux

June 14, 2026

API de Publication sur les Réseaux Sociaux

Utilisez l'API de Publication sur les Réseaux Sociaux pour connecter des comptes sociaux et publier des clips WayinVideo directement sur ces comptes.

Cette API est conçue pour les clips exportés générés par AI Clipping et Find Moments. Créez d'abord les clips avec l'une de ces APIs, puis assurez-vous que le projet d'origine a été soumis avec enable_export = true. Utilisez ensuite le project_id obtenu et l'idx du clip lors de la création d'une tâche de publication.

Flux type :

  1. Créez une URL d'autorisation OAuth pour la plateforme à connecter.
  2. Ouvrez l'auth_url retournée dans un navigateur et terminez l'autorisation.
  3. Appelez l'endpoint des comptes pour confirmer le compte connecté et copier son id.
  4. Créez une tâche de publication avec le clip cible et les paramètres propres au compte.

Tous les endpoints exigent :

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
x-wayinvideo-api-version: v2

Facturation : Pendant la période promotionnelle limitée, connecter avec succès un compte social consomme actuellement 10 API Units. Si l'autorisation n'est pas terminée avec succès, aucune API Unit n'est déduite.


Endpoints

MéthodeCheminDescription
POST/api/v2/social-media/oauth/{platform}Crée une URL OAuth à usage unique pour une plateforme sociale
GET/api/v2/social-media/accountsListe les comptes sociaux connectés
POST/api/v2/social-media/publishCrée une tâche pour publier un clip sur un ou plusieurs comptes connectés

Connecter un Compte Social

Créez une URL d'autorisation OAuth pour la plateforme à connecter.

POST https://wayinvideo-api.wayin.ai/api/v2/social-media/oauth/{platform}

Paramètres de Chemin

ParamètreTypeObligatoireDescription
platformstringOuiPlateforme sociale. Valeurs autorisées : youtube, tiktok, twitter, instagram, facebook, linkedin.

Corps de Requête

Aucun corps de requête n'est requis.

Exemple de Requête

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/social-media/oauth/youtube \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2" \
  --data ''

Exemple de Réponse

{
  "data": {
    "auth_url": "https://example.com/oauth2/auth?xxxxxx",
    "state": "a49bc736-xxxxx"
  }
}

Champs de Réponse

ChampTypeDescription
auth_urlstringURL de la page OAuth tierce. Ouvrez cette URL dans un navigateur pour autoriser le compte.
statestringIdentifiant d'état d'autorisation.

Notes

  • Chaque auth_url ne peut être utilisée qu'une seule fois. Si l'autorisation échoue ou si l'URL expire, appelez à nouveau cet endpoint pour créer une nouvelle URL.
  • Une fois l'autorisation réussie, appelez Lister les Comptes Sociaux pour confirmer que le compte est disponible pour la publication.
  • Vous pouvez connecter plusieurs comptes sur la même plateforme. Par exemple, appelez plusieurs fois l'endpoint OAuth YouTube pour connecter plusieurs chaînes YouTube.
  • Si le compte n'est pas connecté avec succès, aucune API Unit n'est déduite.

Lister les Comptes Sociaux

Récupérez tous les comptes sociaux connectés au propriétaire de l'API key actuelle. Utilisez cet endpoint avant la publication pour obtenir les valeurs id utilisées par publish_configs.

GET https://wayinvideo-api.wayin.ai/api/v2/social-media/accounts?active_only={active_only}

Paramètres de Requête

ParamètreTypeObligatoireDéfautDescription
active_onlybooleanNonfalseLorsque true, seuls les comptes avec des tokens valides sont renvoyés.

Exemple de Requête

curl -X GET "https://wayinvideo-api.wayin.ai/api/v2/social-media/accounts?active_only=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2"

Réponse Lorsqu'Aucun Compte n'Est Connecté

{
  "data": []
}

Si data est vide, appelez d'abord Connecter un Compte Social.

Réponse Lorsque des Comptes Sont Connectés

{
  "data": [
    {
      "id": "smaccxxx",
      "platform": "youtube",
      "platform_username": "MyChannel",
      "platform_avatar": "https://example.com/avatar.jpg",
      "token_valid": true,
      "token_expiring_soon": false
    }
  ]
}

Champs de Réponse

ChampTypeDescription
idstringID unique du compte social. Utilisez-le comme clé dans publish_configs lors de l'appel à /publish. N'utilisez pas le nom de plateforme.
platformstringIdentifiant de plateforme. Voir Valeurs de Plateforme.
platform_usernamestringNom d'utilisateur, nom de chaîne ou nom du compte sur la plateforme.
platform_avatarstring | nullURL de l'image d'avatar du compte.
token_validbooleantrue signifie que le token d'autorisation est valide et que le compte peut être utilisé pour publier.
token_expiring_soonbooleantrue signifie que le token d'autorisation expirera bientôt. Demandez à l'utilisateur de reconnecter le compte.

Utilisation Recommandée

  • Avant de créer une tâche de publication, confirmez que le compte cible a token_valid: true.

Créer une Tâche de Publication

Publiez un clip sur un ou plusieurs comptes sociaux connectés. Identifiez le clip en envoyant l'ID du projet et l'index du clip.

Obligatoire : Le project_id doit provenir d'une tâche AI Clipping ou Find Moments soumise avec enable_export = true. La publication sociale exige une vidéo de clip exportée ; les projets créés sans export activé ne peuvent pas être publiés avec cet endpoint.

POST https://wayinvideo-api.wayin.ai/api/v2/social-media/publish

Champs de Requête

ChampTypeObligatoireDescription
project_idstringOuiID du projet.
idxintegerOuiIndex du clip dans le projet.
resolutionstringNonRésolution d'export utilisée par le clip exporté, par exemple 1080p ou 720p.
publish_configsobjectOuiParamètres de publication indexés par l'ID de compte social retourné par l'endpoint des comptes.
scheduled_atinteger | nullNonTimestamp en millisecondes pour une publication planifiée. Utilisez null ou omettez ce champ pour publier immédiatement.

Comment générer une valeur scheduled_at

scheduled_at est un timestamp Unix en millisecondes. Il doit être au moins 5 minutes dans le futur et au plus 30 jours dans le futur.

Pour planifier une publication dans 10 minutes en JavaScript :

const scheduledAt = Date.now() + 10 * 60 * 1000;

Pour planifier à une heure précise :

const scheduledAt = new Date('2026-06-15T10:00:00Z').getTime();

Configuration de Publication par Plateforme

Chaque valeur de publish_configs est un objet de configuration de publication propre à la plateforme.

ChampTypeObligatoireDescription
titlestringObligatoire sous conditionTitre de la vidéo. Obligatoire pour YouTube.
descriptionstringObligatoire sous conditionDescription de la vidéo ou texte du post. Obligatoire pour TikTok.
tagsstring[]NonListe de tags.
visibilitystringNonVisibilité : public, private ou unlisted. Le support varie selon la plateforme.
thumbnail_urlstringNonURL d'image de miniature personnalisée.
categorystringNonCatégorie vidéo propre à la plateforme.
allow_commentbooleanNonIndique si les commentaires sont autorisés.
allow_duetbooleanNonIndique si les duos sont autorisés. TikTok uniquement.
allow_stitchbooleanNonIndique si les stitches sont autorisés. TikTok uniquement.
disclose_contentbooleanNonIndique si le contenu promotionnel ou publicitaire doit être déclaré. TikTok uniquement.

Important : Les clés dans publish_configs doivent être des IDs de compte retournés par /api/v2/social-media/accounts, comme smacct06ixxxxxxx. N'utilisez pas youtube, tiktok ni d'autres noms de plateforme comme clés.

Exemple de Requête

curl -sS -X POST https://wayinvideo-api.wayin.ai/api/v2/social-media/publish \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{
    "project_id": "prj06ixxxxxxx",
    "idx": 0,
    "resolution": "1080p",
    "publish_configs": {
      "smacct06ixxxxxxx": {
        "title": "API Test Video",
        "description": "Posted by curl test",
        "tags": ["api", "test"],
        "visibility": "public"
      }
    },
    "scheduled_at": null
  }'

Exemple de Réponse

{
  "data": {
    "task_id": "pubtask06ixxxxxxx",
    "status": "PENDING",
    "created_at": 1781251687210
  }
}

Champs de Réponse

ChampTypeDescription
task_idstringID unique de la tâche de publication.
statusstringStatut de la tâche de publication. Voir Valeurs de Statut de Publication.
created_atintegerTimestamp de création de la tâche en millisecondes.
schedule_idstring | nullID de planification. Renvoyé lorsque scheduled_at est fourni.
scheduled_atinteger | nullTimestamp de publication planifiée en millisecondes.

Vous pouvez consulter les planifications et les résultats en temps réel sur le calendrier WayinVideo.


Valeurs de Plateforme

ValeurPlateformeSite
youtubeYouTubehttps://youtube.com
tiktokTikTokhttps://tiktok.com
twitterTwitter / Xhttps://twitter.com
instagramInstagramhttps://instagram.com
facebookFacebookhttps://facebook.com
linkedinLinkedInhttps://linkedin.com

Valeurs de Statut de Publication

ValeurDescription
PENDINGLa tâche a été créée et attend d'être planifiée.
SCHEDULEDLa tâche a été planifiée et attend l'heure prévue.
PROCESSINGLa publication est en cours, y compris l'upload vidéo et le traitement côté plateforme.
DONELa publication a réussi.
PARTIAL_DONECertains comptes ont réussi et d'autres ont échoué. Possible uniquement avec plusieurs comptes.
ERRORLa publication a échoué.
CANCELLEDLa publication a été annulée.

Exemple de Flux Complet

Étape 1 : Créer une URL OAuth YouTube

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/social-media/oauth/youtube \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2" \
  --data ''

Ouvrez l'auth_url retournée dans un navigateur et terminez l'autorisation.

Étape 2 : Lister les Comptes Disponibles

curl -X GET "https://wayinvideo-api.wayin.ai/api/v2/social-media/accounts?active_only=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2"

Copiez l'id du compte sur lequel vous voulez publier.

Étape 3 : Publier un Clip

curl -sS -X POST https://wayinvideo-api.wayin.ai/api/v2/social-media/publish \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{
    "project_id": "prj06ixxxxxxx",
    "idx": 0,
    "resolution": "1080p",
    "publish_configs": {
      "smacct06ixxxxxxx": {
        "title": "API Test Video",
        "description": "Posted by curl test",
        "tags": ["api", "test"],
        "visibility": "public"
      }
    },
    "scheduled_at": null
  }'

Notes

  1. Les clés de publish_configs sont des IDs de compte, pas des noms de plateforme.
  2. Pour planifier une publication, envoyez scheduled_at comme timestamp futur en millisecondes.
  3. Le même clip peut être publié plusieurs fois sur des comptes différents. Republier le même clip sur le même compte crée une tâche indépendante.
  4. La publication sociale exige une vidéo de clip exportée. Utilisez le project_id d'une tâche AI Clipping ou Find Moments créée avec enable_export = true.
  5. Si la publication retourne une erreur de token de compte, reconnectez ce compte social puis réessayez.