27/11/2011
En el vasto universo de Steam, donde millones de usuarios intercambian, compran y venden artículos digitales cada día, la automatización se ha convertido en una herramienta invaluable para desarrolladores, traders y entusiastas. Aquí es donde entra en juego Steampy, una potente y ligera librería para Python diseñada para interactuar con la plataforma de Steam de una manera programática y eficiente. A diferencia de otros servicios con nombres similares como SteamSpy, que se enfoca en la recolección de datos y estadísticas de ventas, Steampy es una herramienta de acción, un cliente que permite a tus scripts iniciar sesión, gestionar ofertas de intercambio, operar en el mercado y mucho más.

Inspirada en librerías populares del ecosistema de Node.js, Steampy consolida una multitud de funcionalidades en un único módulo de Python 3, facilitando la creación de bots de trading, sistemas de gestión de inventario, herramientas de análisis de precios en tiempo real y cualquier otra aplicación que requiera una interacción directa y automatizada con las funcionalidades de Steam. Si eres un desarrollador de Python con interés en el ecosistema de Steam, esta guía te abrirá las puertas a un mundo de posibilidades.
¿Qué es Exactamente Steampy y Para Qué Sirve?
Steampy es, en esencia, un cliente de ofertas de intercambio de Steam para Python. Su principal objetivo es simplificar el proceso de automatización de tareas que un usuario normalmente realizaría manualmente a través del cliente de Steam o su navegador web. Esto incluye, pero no se limita a, la aceptación o rechazo de ofertas de intercambio, la creación de nuevas ofertas, la publicación de artículos en el Mercado de la Comunidad y la consulta de inventarios.
La gran ventaja de Steampy radica en su capacidad para manejar la autenticación de forma sencilla, utilizando tus credenciales de usuario y tu archivo de SteamGuard. Esto elimina la necesidad de procesos complejos como la extracción manual de cookies de sesión, permitiendo un inicio de sesión seguro y estable para tus aplicaciones. Desarrollado con Python 3 y aprovechando características modernas del lenguaje como los type hints, ofrece una experiencia de desarrollo limpia y es compatible con Windows, Linux y macOS.
Características Principales
- Gestión de Sesión y Autenticación: Inicia sesión de forma segura utilizando tu nombre de usuario, contraseña y el archivo SteamGuard.
- Manejo de Ofertas de Intercambio: Obtén, acepta, rechaza, cancela y crea ofertas de intercambio con otros usuarios.
- Interacción con el Mercado: Crea órdenes de compra y venta, consulta precios históricos y actuales, y gestiona tus listados en el mercado.
- Consulta de Inventarios: Revisa tu propio inventario o el de otros usuarios para cualquier juego compatible.
- Funciones de SteamGuard: Genera códigos de autenticación de un solo uso y claves de confirmación para validar acciones importantes sin necesidad de un dispositivo móvil.
- Utilidades de Chat: Envía y recibe mensajes de chat, ideal para notificaciones de bots.
Primeros Pasos: Instalación y Configuración Inicial
Empezar a usar Steampy es un proceso relativamente sencillo, pero requiere de algunos prerrequisitos esenciales para poder interactuar con la API de Steam.

Instalación
Al ser un paquete de Python, la instalación se realiza cómodamente a través de pip, el gestor de paquetes de Python.
pip install steampyRequisitos Previos
- Clave de API de Steam (API Key): Necesitarás una clave de API para realizar muchas de las llamadas. Puedes obtener la tuya de forma gratuita desde la página de desarrolladores de Steam, asociándola a un dominio (puedes usar 'localhost' si es para desarrollo local).
- Archivo SteamGuard: Steampy necesita acceder a los secretos de tu autenticador móvil para iniciar sesión y confirmar acciones. El proceso implica obtener el archivo `Steamguard.txt` de tu dispositivo móvil, que contiene tu `shared_secret` y `identity_secret`. Existen herramientas comunitarias para extraer este archivo de dispositivos Android rooteados o mediante emulación.
Configuración y Login Básico
Una vez que tienes tu clave de API y tu archivo SteamGuard, puedes iniciar tu primer cliente. El siguiente código muestra cómo inicializar el cliente e iniciar sesión:
from steampy.client import SteamClient # Reemplaza con tus datos reales api_key = 'TU_CLAVE_DE_API' username = 'TU_USUARIO_DE_STEAM' password = 'TU_CONTRASEÑA' steamguard_path = 'ruta/a/tu/Steamguard.txt' # Inicializa el cliente y realiza el login steam_client = SteamClient(api_key) steam_client.login(username, password, steamguard_path) print('¡Inicio de sesión exitoso!') # A partir de aquí, puedes usar los métodos del cliente # No olvides cerrar sesión al terminar steam_client.logout()Steampy también soporta el uso de contextos con la declaración `with`, que maneja automáticamente el inicio y cierre de sesión, haciendo tu código más limpio y seguro.
Funcionalidades Clave de la API de Steampy
La librería se organiza en torno al objeto `SteamClient`, que contiene métodos para casi todas las interacciones que puedas necesitar. A continuación, exploramos las más importantes.
Gestión de Ofertas de Intercambio (Trading)
El corazón de Steampy es su capacidad para gestionar el trading. Puedes automatizar completamente el proceso de intercambio de artículos.
get_trade_offers(): Recupera una lista de todas las ofertas de intercambio activas, tanto enviadas como recibidas.make_offer(items_from_me, items_from_them, partner_steam_id): Crea y envía una oferta de intercambio a un amigo. Los artículos se especifican como objetos `Asset`.make_offer_with_url(items_from_me, items_from_them, trade_offer_url): Similar al anterior, pero utiliza la URL de intercambio de un usuario, lo que permite comerciar con personas que no están en tu lista de amigos.accept_trade_offer(trade_offer_id): Acepta una oferta de intercambio recibida. Esta acción se confirma automáticamente utilizando tu `identity_secret` del archivo SteamGuard.decline_trade_offer(trade_offer_id): Rechaza una oferta de intercambio.
Interactuando con el Mercado de la Comunidad
Otra área poderosa de Steampy es la interacción con el mercado. Puedes crear bots que realicen "sniping" de precios, gestionen listados de venta o automaticen órdenes de compra.

