APIでKasadaヘッダーを取得する
www.ticketmaster.com 上の正確な HTTPS URL に対して KasadaTask をリクエストし、返されたヘッダーを対象へのリクエストに使用してください。スタンドアロンの Kasada は現在、このホストに対応しています。
このページの内容
ヘッダーをリクエストする
Python 3.10+ または Node.js 22+ と公式 SDK を使用してください。公式ダウンロードから SDK をインストールします。
SOLVETHREE_API_KEY にワークスペースの API キーを、SOLVETHREE_PROXY にプロキシ URL を設定してください。API キーを非公開に保つため、サーバー上で実行します。url を、対応ホスト上の目的の HTTPS URL に変更してください。
import os
from uuid import uuid4
from solvethree import Solvethree
client = Solvethree(os.environ["SOLVETHREE_API_KEY"])
request = {
'type': 'KasadaTask',
'url': 'https://www.ticketmaster.com/',
"proxy": os.environ["SOLVETHREE_PROXY"],
"requestId": str(uuid4()),
}
result = client.solve(request, timeout=180)
headers = result["solution"]["headers"]
print("Ready task:", result["id"])import { randomUUID } from 'node:crypto';
import { Solvethree } from '@solvethree/sdk';
const client = new Solvethree({ apiKey: process.env.SOLVETHREE_API_KEY });
const request = {
type: 'KasadaTask',
url: 'https://www.ticketmaster.com/',
proxy: process.env.SOLVETHREE_PROXY,
requestId: randomUUID(),
};
const result = await client.solve(request, { timeoutMs: 180_000 });
const headers = result.solution.headers;
console.log('Ready task:', result.id);どちらの例も solve を呼び出します。これはタスクを1つ作成し、準備完了になるまでポーリングするか、エラーを発生させます。次のセクションでは、返されたヘッダーを対象に送信します。
タスクには type、url、単一の proxy、任意の requestId を指定します。独自のブラウザー識別フィールドは追加せず、解決結果で返された識別情報を使用してください。
返されたヘッダーを対象に送信する
{
"id": "example-kasada",
"status": "ready",
"solution": {
"headers": {
"x-kpsdk-ct": "EXAMPLE_HEADER_VALUE",
"x-kpsdk-cd": "EXAMPLE_HEADER_VALUE"
},
"userAgent": "EXAMPLE_USER_AGENT",
"secChUa": "EXAMPLE_CLIENT_HINTS"
}
}solution.headers オブジェクト全体をコピーします。結果の値で User-Agent と sec-ch-ua を設定し、解決時と同じプロキシを使用してください。
# Continue after the Kasada solve. Install requests separately: pip install requests.
import requests
solution = result["solution"]
headers = {name: value for name, value in solution["headers"].items()
if name.lower() not in {"user-agent", "sec-ch-ua"}}
headers.update({"User-Agent": solution["userAgent"], "sec-ch-ua": solution["secChUa"]})
response = requests.get(
request["url"], headers=headers,
proxies={"http": request["proxy"], "https": request["proxy"]},
timeout=30, allow_redirects=False,
)
print("Target HTTP status:", response.status_code)// Continue after the Kasada solve. Install undici separately: npm install undici@7.
import { fetch, ProxyAgent } from 'undici';
const targetHeaders = new Headers(result.solution.headers);
targetHeaders.set('user-agent', result.solution.userAgent);
targetHeaders.set('sec-ch-ua', result.solution.secChUa);
const dispatcher = new ProxyAgent(request.proxy);
try {
const response = await fetch(request.url, {
dispatcher, headers: targetHeaders, redirect: 'manual',
signal: AbortSignal.timeout(30_000),
});
console.log('Target HTTP status:', response.status);
await response.arrayBuffer();
} finally {
await dispatcher.close();
}これらの続きのコードには、Python では requests、Node.js では undici が必要です。タスクの正確な URL にリクエストを送信し、競合するブラウザーヘッダーを置き換えます。対象が必要とするその他のアプリケーションヘッダーやセッションデータは維持してください。
proxyCandidates を使用する場合は、対象へのリクエストを送信する前に、successful_proxy または successfulProxy で成功したプロキシを選択してください。単一プロキシの例では、Python の request["proxy"] または Node.js の request.proxy を再利用します。
送信後に対象のレスポンスを確認してください。403 の場合は、Ticketmaster のトラブルシューティングガイドで、どのリクエストが拒否されているかを確認してください。
待機とエラー
solve() はポーリングを自動で処理します。タスク ID をすぐに受け取るには、待機時間をゼロにして create_task または createTask を使用し、その ID のタスクが ready または failed になるまで取得を繰り返してください。
API を直接使用する場合、Kasada の作成はデフォルトで最大75秒待機します。HTTP タイムアウトをその待機時間より長く設定するか、?waitMs=0 を使用してポーリングしてください。リクエストの手順はタスクのポーリングとタイムアウトを参照してください。
タスクが失敗した場合はポーリングを停止し、errorCode と error を確認してください。失敗した解決は返金されます。作成がタイムアウトした場合、復旧時には同じ requestId と入力を維持してください。新しい ID を使用すると、別の課金対象の解決が作成される可能性があります。
参照元とAPIリファレンス
最初のタスクを実行しましょう。
$5のワークスペースクレジットで始められます。