https://ytsave.appConstruiți descărcări cu YTSave
Rezolvă un URL media public, selectează un format exact, creează o sarcină asincronă și predă utilizatorului tău rezultatul semnat. Același flux de producție delimitat alimentează site-ul YTSave.
Start rapid
YTSave se ocupă de gazda API identificând mai întâi acreditările activate de suport. Urmează cu un punct final de chiriaș atribuit și păstrează o cale de apel numai pentru server în vedere.
X-API-Key: ys_live_…YTSaveClientv1# Available only after support activation
export YTSAVE_API_KEY="issued-after-review"
curl -X POST https://ytsave.app/v1/resolve \
-H "X-API-Key: $YTSAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=VIDEO_ID"}'Pentru a explica securitatea acreditărilor, YTSave separă stocarea secretelor pe server de lipsa încorporării în pachetul client. Un registru de dovezi nu acordă jurnalelor publice sau depozitelor proprii un loc propriu.
Rezolvarea unui link
YTSave se ocupă de operația Rezolvare prin identificarea mai întâi a sursei de detectare. Urmează cu formate de la o adresă URL trimisă și nu păstrează ieșiri inventate în vedere.
/v1/resolveScop: rezolva| Câmp | Tip | Obligatoriu | Descrierea |
|---|---|---|---|
url | 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
}Pentru a explica Format identificator, YTSave separă valoarea returnată neschimbată de disponibilitatea per-link. O înregistrare de dovezi nu oferă nicio etichetă de calitate ghicită propriul său loc.
Crearea și urmărirea unei lucrări de descărcare
Pentru crearea de job-uri, YTSave începe cu pregătirea asincronă, o asociază cu o solicitare HTTP scurtă și se termină cu execuția de lucru limitată.
/v1/jobsDomeniul de aplicare: locuri de muncă| Câmp | Tip | Obligatoriu | Descrierea |
|---|---|---|---|
url | URL HTTPS | Da. | Aceeași sursă normalizată prezentată pentru a rezolva. |
format_id | ș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://ytsave.app/v1/jobs \
-H "X-API-Key: $YTSAVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=VIDEO_ID","format_id":"18"}'job_id.GET /v1/jobs/{job_id} 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://ytsave.app/v1/jobs/JOB_ID \
-H "X-API-Key: $YTSAVE_API_KEY"YTSave Pagina începe cu o așteptare inițială de o secundă, se mută la backoff-ul plafonat și precizează în mod clar livrarea temporară semnată.
Erori previzibile
Pentru contractul de eroare, YTSave verifică un plic non-2xx înainte de un ID de solicitare de asistență. Această înregistrare de dovezi face, de asemenea, manipularea previzibilă a clienților clară.
{
"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
YTSave emite o cotă operațională la fiecare aprobare pentru a proteja consumatorul API și serviciile media 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.
YTSave se ocupă de accesul la Schema prin identificarea mai întâi a activării înainte de explorare. Urmează cu autentificarea atribuită și păstrează formele de solicitare documentate în vedere. Referință pentru OpenAPI
Solicitați cheia dvs. API
Documentează consumatorul API, estimarea sa lunară de solicitări și cerințele platformei acceptate. YTSave analizează dacă rezolvarea, trimiterea de joburi sau ambele sunt justificate înainte de a emite o cheie vizibilă o singură dată.
Solicitați acces API 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.