market.fetch_price(item_hash_name, game): Obtiene el precio más bajo, el precio mediano y el volumen de un artículo específico en el mercado.market.create_sell_order(assetid, game, money_to_receive): Pone a la venta un artículo de tu inventario. Es crucial recordar que `money_to_receive` debe especificarse en céntimos (ej: 1000 para $10.00).market.create_buy_order(market_name, price_single_item, quantity, game): Crea una orden de compra para un artículo. Al igual que con la venta, el precio se especifica en céntimos.market.cancel_sell_order(sell_listing_id): Cancela una de tus ofertas de venta activas.market.cancel_buy_order(buy_order_id): Cancela una de tus órdenes de compra activas.
Tabla Comparativa: Steampy vs. Interacción Manual
| Característica | Interacción Manual | Con Steampy |
|---|---|---|
| Aceptar una oferta | Navegar a la página, revisar, hacer clic en aceptar, confirmar en el móvil. | Una sola llamada a la función accept_trade_offer(). Automático. |
| Vender 100 artículos | Proceso lento y repetitivo: seleccionar cada artículo, introducir precio, confirmar 100 veces. | Un bucle que llama a create_sell_order(). Puede completarse en segundos. |
| Monitoreo de precios | Actualizar manualmente la página del mercado constantemente. | Script que llama a fetch_price() cada pocos segundos, 24/7. |
| Escalabilidad | Muy limitada. Depende del tiempo y la atención del usuario. | Altamente escalable. Un solo script puede gestionar miles de operaciones para múltiples cuentas. |
Preguntas Frecuentes (FAQ)
¿Es Steampy lo mismo que SteamSpy?
No, y es una distinción muy importante. SteamSpy es un servicio de análisis de datos que estima las ventas y la cantidad de propietarios de los juegos en Steam. Es una herramienta de visualización de datos. Steampy, por otro lado, es una librería de programación (una API no oficial) para que los desarrolladores creen aplicaciones que interactúen y realicen acciones en la plataforma Steam, como el trading.
¿Es seguro usar Steampy con mi cuenta principal de Steam?
Steampy en sí es una herramienta de código abierto y no es maliciosa. Sin embargo, la automatización de acciones en tu cuenta siempre conlleva riesgos. El uso de bots puede ir en contra de los Términos de Servicio de Steam en ciertos contextos, y si tu script tiene fallos, podrías realizar acciones no deseadas (como vender un artículo valioso por un precio incorrecto). Se recomienda encarecidamente probar tus scripts en una cuenta secundaria antes de usarlos en tu cuenta principal.
¿Necesito ser un experto en programación para usar Steampy?
Necesitas tener un conocimiento básico-intermedio de Python. Debes entender cómo instalar paquetes, escribir scripts, manejar diccionarios y listas, y comprender los conceptos básicos de las llamadas a APIs. La documentación de Steampy es bastante clara, pero no es una herramienta para principiantes absolutos en la programación.
¿Qué tipo de proyectos puedo construir con Steampy?
Las posibilidades son enormes. Aquí tienes algunas ideas:
- Bots de Trading: Aceptan automáticamente ofertas de intercambio basadas en reglas de precios que tú defines.
- Gestores de Inventario: Organizan y catalogan tus artículos, o incluso los de varios amigos.
- Herramientas de Arbitraje de Mercado: Scripts que buscan diferencias de precios entre el mercado de Steam y mercados de terceros para encontrar oportunidades de beneficio.
- Sistemas de Donación Automatizados: Para streamers que quieren que los espectadores donen skins de juegos.
- Bots de Venta Masiva: Para vender rápidamente grandes cantidades de artículos, como cajas o cromos de juegos.
¿Steampy es una herramienta oficial de Valve?
No. Steampy es un proyecto de terceros, creado por la comunidad. No está afiliado ni respaldado por Valve. Utiliza las mismas APIs web que utiliza el cliente oficial de Steam, pero su uso es bajo tu propia responsabilidad.
Si quieres conocer otros artículos parecidos a Steampy: Tu Aliado para Automatizar Steam con Python puedes visitar la categoría Juegos.
