https://ytsave.appCostruire i download con YTSave
Risolvi un URL multimediale pubblico, seleziona un formato esatto, crea un lavoro asincrono e consegna il risultato firmato al tuo utente. La stessa pipeline di produzione vincolata alimenta il sito web YTSave.
Quick start
YTSave Segue con un endpoint tenant assegnato e mantiene in vista un percorso di chiamata solo per il server.
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"}'Per spiegare la sicurezza delle credenziali, YTSave separa l'archiviazione segreta lato server dall'incorporamento di nessun bundle client.
Risolvere un collegamento
YTSave gestisce l'operazione Resolve identificando prima il rilevamento della fonte, quindi segue con i formati da un URL inviato e non mantiene in vista alcun output inventato.
/v1/resolveAmbito di applicazione: risolvere| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
url | URL HTTPS | Sì | Pagina media pubblica o autorizzata da analizzare. |
tenant | stringa | No. | Dominio tenant assegnato. In genere omesso. |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}Per spiegare l'identificatore di formato, YTSave separa il valore restituito invariato dalla disponibilità per collegamento. Un record di evidenza non dà alcuna etichetta di qualità indovinata il proprio posto.
Creare e seguire un processo di download
Per la creazione di un Job, YTSave inizia con la preparazione asincrona, la associa a una breve richiesta HTTP e termina con l'esecuzione del worker limitato.
/v1/jobsAmbito: posti di lavoro| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
url | URL HTTPS | Sì | La stessa fonte normalizzata è stata inviata per la risoluzione. |
format_id | stringa | Sì | Un ID esatto dalla risposta di risoluzione. |
tenant | stringa | No. | Dominio tenant assegnato. In genere omesso. |
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} con la stessa chiave.| Stato | Significato | Azione del cliente |
|---|---|---|
queued | Ammesso alla coda limitata. | Sondaggio di nuovo con backoff. |
extracting | Aggiornamento dei metadati di origine o della rotta. | Continua a sondare. |
processing | Scaricare, remux o unire. | Visualizza il progresso del server. |
ready | Il download firmato è disponibile. | Invia l'URL all'utente. |
failed | Errore strutturato terminale. | Leggi error_codeRiprova solo quando ti viene consigliato. |
expired | L'uscita temporanea è stata rimossa. | Creare un nuovo lavoro. |
curl https://ytsave.app/v1/jobs/JOB_ID \
-H "X-API-Key: $YTSAVE_API_KEY"YTSave La pagina inizia con un'attesa iniziale di un secondo, passa a un backoff limitato e indica chiaramente la consegna temporanea firmata.
Errori prevedibili
Per il contratto Error, YTSave controlla una busta non 2xx prima di un ID di richiesta di supporto.
{
"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 | Significato tipico | Azione |
|---|---|---|
| 400 | URL, corpo o formato non valido. | Correggi la richiesta. Risolvi di nuovo per i formati. |
| 401 | Chiave mancante, non valida, scaduta o con ambito errato. | Verificare le credenziali lato server. |
| 403 | Criterio di tenant o di origine ha rifiutato la richiesta. | Non aggirare la politica. Contattare l'assistenza. |
| 404 | Offerta di lavoro sconosciuta o scaduta. | Creare un nuovo lavoro, se del caso. |
| 429 | Richiesta o limite di lavori attivi raggiunto. | Onore retry_after_seconds. |
| 503 | Coda/capacità o upstream temporaneamente non disponibile. | Riprova con backoff esponenziale e jitter. |
Contratto operativo
YTSave emette una quota operativa con ogni approvazione per proteggere il consumatore API e i servizi multimediali a monte.
- Usa una logica applicativa idempotente e non avviare mai lavori duplicati per lo stesso clic dell'utente.
- Memorizza brevemente i metadati di risoluzione, ma considera sempre le URL di download firmate come scadute.
- Usa il backoff esponenziale limitato con jitter per
429,503e errori riprovabili. - Elabora solo media pubblici o media a cui sei autorizzato ad accedere. DRM e controlli di accesso non vengono bypassati.
- Conserva gli ID delle richieste e gli ID dei lavori nei registri operativi privati. Non registrare inutilmente gli URL inviati.
YTSave gestisce l'accesso allo schema identificando prima l'attivazione prima dell'esplorazione, quindi con l'autenticazione assegnata e mantiene in vista le forme di richiesta documentate. Riferimento OpenAPI
Richiedi la tua API key
YTSave verifica se la risoluzione, l'invio del processo o entrambi sono giustificati prima di emettere una chiave visibile una sola volta.
Richiedi l'accesso API Le chiavi sono limitate all'inquilino, revocabili e rilasciate tramite il modulo di contatto. Gli script anonimi non possono eseguire lavori di download.