64 lines
1.7 KiB
Bash
Executable File
64 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# Solve reCAPTCHA using Capsolver API
|
|
# Usage: ./solve-captcha.sh <page_url> <site_key>
|
|
|
|
CAPSOLVER_KEY="CAP-B49C48AC60460D3DE18D06CE9012816DE2040A3D21476FF09EA90DB00EC423EA"
|
|
PAGE_URL="$1"
|
|
SITE_KEY="$2"
|
|
|
|
if [ -z "$PAGE_URL" ] || [ -z "$SITE_KEY" ]; then
|
|
echo "Usage: $0 <page_url> <site_key>"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Creating CAPTCHA solve task..."
|
|
|
|
# Create task
|
|
RESPONSE=$(curl -s -X POST "https://api.capsolver.com/createTask" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{
|
|
\"clientKey\": \"$CAPSOLVER_KEY\",
|
|
\"task\": {
|
|
\"type\": \"ReCaptchaV2TaskProxyLess\",
|
|
\"websiteURL\": \"$PAGE_URL\",
|
|
\"websiteKey\": \"$SITE_KEY\"
|
|
}
|
|
}")
|
|
|
|
TASK_ID=$(echo "$RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin).get('taskId',''))")
|
|
|
|
if [ -z "$TASK_ID" ]; then
|
|
echo "Error creating task: $RESPONSE"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Task ID: $TASK_ID"
|
|
echo "Waiting for solution..."
|
|
|
|
# Poll for result
|
|
for i in {1..60}; do
|
|
sleep 3
|
|
RESULT=$(curl -s -X POST "https://api.capsolver.com/getTaskResult" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{
|
|
\"clientKey\": \"$CAPSOLVER_KEY\",
|
|
\"taskId\": \"$TASK_ID\"
|
|
}")
|
|
|
|
STATUS=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('status',''))")
|
|
|
|
if [ "$STATUS" = "ready" ]; then
|
|
SOLUTION=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('solution',{}).get('gRecaptchaResponse',''))")
|
|
echo "CAPTCHA_SOLUTION=$SOLUTION"
|
|
exit 0
|
|
elif [ "$STATUS" = "failed" ]; then
|
|
echo "CAPTCHA solve failed: $RESULT"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Status: $STATUS (attempt $i/60)"
|
|
done
|
|
|
|
echo "Timeout waiting for CAPTCHA solution"
|
|
exit 1
|