
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úblico en un registro estructurado de cuenta: nombres de usuario, nombres mostrados, biografías, avatares, ubicaciones, fechas de registro, recuentos de seguidores, enlaces externos y los identificadores internos estables que identifican 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 130 plataformas y devuelve un diccionario plano y legible por máquina con los campos de la cuenta. No se necesitan claves de API, ni navegador sin cabeza: solo una llamada a una función sobre el texto de la respuesta.
Por qué es útil
- IDs estables entre servicios. Obtén GAIA ID (Google), Facebook UID, Yandex Public ID, Instagram pk y docenas más: valores que sobreviven a cambios de nombre de usuario y te permiten correlacionar cuentas a través de filtraciones, archivos e índices de buscadores.
- Interfaz uniforme. La misma llamada
extract()para Instagram, GitHub, VK, Reddit, Substack, Bluesky, TikTok: sin código de adaptación por plataforma de tu parte. - Ontología de campos. Nombres de campo normalizados entre plataformas (
username,fullname,created_at,is_verified, …) para que los pipelines 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 CLI limpia 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 saltar la petición HTTP cuando la URL no coincida con ninguna pista de sitio conocida (más rápido, pero puede omitir motores genéricos como plantillas de foros):
$ socid_extractor --url https://example.com/foo --skip-fetch-if-no-url-hint
Sitios soportados
Más de 130 esquemas — consulta METHODS.md para la lista completa.
Una muestra no exhaustiva:
- Redes principales: Facebook (páginas de usuario y grupo), Instagram, VK.com, OK.ru, Reddit, TikTok, Bluesky, Tumblr, Flickr
- Ecosistema Google: contribuciones de Google Docs/Mapas (requiere cookies), Google Play, YouTube
- Mail.ru: página principal de usuario de my.mail.ru, foto, video
- Plataformas de desarrollo/escritura: GitHub, Stack Overflow (HTML + API), LeetCode, Hashnode, Medium, Substack, Paragraph, WordPress.org, Virgool
- Foros (detectores universales): Discourse, MediaWiki / wikis Fandom, Mastodon
- Verticales/de nicho: 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 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 a todo lo que puedas ver. Una llamada devuelve la información visible más los IDs internos ocultos que la plataforma usa entre bastidores. Lectura complementaria: Week in OSINT — Getting a grasp on Google IDs.
- Seguir 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 reidentificar a la misma persona incluso cuando todos los campos visibles han cambiado. Lectura complementaria: 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 raspadores por sitio — usado por 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 APIs, y necesitan mantenimiento activo.
Para uso comercial serio — con un paquete de plugins privado mantenido con analizadores adicionales o una API de extracción alojada — contacta: 📧 [email protected]
- Plugin de analizador privado — más de 100 comprobaciones adicionales sobre los 150+ sitios públicos, mantenido actualizado a medida que las plataformas cambian (separado de la base de datos pública de código abierto)
- API de extracción — integra
socid_extractoren tu producto
Clasificación SOWEL
Corresponde a las siguientes técnicas SOWEL:
- SOTL-1.4. Analizar identificadores internos
- SOTL-11.1. Verificar funcionalidades obsoletas y no utilizadas