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 :
- Créez une URL d'autorisation OAuth pour la plateforme à connecter.
- Ouvrez l'
auth_urlretournée dans un navigateur et terminez l'autorisation. - Appelez l'endpoint des comptes pour confirmer le compte connecté et copier son
id. - 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éthode | Chemin | Description |
|---|---|---|
POST | /api/v2/social-media/oauth/{platform} | Crée une URL OAuth à usage unique pour une plateforme sociale |
GET | /api/v2/social-media/accounts | Liste les comptes sociaux connectés |
POST | /api/v2/social-media/publish | Cré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ètre | Type | Obligatoire | Description |
|---|---|---|---|
platform | string | Oui | Plateforme 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
| Champ | Type | Description |
|---|---|---|
auth_url | string | URL de la page OAuth tierce. Ouvrez cette URL dans un navigateur pour autoriser le compte. |
state | string | Identifiant d'état d'autorisation. |
Notes
- Chaque
auth_urlne 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ètre | Type | Obligatoire | Défaut | Description |
|---|---|---|---|---|
active_only | boolean | Non | false | Lorsque 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
| Champ | Type | Description |
|---|---|---|
id | string | ID unique du compte social. Utilisez-le comme clé dans publish_configs lors de l'appel à /publish. N'utilisez pas le nom de plateforme. |
platform | string | Identifiant de plateforme. Voir Valeurs de Plateforme. |
platform_username | string | Nom d'utilisateur, nom de chaîne ou nom du compte sur la plateforme. |
platform_avatar | string | null | URL de l'image d'avatar du compte. |
token_valid | boolean | true signifie que le token d'autorisation est valide et que le compte peut être utilisé pour publier. |
token_expiring_soon | boolean | true 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_iddoit provenir d'une tâche AI Clipping ou Find Moments soumise avecenable_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
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
project_id | string | Oui | ID du projet. |
idx | integer | Oui | Index du clip dans le projet. |
resolution | string | Non | Résolution d'export utilisée par le clip exporté, par exemple 1080p ou 720p. |
publish_configs | object | Oui | Paramètres de publication indexés par l'ID de compte social retourné par l'endpoint des comptes. |
scheduled_at | integer | null | Non | Timestamp 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_atest 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.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
title | string | Obligatoire sous condition | Titre de la vidéo. Obligatoire pour YouTube. |
description | string | Obligatoire sous condition | Description de la vidéo ou texte du post. Obligatoire pour TikTok. |
tags | string[] | Non | Liste de tags. |
visibility | string | Non | Visibilité : public, private ou unlisted. Le support varie selon la plateforme. |
thumbnail_url | string | Non | URL d'image de miniature personnalisée. |
category | string | Non | Catégorie vidéo propre à la plateforme. |
allow_comment | boolean | Non | Indique si les commentaires sont autorisés. |
allow_duet | boolean | Non | Indique si les duos sont autorisés. TikTok uniquement. |
allow_stitch | boolean | Non | Indique si les stitches sont autorisés. TikTok uniquement. |
disclose_content | boolean | Non | Indique si le contenu promotionnel ou publicitaire doit être déclaré. TikTok uniquement. |
Important : Les clés dans
publish_configsdoivent être des IDs de compte retournés par/api/v2/social-media/accounts, commesmacct06ixxxxxxx. N'utilisez pasyoutube,tiktokni 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
| Champ | Type | Description |
|---|---|---|
task_id | string | ID unique de la tâche de publication. |
status | string | Statut de la tâche de publication. Voir Valeurs de Statut de Publication. |
created_at | integer | Timestamp de création de la tâche en millisecondes. |
schedule_id | string | null | ID de planification. Renvoyé lorsque scheduled_at est fourni. |
scheduled_at | integer | null | Timestamp 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
| Valeur | Plateforme | Site |
|---|---|---|
youtube | YouTube | https://youtube.com |
tiktok | TikTok | https://tiktok.com |
twitter | Twitter / X | https://twitter.com |
instagram | https://instagram.com | |
facebook | https://facebook.com | |
linkedin | https://linkedin.com |
Valeurs de Statut de Publication
| Valeur | Description |
|---|---|
PENDING | La tâche a été créée et attend d'être planifiée. |
SCHEDULED | La tâche a été planifiée et attend l'heure prévue. |
PROCESSING | La publication est en cours, y compris l'upload vidéo et le traitement côté plateforme. |
DONE | La publication a réussi. |
PARTIAL_DONE | Certains comptes ont réussi et d'autres ont échoué. Possible uniquement avec plusieurs comptes. |
ERROR | La publication a échoué. |
CANCELLED | La 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
- Les clés de
publish_configssont des IDs de compte, pas des noms de plateforme. - Pour planifier une publication, envoyez
scheduled_atcomme timestamp futur en millisecondes. - 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.
- La publication sociale exige une vidéo de clip exportée. Utilisez le
project_idd'une tâche AI Clipping ou Find Moments créée avecenable_export = true. - Si la publication retourne une erreur de token de compte, reconnectez ce compte social puis réessayez.