https://downf.ioCréer des téléchargements avec downf.io
DownF maintient l'exécution de l'API désactivée jusqu'à ce qu'un opérateur examine le cas d'utilisation de compatibilité. Les exemples décrivent le contrat prévu, tandis que les véritables identifiants et quotas n'arrivent qu'après activation par le support.
Démarrage rapide
DownF organise l'hôte API autour des identifiants activés par le support. Sa vue de compatibilité compare un point de terminaison locataire assigné. Un chemin d'appel réservé au serveur reste la vérification finale.
X-API-Key: pending_activation_…DownfBridgev1# Available only after support activation
export DOWNF_ACCESS_TOKEN="issued-after-review"
curl -X POST https://downf.io/v1/resolve \
-H "X-API-Key: $DOWNF_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"media_address":"https://www.youtube.com/watch?v=VIDEO_ID"}'La sécurité des identifiants commence par le stockage secret côté serveur sur DownF. Cette vue de compatibilité ne présente alors aucune intégration de bundle client. Le fait final est l'absence de journaux publics ou de dépôts.
Résoudre un lien
DownF organise l'opération Resolve autour de la détection de la source. Sa vue de compatibilité compare les formats à partir d'une URL soumise.
/v1/resolvePortée: résoudre| SUR LE TERRAIN | Type de | Requis | Description |
|---|---|---|---|
media_address | URL HTTPS | Oui | Page média publique ou autorisée à analyser. |
tenant | string | Non | Domaine du locataire affecté. Généralement omis. |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}L'identifiant de format commence par la valeur retournée inchangée sur DownF. Cette vue de compatibilité présente ensuite la disponibilité par lien. Le fait final est qu'il n'y a pas d'étiquette de qualité supposée.
Créer et suivre une tâche de téléchargement
La création de tâche commence par une préparation asynchrone sur DownF. La vue suivante couvre une courte requête HTTP.
/v1/jobsPortée: emplois| SUR LE TERRAIN | Type de | Requis | Description |
|---|---|---|---|
media_address | URL HTTPS | Oui | La même source normalisée soumise à résoudre. |
output_ref | string | Oui | Un ID exact de la réponse de résolution. |
tenant | string | Non | Domaine du locataire affecté. Généralement omis. |
curl -X POST https://downf.io/v1/jobs \
-H "X-API-Key: $DOWNF_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"media_address":"https://www.youtube.com/watch?v=VIDEO_ID","output_ref":"18"}'transfer_ref.GET /v1/jobs/{transfer_ref} avec la même clé.| État d ' avancement | Signification | Action du client |
|---|---|---|
queued | Admis dans la file d'attente limitée. | Sondage à nouveau avec backoff. |
extracting | Actualisation des métadonnées source ou de l'itinéraire. | Continuez à voter. |
processing | Téléchargement, remixage ou fusion. | Afficher la progression du serveur. |
ready | Téléchargement signé est disponible. | Envoyez l'URL à l'utilisateur. |
failed | Erreur structurée terminale. | Lire error_code. Réessayez seulement quand conseillé. |
expired | La sortie temporaire a été supprimée. | Créer un nouveau job. |
curl https://downf.io/v1/jobs/TRANSFER_REF \
-H "X-API-Key: $DOWNF_ACCESS_TOKEN"Il montre le backoff limité à côté et ne masque pas la livraison temporaire signée.
Les erreurs prévisibles
DownF présente trois points pratiques pour le contrat d'erreur. D'abord vient une enveloppe non-2xx. La vue de compatibilité couvre ensuite un ID de demande de support. Son dernier point est la gestion prévisible du client.
{
"success": false,
"error": {
"code": "RATE_LIMITED",
"category": "rate_limited",
"message": "Too many requests. Please try again shortly.",
"retryable": true,
"details": {"retry_after_seconds": 20}
},
"request_id": "…"
}| HTTP | Signification typique | Action |
|---|---|---|
| 400 | URL, corps ou format non valide. | Corrigez la requête. Résolvez à nouveau pour les formats. |
| 401 | Clé manquante, invalide, expirée ou de mauvaise portée. | Vérifiez les informations d'identification côté serveur. |
| 403 | La politique du locataire ou de la source a rejeté la demande. | Ne contournez pas la politique. Contactez le support. |
| 404 | Offre d'emploi inconnue ou expirée. | Créez une nouvelle tâche si nécessaire. |
| 429 | Limite de demandes ou de tâches actives atteinte. | Honor retry_after_seconds. |
| 503 | File d'attente/capacité ou amont temporairement indisponible. | Réessayez avec un décalage et une gigue exponentiels. |
Contrat d ' exploitation
DownF attribue un plafond de requête après avoir examiné le client prévu, en gardant ses vérifications de compatibilité et ses fournisseurs en amont stables.
- Utilisez une logique d'application idempotente et ne démarrez jamais de tâches en double pour le même clic utilisateur.
- Le cache résout brièvement les métadonnées, mais traite toujours les URL de téléchargement signées comme expirant.
- Utiliser un décalage exponentiel limité avec gigue pour
429,503et erreurs retentables. - Traitez uniquement les médias publics ou les médias auxquels vous êtes autorisé à accéder. Les contrôles DRM et d'accès ne sont pas contournés.
- Conservez les ID de requête et les ID de tâche dans des journaux opérationnels privés.
DownF organise l'accès au Schéma autour de l'activation avant l'exploration. Sa vue de compatibilité compare l'authentification assignée. Les formes de requête documentées restent la vérification finale.
Activer par le biais du support
Décrivez le produit, prévoyez ses appels mensuels et listez les plateformes qu'il doit analyser. Le support DownF confirmera les portées requises avant d'émettre un identifiant visible unique dont la copie stockée est uniquement un hachage.
Demande d'activation Les clés sont limitées à la portée du client, révocables et émises via le formulaire de contact.