https://dwtt.appBuild downloads with DWTT
DWTT publishes this integration outline for planning, not anonymous execution. Support must approve the clip workflow before issuing a scoped key and its traffic allowance.
Quick start
DWTT makes API host easy to scan. The page starts with support-activated credentials, moves to an assigned tenant endpoint, and clearly states a server-only call path.
X-API-Key: pending_activation_…DwttToolkitv1# Available only after support activation
export DWTT_TOOL_TOKEN="issued-after-review"
curl -X POST https://dwtt.app/v1/resolve \
-H "X-API-Key: $DWTT_TOOL_TOKEN" \
-H "Content-Type: application/json" \
-d '{"source_link":"https://www.youtube.com/watch?v=VIDEO_ID"}'DWTT approaches Credential safety through server-side secret storage, then no client bundle embedding. The streamlined workflow keeps no public logs or repositories explicit.
Resolve a link
DWTT makes Resolve operation easy to scan. The page starts with source detection, moves to formats from one submitted URL, and clearly states no invented outputs.
/v1/resolveScope: resolve| Field | Type | Required | Description |
|---|---|---|---|
source_link | HTTPS URL | Yes | Public or authorized media page to analyze. |
tenant | string | No | Assigned tenant domain. Usually omitted. |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}DWTT approaches Format identifier through the returned value unchanged, then per-link availability. The streamlined workflow keeps no guessed quality label explicit.
Create and follow a download job
In DWTT, asynchronous preparation comes first when explaining Job creation. That streamlined workflow follows with a short HTTP request and closes on bounded worker execution.
/v1/jobsScope: jobs| Field | Type | Required | Description |
|---|---|---|---|
source_link | HTTPS URL | Yes | The same normalized source submitted to resolve. |
format_ref | string | Yes | An exact ID from the resolve response. |
tenant | string | No | Assigned tenant domain. Usually omitted. |
curl -X POST https://dwtt.app/v1/jobs \
-H "X-API-Key: $DWTT_TOOL_TOKEN" \
-H "Content-Type: application/json" \
-d '{"source_link":"https://www.youtube.com/watch?v=VIDEO_ID","format_ref":"18"}'task_ref.GET /v1/jobs/{task_ref} with the same key.| Status | Meaning | Client action |
|---|---|---|
queued | Admitted to the bounded queue. | Poll again with backoff. |
extracting | Refreshing source metadata or route. | Continue polling. |
processing | Downloading, remuxing or merging. | Display server progress. |
ready | Signed download is available. | Send the URL to the user. |
failed | Terminal structured error. | Read error_code. Retry only when advised. |
expired | Temporary output was removed. | Create a new job. |
curl https://dwtt.app/v1/jobs/TASK_REF \
-H "X-API-Key: $DWTT_TOOL_TOKEN"To explain Job polling, DWTT separates one-second initial wait from capped backoff. A streamlined workflow gives temporary signed delivery its own place.
Predictable errors
One non-2xx envelope is the starting point for Error contract on DWTT. A streamlined workflow then presents a support request ID and explains predictable client handling.
{
"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 | Typical meaning | Action |
|---|---|---|
| 400 | Invalid URL, body or unavailable format. | Correct the request. Resolve again for formats. |
| 401 | Missing, invalid, expired or wrong-scope key. | Check the server-side credential. |
| 403 | Tenant or source policy rejected the request. | Do not bypass the policy. Contact support. |
| 404 | Unknown or expired job. | Create a new job if appropriate. |
| 429 | Request or active-job limit reached. | Honor retry_after_seconds. |
| 503 | Queue/capacity or upstream temporarily unavailable. | Retry with exponential backoff and jitter. |
Operational contract
DWTT sets traffic allowances during activation so clip integrations and source networks are not overloaded.
- Use idempotent application logic and never start duplicate jobs for the same user click.
- Cache resolve metadata briefly, but always treat signed download URLs as expiring.
- Use bounded exponential backoff with jitter for
429,503and retryable errors. - Process only public media or media you are authorized to access. DRM and access controls are not bypassed.
- Keep request IDs and job IDs in private operational logs. Do not log submitted URLs unnecessarily.
DWTT makes Schema access easy to scan. The page starts with activation before exploration, moves to assigned authentication, and clearly states documented request shapes.
Activate through support
Send DWTT the intended integration, likely request volume and target networks. Mention whether the client needs resolution, job creation or both so a scoped key can be approved and shown once.
Request activation Keys are tenant-scoped, revocable and issued through the Contact form. Anonymous scripts cannot execute downloader work.