
socid-extractor v0.1.1
⛏️ O motor de extração por trás do Maigret: transforme qualquer URL de perfil em um registro OSINT estruturado em mais de 150 sites
socid_extractor
Transforme qualquer página de perfil público em um registro de conta estruturado — nomes de usuário, nomes de exibição, bios, avatares, localizações, datas de entrada, contagens de seguidores, links externos e os identificadores internos estáveis que fixam unicamente uma conta através de renomeações, reformulações e exclusões.
socid_extractor analisa páginas HTML e respostas de API de mais de 250 esquemas e retorna um dicionário plano e legível por máquina de campos de conta. Não são necessárias chaves de API, nem navegador headless — apenas uma única chamada de função no texto da resposta.
Por que é útil
- IDs estáveis entre serviços. Obtenha GAIA ID (Google), Facebook UID, Yandex Public ID, Instagram pk e dezenas de outros — valores que sobrevivem a mudanças de nome de usuário e permitem correlacionar contas entre vazamentos, arquivos e índices de mecanismos de busca.
- Uma interface uniforme. A mesma chamada
extract()para Instagram, GitHub, VK, Reddit, Substack, Bluesky, TikTok — sem código de integração específico por plataforma do seu lado. - Ontologia de campos. Nomes de campos normalizados entre plataformas (
username,fullname,created_at,is_verified, …) para que pipelines downstream não precisem de 130 mapeamentos. - Testado em batalha. Alimenta o Maigret e várias outras ferramentas OSINT.
Instalação
Python: 3.10+.
pip install socid-extractor
Para uma instalação limpa via CLI em uma estação de trabalho:
pipx install socid-extractor
A versão de desenvolvimento mais recente:
pip install -U git+https://github.com/soxoj/socid-extractor.git
Início rápido
Como CLI:
$ socid_extractor --url https://www.deviantart.com/muse1908
country: France
created_at: 2005-06-16 18:17:41
gender: female
username: Muse1908
website: www.patreon.com/musemercier
links: ['https://www.facebook.com/musemercier', 'https://www.instagram.com/muse.mercier/', 'https://www.patreon.com/musemercier']
tagline: Nothing worth having is easy...
Como uma biblioteca Python:
import requests
import socid_extractor
r = requests.get('https://www.patreon.com/annetlovart')
print(socid_extractor.extract(r.text))
# {'patreon_id': '33913189', 'patreon_username': 'annetlovart',
# 'fullname': 'Annet Lovart',
# 'links': "['https://www.facebook.com/322598031832479', ...]"}
Dica — execuções em lote: passe --skip-fetch-if-no-url-hint para ignorar a requisição HTTP quando a URL não corresponder a nenhuma dica de site conhecida (mais rápido, mas pode ignorar mecanismos genéricos, como templates de fórum):
$ socid_extractor --url https://example.com/foo --skip-fetch-if-no-url-hint
Sites suportados
Uma amostra não exaustiva:
- Grandes redes: Facebook (páginas de usuário e de grupo), Instagram, VK.com, OK.ru, Reddit, TikTok, Bluesky, Tumblr, Flickr
- Ecossistema Google: contribuições no Google docs/maps (cookies necessários), Google Play, YouTube
- Mail.ru: página principal do usuário my.mail.ru, foto, vídeo
- Plataformas de desenvolvimento / escrita: GitHub, Stack Overflow (HTML + API), LeetCode, Hashnode, Medium, Substack, Paragraph, WordPress.org, Virgool
- Fóruns (detectores universais): Discourse, MediaWiki / wikis Fandom, Mastodon
- Nicho / vertical: Chess.com, Roblox, MyAnimeList, Scratch, Wikipedia, DailyMotion, SlideShare, Weebly, Calendly, Amazon Author, Boosty, Warpcast (Farcaster), Fragment (TON/Telegram), Rarible, CSSBattle, lnk.bio, Spatial, TwitchTracker, Max (max.ru)
…e muitos outros.
Para exemplos de dados, consulte tests/test_e2e.py; para a lógica de parsing, consulte socid_extractor/schemes.py; para a ontologia de campos, consulte FIELDS.md.
Casos de uso
- Pivote a partir de um perfil para tudo o que você consegue ver. Uma única chamada retorna as informações visíveis mais os IDs internos ocultos que a plataforma usa nos bastidores. Leitura de contexto: Week in OSINT — Getting a grasp on Google IDs.
- Rastreie contas através de renomeações, reformulações e exclusões. IDs estáveis (GAIA, FB UID, Yandex Public ID, Instagram pk, …) permitem reidentificar a mesma pessoa mesmo quando todos os campos visíveis mudaram. Contexto: Aware Online — User IDs in social-media investigations.
- Pesquise por UID entre serviços. Uma vez que você tenha um identificador estável, pode pivotar para:
- bancos de dados SQL / vazados (dumps de fóruns, dados de violações) onde o UID é a chave de junção,
- índices do Google / Yandex / archive.org que capturaram URLs contendo o UID.
- Alimente ferramentas OSINT downstream. Um registro normalizado é muito mais fácil de ingerir do que scrapers por site — usado pelo Maigret e ferramentas similares para enriquecimento.
Uso Comercial
O socid_extractor de código aberto é licenciado sob MIT e gratuito para uso comercial sem restrições — mas os parsers de páginas quebram com o tempo à medida que as plataformas alteram seu HTML e APIs, e precisam de manutenção ativa.
Para uso comercial sério — uma API de extração hospedada, ou manutenção dos parsers dos quais seu produto depende — entre em contato: 📧 [email protected]
- API de Extração — integre o
socid_extractorao seu produto
Classificação SOWEL
Mapeia para as seguintes técnicas SOWEL: