Análises Técnicas

O que é resolver mídia CAPTCHA

Solve Media CAPTCHA (agora parte de Permit.io / Radius Networks) era um CAPTCHA baseado em publicidade que substituiu texto aleatório distorcido por mensagens e slogans de marca. Em vez de digitar “aX3kP”, os usuários digitaram uma frase reconhecível como “Qualidade em que você pode confiar”.

Embora o Solve Media seja menos comum hoje em dia, ele ainda aparece em alguns sites. Funciona como um CAPTCHA de texto padrão e pode ser resolvido com a mesma abordagem de OCR de imagem.


Como funciona o Solve Media

  1. O widget carrega e exibe uma mensagem publicitária como uma imagem
  2. O usuário lê a frase da marca e a digita na caixa de entrada
  3. A resposta é verificada pelos servidores da Solve Media
  4. Se correto, o envio do formulário prossegue
┌─────────────────────────────────┐
│                                 │
│   "Taste The Rainbow"           │
│                                 │
├─────────────────────────────────┤
│ Type the phrase: [____________] │
│                     [Verify]    │
└─────────────────────────────────┘

Resolva CAPTCHAs de mídia versus texto padrão

Recurso Resolver mídia Texto padrão CAPTCHA
Conteúdo de texto Frases de marca, palavras em inglês Caracteres aleatórios
Legibilidade Alto (destinado a ser legível) Baixo (pretendido para ser difícil)
Distorção Mínimo Pesado
Modelo de receita Publicidade Nenhum
Dificuldade para OCR Fácil (texto limpo) Difícil (distorcido)
Experiência do usuário mais adequado (palavras reconhecíveis) Pior (difícil de ler)

Identificando Solve Media em uma página

Procure estes marcadores:

<!-- 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" />

Elementos com IDs começando com adcopy- ou solvemedia indicam Solve Media CAPTCHA.


Resolvendo Resolver mídia com CaptchaAI

Como o Solve Media exibe texto em uma imagem, ele pode ser resolvido com o método OCR de imagem padrão:

Pitão

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');
}

Principais considerações

Dica Por que
Definir phrase=1 Resolver frases de mídia contém espaços
Definir numeric=2 As frases geralmente são apenas letras
Não defina min_len/ZZTOKEN1ZZ O comprimento da frase varia
Mantenha o caso como está Algumas implementações não diferenciam maiúsculas de minúsculas

Perguntas frequentes

A Solve Media ainda está ativa?

A Solve Media foi adquirida e renomeada. Algumas implementações legadas ainda existem em sites mais antigos, mas novas implantações são raras.

Por que o Solve Media é mais fácil de resolver do que o reCAPTCHA?

O Solve Media foi projetado para ser legível – era um produto publicitário, não um produto de segurança. O texto foi intencionalmente claro para que os usuários pudessem ler a mensagem da marca.

Posso resolver o Solve Media sem OCR?

Em alguns casos, o texto da frase está disponível na origem da página ou na resposta da API, tornando desnecessária a extração da imagem. Verifique o campo oculto adcopy_challenge.

O CaptchaAI possui um método Solve Media dedicado?

Não. Use o método OCR de imagem padrão (method=base64 ou method=post) com phrase=1.


Guias relacionados

Os comentários estão desativados para este artigo.