
socid-extractor v0.1.1
⛏️ El motor de extracción detrás de Maigret: convierte cualquier URL de perfil en un registro OSINT estructurado en más de 150 sitios
socid_extractor
Convierte cualquier página de perfil pública en un registro de cuenta estructurado: nombres de usuario, nombres para mostrar, biografías, avatares, ubicaciones, fechas de alta, recuentos de seguidores, enlaces externos y los identificadores internos estables que fijan de forma única una cuenta a través de cambios de nombre, rediseños y eliminaciones.
socid_extractor analiza páginas HTML y respuestas de API de más de 250 esquemas y devuelve un diccionario plano y legible por máquina con los campos de la cuenta. No requiere claves de API ni un navegador headless: basta con una única llamada a función sobre el texto de la respuesta.
Por qué es útil
- IDs estables entre servicios. Obtén el GAIA ID (Google), el UID de Facebook, el Public ID de Yandex, el pk de Instagram y docenas más: valores que sobreviven a los cambios de nombre de usuario y te permiten correlacionar cuentas entre filtraciones, archivos e índices de motores de búsqueda.
- Una interfaz uniforme. La misma llamada a
extract()para Instagram, GitHub, VK, Reddit, Substack, Bluesky, TikTok: sin código de integración específico por plataforma de tu parte. - Ontología de campos. Nombres de campo normalizados entre plataformas (
username,fullname,created_at,is_verified, …) para que las canalizaciones posteriores no necesiten 130 mapeos. - Probado en combate. Impulsa Maigret y otras herramientas OSINT.
Instalación
Python: 3.10+.
pip install socid-extractor
Para una instalación limpia de la CLI en una estación de trabajo:
pipx install socid-extractor
La última versión de desarrollo:
pip install -U git+https://github.com/soxoj/socid-extractor.git
Inicio 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 de 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', ...]"}
Consejo — ejecuciones por lotes: pasa --skip-fetch-if-no-url-hint para omitir la solicitud HTTP cuando la URL no coincida con ninguna pista de sitio conocida (más rápido, pero puede omitir motores genéricos como las plantillas de foro):
$ socid_extractor --url https://example.com/foo --skip-fetch-if-no-url-hint
Sitios compatibles
Una muestra no exhaustiva:
- Redes principales: Facebook (páginas de usuario y de grupo), Instagram, VK.com, OK.ru, Reddit, TikTok, Bluesky, Tumblr, Flickr
- Ecosistema de Google: contribuciones en Google docs/maps (requiere cookies), Google Play, YouTube
- Mail.ru: página principal de usuario de my.mail.ru, foto, vídeo
- Plataformas de desarrollo y escritura: GitHub, Stack Overflow (HTML + API), LeetCode, Hashnode, Medium, Substack, Paragraph, WordPress.org, Virgool
- Foros (detectores universales): Discourse, MediaWiki / wikis de Fandom, Mastodon
- Nichos y verticales: 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)
…y muchos otros.
Para ver ejemplos de datos, consulta tests/test_e2e.py; para la lógica de análisis, consulta socid_extractor/schemes.py; para la ontología de campos, consulta FIELDS.md.
Casos de uso
- Pivotar desde un perfil hacia todo lo que puedas ver. Una sola llamada devuelve la información visible más los IDs internos ocultos que la plataforma utiliza entre bastidores. Lectura de referencia: Week in OSINT — Getting a grasp on Google IDs.
- Rastrear cuentas a través de cambios de nombre, rediseños y eliminaciones. Los IDs estables (GAIA, FB UID, Yandex Public ID, Instagram pk, …) te permiten volver a identificar a la misma persona incluso cuando todos los campos visibles han cambiado. Referencia: Aware Online — User IDs in social-media investigations.
- Buscar por UID entre servicios. Una vez que tienes un identificador estable puedes pivotar hacia:
- bases de datos SQL / filtradas (volcados de foros, datos de brechas) donde el UID es la clave de unión,
- índices de Google / Yandex / archive.org que capturaron URLs que contenían el UID.
- Alimentar herramientas OSINT posteriores. Un registro normalizado es mucho más fácil de ingerir que scrapers específicos de cada sitio — lo usan Maigret y herramientas similares para enriquecimiento.
Uso comercial
El socid_extractor de código abierto tiene licencia MIT y es gratuito para uso comercial sin restricciones — pero los analizadores de páginas se rompen con el tiempo a medida que las plataformas cambian su HTML y sus API, y necesitan mantenimiento activo.
Para un uso comercial serio — una API de extracción alojada, o el mantenimiento de los analizadores de los que depende tu producto — ponte en contacto: 📧 [email protected]
- API de extracción — integra
socid_extractoren tu producto
Clasificación SOWEL
Se corresponde con las siguientes técnicas de SOWEL: