https://downf.ioConstruiți descărcări cu downf.io
DownF menține execuția API dezactivată până când un operator analizează cazul de utilizare pentru compatibilitate. Exemplele descriu contractul planificat, în timp ce acreditările reale și cotele sunt furnizate doar prin activarea de către suport.
Start rapid
DownF organizează gazda API în jurul acreditărilor activate prin suport. Vederea sa de compatibilitate compară un endpoint de tenant atribuit. O cale de apel doar de server rămâne verificarea finală.
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"}'Siguranța acreditărilor începe cu stocarea secretelor pe partea de server pe DownF. Această vizualizare de compatibilitate nu prezintă apoi nicio încorporare a pachetului client. Ultimul fapt este că nu există jurnale sau depozite publice.
Rezolvarea unui link
DownF organizează operațiunea Resolve în jurul detectării sursei. Vizualizarea sa de compatibilitate compară formatele dintr-un singur URL trimis. Nicio ieșire inventată nu rămâne verificarea finală.
/v1/resolveScop: rezolva| Câmp | Tip | Obligatoriu | Descrierea |
|---|---|---|---|
media_address | URL HTTPS | Da. | Pagina media publică sau autorizată pentru a analiza. |
tenant | șir | Nu. | Domeniul entității găzduite atribuite. De obicei omis. |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}Identificatorul de format începe cu valoarea returnată neschimbată pe DownF. Această vedere de compatibilitate prezintă apoi disponibilitatea pentru fiecare link. Faptul final este că nu există o etichetă de calitate ghicită.
Crearea și urmărirea unei lucrări de descărcare
Crearea jobului începe cu pregătirea asincronă pe DownF. Următoarea vizualizare acoperă o cerere HTTP scurtă. Pagina menține vizibilă execuția limitată a workerului.
/v1/jobsDomeniul de aplicare: locuri de muncă| Câmp | Tip | Obligatoriu | Descrierea |
|---|---|---|---|
media_address | URL HTTPS | Da. | Aceeași sursă normalizată prezentată pentru a rezolva. |
output_ref | șir | Da. | Un ID exact din răspunsul de rezolvare. |
tenant | șir | Nu. | Domeniul entității găzduite atribuite. De obicei 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} cu aceeași cheie.| Starea | Semnificație | Acțiune de client |
|---|---|---|
queued | Admis în coada limitată. | Sondaj din nou cu backoff. |
extracting | Reîmprospătarea metadatelor sursă sau a rutei. | Continuă să votezi. |
processing | Descărcarea, remixarea sau îmbinarea. | Afișați progresul serverului. |
ready | Descărcarea semnată este disponibilă. | Trimiteți URL-ul utilizatorului. |
failed | Eroare structurată terminală. | Citiți error_code. Reîncercaţi numai atunci când este recomandat. |
expired | Ieșirea temporară a fost eliminată. | Creați un loc de muncă nou. |
curl https://downf.io/v1/jobs/TRANSFER_REF \
-H "X-API-Key: $DOWNF_ACCESS_TOKEN"Vizualizarea de compatibilitate a lui DownF analizează așteptarea inițială de o secundă pentru sondarea Job. Arată următoarea revenire la nivel maxim și nu obstrucționează livrarea temporară semnată.
Erori previzibile
DownF prezintă trei puncte practice pentru contractul de eroare. Prima este un singur plic non-2xx. Vizualizarea de compatibilitate acoperă apoi un ID al solicitării de asistență. Ultimul său punct este gestionarea previzibilă de către 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 | Semnificație tipică | Acțiune |
|---|---|---|
| 400 | URL nevalid, corp sau format indisponibil. | Corectați solicitarea. Rezolvați din nou pentru formate. |
| 401 | Cheie lipsă, nevalidă, expirată sau cu domeniu incorect. | Verificați acreditările de pe partea serverului. |
| 403 | Politica chiriașului sau a sursei a respins solicitarea. | Nu ocoliți politica. Contactați asistența. |
| 404 | Loc de muncă necunoscut sau expirat. | Creați un nou loc de muncă, dacă este cazul. |
| 429 | A fost atinsă limita de solicitări sau de lucrări active. | Onoare. retry_after_seconds. |
| 503 | Coada/capacitatea sau sursa din amonte sunt temporar indisponibile. | Reîncercați cu backoff exponențial și jitter. |
Contract de exploatare
DownF stabilește un plafon al cererilor după analizarea clientului vizat, menținând stabile verificările de compatibilitate și furnizorii din amonte.
- Folosiți logică de aplicație idempotentă și nu porniți niciodată joburi duplicate pentru același clic al utilizatorului.
- Stocați temporar metadatele rezolvate în cache, dar tratați întotdeauna URL-urile semnate de descărcare ca expirabile.
- Utilizați backoff exponențial limitat cu jitter pentru
429,503şi erori reîncercabile. - Procesează doar media publică sau media la care ești autorizat să ai acces. DRM și controalele de acces nu sunt ocolite.
- Păstrați ID-urile cererilor și ID-urile joburilor în jurnalele operaționale private. Nu înregistrați inutil URL-urile trimise.
DownF organizează accesul la Schema în jurul activării înainte de explorare. Vederea sa de compatibilitate compară autentificarea atribuită. Formele de cerere documentate rămân verificarea finală.
Activați prin asistență
Descrieți produsul, prognozați apelurile sale lunare și enumerați platformele pe care trebuie să le analizeze. Suportul DownF va confirma scope-urile necesare înainte de a emite o credențială vizibilă o singură dată, a cărei copie stocată este doar un hash.
Solicitați activarea Cheile sunt limitate la nivel de chiriaș, pot fi revocate și sunt emise prin formularul de contact. Scripturile anonime nu pot executa sarcini de descărcare.