Site2API Studio é uma ferramenta gratuita e self-hosted para transformar sites públicos ou autorizados em contratos provider.json testáveis, com playground web, captura de DOM, descoberta de endpoints XHR/fetch, geração de API local e análise assistida por IA.
Criado por Pedrohs.
Uso correto: auditoria, prototipagem, integração, catalogação e automação em sites onde você tem autorização ou onde o conteúdo é público e permitido. O projeto não é feito para bypass de login, DRM, paywall, CAPTCHA, Cloudflare, anti-bot, autenticação ou restrições de acesso.
Cole uma URL, descreva o objetivo e o motor tenta gerar um contrato reutilizável:
search(q) -> lista resultados encontrados
items/detail -> abre o melhor resultado e extrai detalhes relacionados
resolve(resource) -> resolve recursos visíveis quando autorizados e expostos normalmente
provider.json -> contrato auditável
api.py -> cliente Python gerado para testar o fluxoCapacidades principais:
- Playground web com FastAPI + frontend estático.
- Geração de
provider.json,api.json,gold_contract.jsoneapi.py. - Captura opcional com Playwright para páginas dinâmicas.
- Sniffing semântico de XHR/fetch/JSON quando o navegador autorizado carrega a página.
- Runtime local para testar
search,episodes/items,resolveefinal. - Rate limit por IP para deploy público.
- Bloqueio básico de hosts privados/localhost para reduzir risco de SSRF.
- Integração opcional com OpenRouter, OpenAI ou Groq.
- Exemplo local autorizado em
examples/authorized_site.
python -m venv .venv
source .venv/bin/activate
pip install -e '.[web,dev]'Para usar o modo dinâmico com navegador:
python -m playwright install chromiumcp .env.example .env
python web_api.pyAbra:
http://127.0.0.1:8789Swagger/OpenAPI:
http://127.0.0.1:8789/docsTeste com o mock autorizado incluído:
python auto_provider.py "file://$PWD/examples/authorized_site/" \
--query Demo \
--authorized-final \
--out outputs/mockSubir a API gerada para esse provider:
python provider_api.py outputs/mock/provider.json --port 8789Testar:
curl "http://127.0.0.1:8789/health"
curl "http://127.0.0.1:8789/provider.json"
curl "http://127.0.0.1:8789/search?q=Demo"Configure pelo .env ou painel da hospedagem:
HOST=0.0.0.0
PORT=8789
ADMIN_USER=admin
ADMIN_PASSWORD=troque-essa-senha
MASTER_KEY=troque-essa-master-key
JWT_SECRET=troque-esse-jwt-secret
MAPPER_DATA_DIR=./data
FREE_IP_LIMIT=12
REVIEW_IP_LIMIT=50
USAGE_WINDOW_SECONDS=7200
MAX_CONCURRENT_COMPILES=1
AI_PROVIDER=openrouter
AI_MODEL=google/gemini-2.0-flash-001
OPENROUTER_API_KEY=
OPENAI_API_KEY=
GROQ_API_KEY=
DISCORD_WEBHOOK_URL=Nunca suba .env, keys.txt, data/, outputs/ ou logs reais para GitHub.
Arquivos incluídos:
Procfilestart.shvertracloud.configDEPLOY_VERTRACLOUD.md
Comando padrão:
bash start.shEm produção, defina pelo painel da VertraCloud pelo menos:
ADMIN_PASSWORD=uma-senha-forte
MASTER_KEY=uma-chave-longa-aleatoria
JWT_SECRET=outra-chave-longa-aleatoriaPYTHONPATH=. python -m unittest discover -s tests -vAlguns testes de browser podem exigir Playwright instalado. Para ambiente sem navegador, rode os testes unitários principais primeiro e instale Chromium depois.
provider_mapper/ núcleo do mapper, runtime, compilador e webapp
web/ frontend estático do Studio
examples/ site local autorizado para testes
/tests testes unitários e integração local
api.py wrapper/atalho legado
web_api.py entrada do servidor web
provider_api.py API local para um provider.json geradoEste repositório é para uso legítimo em sites públicos/autorizados. Não use para copiar conteúdo protegido, contornar segurança, extrair recursos privados, quebrar termos de serviço ou acessar dados sem permissão.
Feito por Pedrohs.
GitHub: Pedrohs1771