Solve Media CAPTCHA ist ein textbasiertes CAPTCHA, bei dem Sie statt einer verzerrten Zeichenfolge einen gut lesbaren Werbeslogan abtippen – etwa „Quality You Can Trust" anstelle von „aX3kP". Der Trick dahinter: Das Rätsel finanzierte sich über Werbung, nicht über maximale Abwehr. Genau deshalb ist es für eine OCR-Engine deutlich leichter zu verarbeiten als ein klassisches Text-CAPTCHA.
Der Dienst wurde vor Jahren übernommen und ist heute weitgehend abgelöst. Auf älteren Portalen, Foren und Login-Seiten taucht das Widget aber vereinzelt noch auf. Trifft Ihre Automatisierung oder Ihr QA-Testlauf darauf, behandeln Sie es wie ein normales Bild-CAPTCHA und lösen es per OCR – bei CaptchaAI über dieselbe Bild-Methode wie jedes andere Rasterbild-CAPTCHA.
So funktioniert Solve Media CAPTCHA
Der Ablauf ist bewusst einfach gehalten, weil die Phrase gelesen und nicht entziffert werden soll:
- Das Widget lädt und zeigt eine Werbebotschaft als Bild an.
- Die Nutzerin liest den Markenspruch und tippt ihn in das Eingabefeld.
- Die Server von Solve Media prüfen die eingegebene Phrase.
- Stimmt sie, läuft die Formularübermittlung weiter.
┌─────────────────────────────────┐
│ │
│ "Taste The Rainbow" │
│ │
├─────────────────────────────────┤
│ Type the phrase: [____________] │
│ [Verify] │
└─────────────────────────────────┘
Die angezeigte Phrase gehört meist zu einer laufenden Werbekampagne – der Text wechselt also, die Mechanik bleibt gleich.
Solve Media im Seitenquelltext erkennen
Bevor Sie etwas lösen, müssen Sie sicher sein, dass tatsächlich Solve Media im Spiel ist und nicht reCAPTCHA oder Cloudflare Turnstile. Die verräterischen Merkmale liegen im HTML:
<!-- Solve Media script -->
<script src="https://api.solvemedia.com/papi/challenge.script"></script>
<!-- Widget container -->
<div id="adcopy-outer"></div>
<!-- Hidden response fields -->
<input type="hidden" name="adcopy_challenge" />
<input type="hidden" name="adcopy_response" />
Als Faustregel gilt: Elemente mit IDs, die mit adcopy- oder solvemedia beginnen, sowie ein Skriptaufruf auf api.solvemedia.com weisen eindeutig auf Solve Media CAPTCHA hin.
Warum Solve Media für OCR leicht ist
Der entscheidende Unterschied zu einem klassischen Text-CAPTCHA liegt in der Absicht: Solve Media wollte gelesen werden, ein Sicherheits-CAPTCHA will das Gegenteil.
| Merkmal | Solve Media | Klassisches Text-CAPTCHA |
|---|---|---|
| Textinhalt | Markenphrasen, echte Wörter | Zufällige Zeichen |
| Lesbarkeit | Hoch (bewusst lesbar) | Niedrig (bewusst schwer) |
| Verzerrung | Minimal | Stark |
| Erlösmodell | Werbung | Keines |
| OCR-Schwierigkeit | Gering (sauberer Text) | Hoch (verzerrt) |
| Nutzererlebnis | Besser (bekannte Wörter) | Schlechter (schwer lesbar) |
Weil der Text kaum verzerrt ist und aus echten Wörtern besteht, liefert eine Bild-OCR hier zuverlässige Ergebnisse – anders als bei absichtlich verrauschten Zeichenketten.
Solve Media in der Praxis: selten, aber nicht verschwunden
Für neue Projekte spielt Solve Media keine Rolle mehr – kaum jemand baut heute ein werbebasiertes CAPTCHA ein. Relevant wird es fast nur bei Bestandssystemen: gewachsene Portale, Community-Foren oder Legacy-Formulare, die seit Jahren niemand angefasst hat. Wenn Sie solche Seiten testen, migrieren oder automatisiert bedienen, kann Ihnen das Widget also durchaus begegnen.
Zwei Dinge sind dabei wichtig:
- Ablösen statt pflegen: Prüfen Sie, ob das Formular überhaupt noch produktiv genutzt wird – oft lohnt es sich, Solve Media im Zuge der Wartung gleich durch reCAPTCHA v2 oder Cloudflare Turnstile zu ersetzen.
- Datenschutz im Blick: Wenn Sie fremde Seiten crawlen, behandeln Sie IP-Adressen und Nutzerdaten DSGVO-konform und klären Sie die Rechtsgrundlage Ihres Datenflusses vorab.
Solve Media mit CaptchaAI lösen
Da Solve Media Text in einem Bild anzeigt, lösen Sie es über die Standard-Bild-Methode (OCR). Der Ablauf: Widget-Screenshot aufnehmen, an CaptchaAI übermitteln, Ergebnis abfragen, Phrase eintragen.
Python
import requests
import time
import base64
API_KEY = "YOUR_API_KEY"
# Capture the CAPTCHA image
# Method 1: Screenshot the widget
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com/page-with-solvemedia")
captcha_img = driver.find_element(By.CSS_SELECTOR, "#adcopy-puzzle-image img")
captcha_img.screenshot("solvemedia.png")
# Submit to CaptchaAI
with open("solvemedia.png", "rb") as f:
img_b64 = base64.b64encode(f.read()).decode()
response = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "base64",
"body": img_b64,
"phrase": 1, # Contains spaces (multi-word phrase)
"json": 1
})
task_id = response.json()["request"]
# Poll for solution
for _ in range(30):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY, "action": "get", "id": task_id, "json": 1
}).json()
if result.get("status") == 1:
text = result["request"]
print(f"Phrase: {text}")
break
# Type the phrase
driver.find_element(By.CSS_SELECTOR, "#adcopy_response").send_keys(text)
driver.find_element(By.CSS_SELECTOR, "form").submit()
Node.js
const axios = require('axios');
const fs = require('fs');
async function solveSolveMedia(imagePath) {
const imageB64 = fs.readFileSync(imagePath).toString('base64');
const submit = await axios.post('https://ocr.captchaai.com/in.php', null, {
params: {
key: 'YOUR_API_KEY',
method: 'base64',
body: imageB64,
phrase: 1,
json: 1
}
});
const taskId = submit.data.request;
for (let i = 0; i < 30; i++) {
await new Promise(r => setTimeout(r, 5000));
const res = await axios.get('https://ocr.captchaai.com/res.php', {
params: { key: 'YOUR_API_KEY', action: 'get', id: taskId, json: 1 }
});
if (res.data.status === 1) return res.data.request;
}
throw new Error('Timeout');
}
Beispiel aus der Praxis: Sie betreuen ein älteres DACH-Kundenportal, dessen Registrierungsformular noch ein Solve-Media-Widget einbindet. In Ihrer GitLab-CI-Pipeline soll ein Selenium-Smoke-Test das Formular komplett durchlaufen. Statt den Schritt manuell zu bestätigen, schickt der Testlauf den Widget-Screenshot an CaptchaAI, liest die Phrase zurück und trägt sie ein – der Durchlauf bleibt vollautomatisch.
Hinweis: Solve-Media-Widgets unterscheiden sich je nach Werbekampagne und Einbindung. Testen Sie Ihren OCR-Durchlauf mit echten Screenshots der Zielseite, bevor Sie ihn produktiv schalten.
Parameter richtig setzen
Für Solve Media zählen ein paar Einstellungen, die sich von numerischen oder kurzen Code-CAPTCHAs unterscheiden:
phrase=1setzen – Solve-Media-Phrasen enthalten Leerzeichen, das Ergebnis ist also mehrteilig.numeric=2setzen – die Phrasen bestehen in der Regel nur aus Buchstaben, nicht aus Ziffern.min_len/max_lenweglassen – die Phrasenlänge schwankt von Kampagne zu Kampagne stark.- Groß-/Kleinschreibung beibehalten – manche Implementierungen prüfen die Antwort ohne Rücksicht darauf.
Häufige Fragen
Woran erkenne ich Solve Media auf einer Seite?
An drei Signalen im DOM, die Sie über die Entwicklertools finden:
- ein Skriptaufruf auf
api.solvemedia.com, - ein Container mit der ID
adcopy-outer, - die Hidden-Felder
adcopy_challengeundadcopy_response.
Taucht mindestens eines davon auf, handelt es sich um Solve Media und nicht um reCAPTCHA oder Turnstile.
Wie zuverlässig lässt sich Solve Media per OCR lösen?
Sehr gut, weil der Text bewusst lesbar und kaum verzerrt ist. Konkrete Werte hängen vom jeweiligen Widget und Ihrer Bildqualität ab; verlassen Sie sich nicht auf einen Pauschalwert, sondern messen Sie mit Ihren eigenen Screenshots.
Muss ich das Bild wirklich abfotografieren, oder steht die Phrase im Quelltext?
Häufig steht der Phrasentext bereits im Feld adcopy_challenge oder in der API-Antwort. Prüfen Sie das zuerst – ist die Phrase dort verfügbar, sparen Sie sich den Screenshot und die OCR komplett.
Was kostet das Lösen von Solve Media bei CaptchaAI?
Solve Media zählt als normales Bild-CAPTCHA, einen Aufpreis nach CAPTCHA-Typ gibt es nicht. Alle Pläne rechnen pro gleichzeitigem Thread ab – von BASIC (15 $/Monat, 5 Threads) aufwärts, jeweils mit unbegrenzten Lösungen pro Thread.
Alle Preise in US-Dollar. Die aktuell gültigen Tarife und Thread-Kontingente finden Sie unter captchaai.com/pricing.