Médias
Ingérez vos images et vidéos avant publication. Le type est détecté automatiquement, le fichier est servi depuis media.kreatoai.com — un domaine vérifié, accepté par TikTok pour le téléchargement (PULL_FROM_URL).
Endpoint
/v1/mediaScope requis : media:write
Corps de requête
Exactement un des deux champs — le type (image ou vidéo) est détecté par les premiers octets du fichier, pas par l'extension :
// Par URL publique (http/https, sans redirection) — recommandé pour les vidéos
{ "url": "https://exemple.com/clip.mp4" }
// Ou en base64 (corps de requête ≤ 30 Mo, soit ~22 Mo de fichier utile)
{ "base64": "<données base64>" }Exemple de requête complète (ingestion d'une image par URL) :
curl https://api.kreatoai.com/v1/media \
-H "x-api-key: sk-kre-v1-votre_cle" \
-H "Content-Type: application/json" \
-d '{"url":"https://exemple.com/image.png"}'Images — normalisation automatique
Tout format d'image accepté en entrée (PNG, WebP, HEIC…) : conversion en JPEG qualité 90, redimensionnement si le grand côté dépasse 1080 px (ratio conservé, jamais agrandi), orientation EXIF appliquée. C'est exactement le format exigé par TikTok — vous évitez le rejet asynchrone file_format_check_failed. Taille max : 20 Mo.
Vidéos
| Propriété | Valeur |
|---|---|
| Formats | MP4, MOV (QuickTime), WebM — détectés par magic bytes |
| Taille max | 128 Mo par URL (téléchargement en streaming) · ~22 Mo en base64 |
| Traitement | Aucun transcodage : le fichier est hébergé tel quel |
Le codec n'est pas vérifié : utilisez du H.264/AAC dans un conteneur MP4 pour une compatibilité TikTok garantie. Un codec exotique passera l'ingestion mais peut être rejeté par TikTok au téléchargement (video_pull_failed ou file_format_check_failed dans le statut).
Réponse
// 201 Created — image
{
"type": "image",
"url": "https://media.kreatoai.com/media-1784372380523-2a0lw1nv.jpg",
"key": "media-1784372380523-2a0lw1nv.jpg",
"width": 1080,
"height": 1080,
"bytes": 245812
}
// 201 Created — vidéo
{
"type": "video",
"url": "https://media.kreatoai.com/media-1784372381977-x81ka2mp.mp4",
"key": "media-1784372381977-x81ka2mp.mp4",
"bytes": 2299653,
"mimeType": "video/mp4"
}Utilisez url tel quel dans imageUrls (carrousel) ou videoUrl (vidéo) de la publication. Les URLs restent accessibles largement au-delà de l'heure exigée par TikTok.
Erreurs
| Statut | Code | Cause |
|---|---|---|
| 400 | validation zod | Ni url ni base64, ou les deux à la fois — réponse détaillée du validateur |
| 400 | fetch_failed | URL inaccessible, redirection, schéma non http(s), timeout |
| 400 | not_an_image | Signature d'image reconnue mais contenu indécodable |
| 400 | unsupported_media_type | Ni image ni vidéo MP4/MOV/WebM reconnue |
| 400 | media_too_large | Image > 20 Mo, ou vidéo > 128 Mo |
| 413 | payload_too_large | Corps de requête > 30 Mo |
| 502 | storage_error | Échec du stockage — réessayez |