Ajoute un filigrane à une vidéo ou à des images — l'API pour incruster logos et textes.
Incruste une image de logo ou un texte sur n'importe quelle vidéo ou image en un seul POST. Définis position, opacity et scale directement dans la requête ; un fichier hébergé par Fotovid te revient, prêt à être servi.
curl -X POST https://api.fotovid.co/v1/video/watermark \
-H "Authorization: Bearer p6_YOUR_KEY_ID:YOUR_SECRET" \
-H "Content-Type: application/json" \
-d '{
"source_url": "https://cdn.yoursite.com/clip.mp4",
"params": {
"type": "image",
"watermark_image_url": "https://cdn.yoursite.com/logo.png",
"position": "bottom-right",
"opacity": 0.7,
"scale": 0.2
}
}'Pourquoi le filigranage sur serverless est un casse-tête
Le filigranage a l'air trivial jusqu'à ce que tu essaies de le faire tourner dans une fonction serverless. Le filtre overlay de ffmpeg a besoin du binaire complet plus ton logo posé sur un disque accessible en écriture, puis il décode et ré-encode tout le fichier — ce qui dépasse régulièrement les limites d'exécution et les plafonds mémoire de Lambda et Vercel pour tout ce qui dépasse un court extrait. Tu finis par gérer des bundles de layers, du stockage temporaire et des cold starts juste pour poser un logo dans un coin.
- Le binaire ffmpeg et ses bibliothèques font gonfler ton déploiement bien au-delà des limites de taille habituelles du serverless
- Ré-encoder une vidéo complète dépasse les timeouts et la mémoire de la fonction
- Incruster une image implique de récupérer, stocker temporairement et nettoyer des fichiers sur un disque éphémère
- Régler position, opacity et scale au pixel près sur toutes les résolutions est un travail de filter-graph fastidieux
Paramètres de la requête
POST /v1/video/watermark & /v1/image/watermark
| Field | Type | Default | Description |
|---|---|---|---|
| source_url* | string (URL) | — | URL HTTPS de la vidéo ou de l'image source |
| params.type | "image" | "text" | "combo" | "text" | Type de filigrane |
| params.watermark_image_url | string (URL) | — | URL de l'image du logo (obligatoire pour image/combo) |
| params.text | string | — | Texte à incruster (obligatoire pour text/combo) |
| params.position | string | "bottom-right" | top-left · top-right · bottom-left · bottom-right · center |
| params.opacity | number | 1 | 0–1 |
| params.scale | number | 0.15 | Largeur du filigrane par rapport à la source (0–1) |
Ton premier appel en trois étapes
- 1Obtiens une clé API gratuite
Inscris-toi et crée une clé. Tu authentifies chaque requête avec un header Authorization: Bearer p6_<key_id>:<secret>. Aucune carte requise pour démarrer — l'usage est facturé en credits ($1 = 100 credits, et un filigrane coûte 1 credit).
- 2POST ta source et les params du filigrane
Appelle POST /v1/video/watermark ou POST /v1/image/watermark avec l'enveloppe standard : un source_url pointant vers ton fichier d'entrée (une URL https), plus un objet params. Mets type sur image, text ou combo, puis passe watermark_image_url et/ou text, avec position (top-left, top-right, bottom-left, bottom-right ou center), opacity (0–1), scale (0–1, par défaut 0.15), et padding. Fotovid télécharge le fichier d'entrée, incruste le filigrane, et répond de façon synchrone.
- 3Stocke l'URL de résultat renvoyée
La réponse est un JSON plat avec un id, un type, et une url hébergée par Fotovid pour le fichier filigrané (les réponses vidéo incluent aussi duration). Télécharge-le et conserve ta propre copie — traite l'URL hébergée comme un relais, pas comme un stockage permanent, car elle expire.
Questions fréquentes
Déploie-le avec un seul appel API
Récupère une clé gratuite et fais ton premier appel en moins de cinq minutes.
