https://savetk.appSaveTK でビルドダウンロード
SaveTK は、クリエイター-ツール統合のための API 計画を表示しますが、認証されていない実行を受け入れません。承認は、キーとその操作制限の両方を供給します。
クイックスタート
SaveTK は API ホストのための実用的な 3 つのポイントを提示します。最初にサポートが有効化された認証情報が来ます。保存ワークフローは、次に割り当てられたテナントエンドポイントをカバーします。その最終ポイントは、サーバーのみの呼び出しパスです。
X-API-Key: pending_activation_…SaveTkCreatorv1# Available only after support activation
export SAVETK_CREATOR_KEY="issued-after-review"
curl -X POST https://savetk.app/v1/resolve \
-H "X-API-Key: $SAVETK_CREATOR_KEY" \
-H "Content-Type: application/json" \
-d '{"creator_link":"https://www.youtube.com/watch?v=VIDEO_ID"}'SaveTKは、Credential safetyをスキャンしやすくします。ページはサーバーサイドの秘密保持から始まり、クライアントバンドルの埋め込みなしに移動し、公開ログやリポジトリがないことを明確に述べます。
リンクを解決する
SaveTKは、Resolve操作のための3つの実用的なポイントを提示します。最初にソース検出が来ます。保存ワークフローは、次に、1つの提出されたURLからのフォーマットをカバーします。その最終的なポイントは、発明された出力がありません。
/v1/resolve範囲:解決| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
creator_link | HTTPS URL | はい | 分析する公開または認可されたメディアページ。 |
tenant | 文字列 | いいえ | 割り当てられたテナント ドメイン 通常は省略されます。 |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}SaveTKは、フォーマット識別子をスキャンしやすくします。 ページは、返された値が変わらない状態で開始され、リンクごとの利用可能性に移動し、推測された品質ラベルがないことを明確に述べます。
ダウンロードジョブを作成して追跡する
ジョブ作成は SaveTK 上の非同期準備から始まります。この保存ワークフローは、その後、短い HTTP 要求を提示します。最終事実は、有界ワーカー実行です。
/v1/jobs範囲:仕事| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
creator_link | HTTPS URL | はい | 解決するために提出された同じ正規化されたソース。 |
save_option | 文字列 | はい | 解決応答からの正確な ID。 |
tenant | 文字列 | いいえ | 割り当てられたテナント ドメイン 通常は省略されます。 |
curl -X POST https://savetk.app/v1/jobs \
-H "X-API-Key: $SAVETK_CREATOR_KEY" \
-H "Content-Type: application/json" \
-d '{"creator_link":"https://www.youtube.com/watch?v=VIDEO_ID","save_option":"18"}'save_task.GET /v1/jobs/{save_task} 同じ鍵で| ステータス | 意味 | クライアントアクション |
|---|---|---|
queued | 制限付きキューに受け入れられました。 | バックオフで再度ポールします。 |
extracting | ソースメタデータまたはルートを更新しています。 | 投票を続けてください。 |
processing | ダウンロード、リマスタリングまたはマージ。 | サーバー処理の進行状況を表示します。 |
ready | 署名付きダウンロードが利用可能です。 | URL をユーザーに送信します。 |
failed | ターミナル構造化エラー。 | 読み込み error_code. 勧められた場合のみ再試行してください。 |
expired | 一時的な出力は削除された。 | 新しいジョブを作成します。 |
curl https://savetk.app/v1/jobs/SAVE_TASK \
-H "X-API-Key: $SAVETK_CREATOR_KEY"SaveTK は、最初に 1 秒の初期待ちを識別することでジョブポリングを処理します。それはキャップドバックオフで続き、一時的に署名されたデリバリを視点に保ちます。
予測可能な誤り
エラー契約は SaveTK 上の 1 つの非 2xx 封筒から開始します。次のビューはサポートリクエスト ID をカバーします。ページは予測可能なクライアントの処理を可視化しておきます。
{
"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": "…"
}| 超高速トランザクション処理 | 典型的な意味 | アクション |
|---|---|---|
| 400 | 無効な URL、本体または利用できないフォーマット。 | リクエストを修正します。フォーマットについて再度解決します。 |
| 401 | 欠落、無効、有効期限切れ、またはスコープの間違ったキー。 | サーバ側の認証情報を確認します。 |
| 403 | テナントまたはソースポリシーが要求を拒否しました。 | ポリシーをバイパスしないでください サポートに連絡してください。 |
| 404 | 未知または期限切れのジョブ。 | 適切な場合は新しいジョブを作成します。 |
| 429 | リクエストまたはアクティブジョブの制限に達しました。 | 栄誉 retry_after_seconds. |
| 503 | キュー/容量または上流が一時的に利用できません。 | 指数関数的なバックオフとジッターで再試行します。 |
運用契約
SaveTK は、予想されるトラフィックとスコープ内の投稿プラットフォームを検討した後、クリエイター-ワークフローの許容量を設定します。
- idempotent アプリケーションロジックを使用し、同じユーザークリックに対して重複ジョブを開始しないでください。
- キャッシュはメタデータを簡単に解決しますが、署名されたダウンロード URL は常に有効期限切れとみなします。
- ジッター付き有界指数バックオフを使用する
429,503再試行可能なエラーを 見つけることができます - パブリックメディアまたはアクセス権限があるメディアのみを処理します。DRMやアクセス制御はバイパスされません。
- リクエスト ID とジョブ ID をプライベートの操作ログに保持します。送信された URL を不必要にログに記録しないでください。
SaveTKは、Schemaアクセスのための3つの実践的なポイントを提示します。まず、探索する前にアクティベーションが来ます。保存するワークフローは、次に割り当てられた認証をカバーします。その最後のポイントは、ドキュメントされたリクエスト形状です。
サポートを通じてアクティベート
SaveTK クライアントが何を行うか、どれだけの呼び出しを期待しているか、どの投稿サービスが必須かを述べます。サポートレビューは、そのスコープを選択し、その後、一度だけ表示される回復不能な認証情報を返します。
アクティベーションを要求する キーはテナントスコープであり、撤回可能であり、コンタクトフォームを通じて発行されます。 匿名スクリプトはダウンロードアーの作業を実行できません。