https://ytsave.appDownloads mit YTSave erstellen
Sie können eine öffentliche Medien-URL auflösen, ein exaktes Format auswählen, einen asynchronen Auftrag erstellen und das signierte Ergebnis an Ihren Benutzer übergeben. Die gleiche eingeschränkte Produktionspipeline unterstützt die YTSave-Website.
Schnellstart
YTSave verarbeitet den API-Host, indem zunächst die durch den Support aktivierten Anmeldeinformationen ermittelt werden. Es folgt ein zugewiesener Mandantenendpunkt und ein nur serverseitiger Aufrufpfad wird beibehalten.
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"}'Um die Sicherheit von Anmeldeinformationen zu erklären, trennt YTSave die serverseitige geheime Speicherung von der Einbettung von Client-Bundles. Ein Evidence-Datensatz gibt keinen öffentlichen Protokollen oder Repositories einen eigenen Platz.
Auflösen eines Links
YTSave behandelt die Auflösung, indem es zuerst die Quellenerkennung identifiziert, dann mit Formaten von einer übergebenen URL fortfährt und keine erfundenen Ausgaben im Blick behält.
/v1/resolveGeltungsbereich: resolve| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
url | HTTPS-URL | Ja | Öffentliche oder autorisierte Medienseite zu analysieren. |
tenant | Zeichenfolge | Nein | Zugewiesene Mandantendomäne. Normalerweise weggelassen. |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}Um Format-Identifier zu erklären, trennt YTSave den zurückgegebenen Wert unverändert von der Verfügbarkeit pro Link. Ein Evidenz-Datensatz gibt keinem errateten Qualitätslabel seinen eigenen Platz.
Download-Auftrag erstellen und verfolgen
Für die Auftragserstellung beginnt YTSave mit der asynchronen Vorbereitung, die mit einer kurzen HTTP-Anforderung gepaart wird und mit der Ausführung des begrenzten Workers endet.
/v1/jobsGeltungsbereich: Jobs| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
url | HTTPS-URL | Ja | Die gleiche normalisierte Quelle, die zur Auflösung eingereicht wurde. |
format_id | Zeichenfolge | Ja | Eine genaue ID aus der Auflösungsantwort. |
tenant | Zeichenfolge | Nein | Zugewiesene Mandantendomäne. Normalerweise weggelassen. |
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} mit dem gleichen Schlüssel.| Status | Bedeutung | Client-Action |
|---|---|---|
queued | In die begrenzte Warteschlange aufgenommen. | Abstimmung nochmal mit Rückzug. |
extracting | Aktualisierung von Quellmetadaten oder Route. | Fahren Sie mit dem Abstimmen fort. |
processing | Herunterladen, Remuxen oder Zusammenführen. | Serverfortschritt anzeigen. |
ready | Signierter Download ist verfügbar. | Senden Sie die URL an den Benutzer. |
failed | Terminal strukturierter Fehler. | Read error_code. Wiederholen Sie den Versuch nur, wenn empfohlen. |
expired | Temporäre Ausgabe wurde entfernt. | Erstellen Sie einen neuen Job. |
curl https://ytsave.app/v1/jobs/JOB_ID \
-H "X-API-Key: $YTSAVE_API_KEY"YTSave Die Seite beginnt mit einer anfänglichen Wartezeit von einer Sekunde, wechselt zu einem begrenzten Backoff und gibt klar an, dass die Zustellung vorübergehend unterzeichnet wurde.
Vorhersehbare Fehler
Für den Fehlervertrag überprüft YTSave einen Nicht-2xx-Umschlag vor einer Supportanfrage-ID. Dieser Nachweisdatensatz macht auch die vorhersehbare Clientbehandlung klar.
{
"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 | Typische Bedeutung | Action |
|---|---|---|
| 400 | Ungültige URL, ungültiger Text oder unzugängliches Format. | Korrigieren Sie die Anfrage. Lösen Sie erneut für Formate auf. |
| 401 | Fehlender, ungültiger, abgelaufener oder falscher Schlüsselbereich. | Überprüfen Sie die serverseitigen Anmeldeinformationen. |
| 403 | Die Anforderung wurde von der Mandanten- oder Quellenrichtlinie abgelehnt. | Umgehen Sie die Richtlinie nicht. Wenden Sie sich an den Support. |
| 404 | Unbekannter oder abgelaufener Job. | Erstellen Sie ggf. einen neuen Auftrag. |
| 429 | Anfrage- oder Aktiv-Job-Limit erreicht. | Honor retry_after_seconds. |
| 503 | Warteschlange/Kapazität oder Upstream vorübergehend nicht verfügbar. | Wiederholen Sie den Versuch mit exponentiellem Rückschlag und Jitter. |
Betriebsvertrag
YTSave gibt bei jeder Genehmigung ein Betriebskontingent aus, um die API-Verbraucher- und Upstream-Mediendienste zu schützen.
- Verwenden Sie idempotente Anwendungslogik und starten Sie niemals doppelte Aufträge für denselben Benutzerklick.
- Speichern Sie Auflösungsmetadaten nur kurz zwischen und behandeln Sie signierte Download-URLs stets als ablaufend.
- Verwenden Sie begrenzte exponentielle Rückkopplung mit Jitter für
429,503und wiederholbare Fehler. - Verarbeiten Sie nur öffentliche Medien oder Medien, auf die Sie zugreifen dürfen, und umgehen Sie keine DRM- und Zugriffskontrollen.
- Bewahren Sie Anforderungs-IDs und Auftrags-IDs in privaten Betriebsprotokollen auf und protokollieren Sie übermittelte URLs nicht unnötig.
YTSave verarbeitet den Schema-Zugriff, indem es zuerst die Aktivierung identifiziert, bevor es die Exploration durchführt, und folgt dann mit zugewiesener Authentifizierung. OpenAPI-Referenz
API-Schlüssel anfordern
Dokumentieren Sie den API-Konsumente, seine monatliche Anforderungsschätzung und die unterstützten Plattformanforderungen.YTSave überprüft, ob die Auflösung, die Auftragseinreichung oder beides gerechtfertigt sind, bevor ein einmal sichtbarer Schlüssel ausgegeben wird.
API-Zugriff anfordern Schlüssel sind mandantenspezifisch, widerrufbar und werden über das Kontaktformular ausgestellt. Anonyme Skripte können keine Downloader-Arbeit ausführen.