
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, biografias, avatares, localizações, datas de adesão, contagens de seguidores, links externos e os identificadores internos estáveis que identificam exclusivamente 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 130 plataformas e retorna um dicionário plano e legível por máquina dos campos da conta. Sem necessidade de chaves de API, sem 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 em vazamentos, arquivos e índices de mecanismos de busca.
- Interface uniforme. A mesma chamada
extract()para Instagram, GitHub, VK, Reddit, Substack, Bluesky, TikTok — sem código de integração por plataforma do seu lado. - Ontologia de campos. Nomes de campo normalizados entre plataformas (
username,fullname,created_at,is_verified, …) para que pipelines downstream não precisem de 130 mapeamentos. - Testado em batalha. Alimenta Maigret e várias outras ferramentas OSINT.
Instalação
Python: 3.10+.
pip install socid-extractor
Para uma instalação CLI limpa 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 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 pular a requisição HTTP quando a URL não corresponder a nenhuma dica de site conhecida (mais rápido, mas pode pular mecanismos genéricos como templates de fóruns):
$ socid_extractor --url https://example.com/foo --skip-fetch-if-no-url-hint
Sites suportados
130+ esquemas — veja METHODS.md para a lista completa.
Uma amostra não exaustiva:
- Redes principais: Facebook (páginas de usuário e grupo), Instagram, VK.com, OK.ru, Reddit, TikTok, Bluesky, Tumblr, Flickr
- Ecossistema Google: contribuições Google docs/maps (requer cookies), 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 / Fandom wikis, 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, veja tests/test_e2e.py; para a lógica de análise, veja socid_extractor/schemes.py; para a ontologia de campos, veja FIELDS.md.
Casos de uso
- Pivotar de um perfil para tudo que você pode ver. Uma chamada retorna as informações visíveis mais os IDs internos ocultos que a plataforma usa nos bastidores. Leitura de fundo: Week in OSINT — Getting a grasp on Google IDs.
- Rastrear 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. Fundo: Aware Online — User IDs in social-media investigations.
- Pesquisar por UID entre serviços. Depois de ter um identificador estável, você pode pivotar em:
- 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.
- Alimentar ferramentas OSINT downstream. Um registro normalizado é muito mais fácil de ingerir do que scrapers por site — usado por 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 analisadores de página quebram com o tempo à medida que as plataformas mudam seu HTML e APIs, e eles precisam de manutenção ativa.
Para uso comercial sério — com um pacote de plugins privados mantidos de analisadores extras ou uma API de extração hospedada — entre em contato: 📧 [email protected]
- Plugin de analisador privado — 100+ verificações adicionais além dos 150+ sites públicos, mantido atualizado à medida que as plataformas mudam (separado do banco de dados público de código aberto)
- API de extração — integre o
socid_extractorao seu produto
Classificação SOWEL
Mapeia para as seguintes técnicas SOWEL: