@sekrecior/steam-free-games
v1.0.9
Published
Scrape temporarily free games from Steam
Downloads
148
Readme
Steam Free Games Scraper
A TypeScript library to scrape temporarily free games from Steam (games that are normally paid but currently free to keep).
Installation
npm install @sekrecior/steam-free-gamesUsage
Basic Usage
import { SteamScraper } from '@sekrecior/steam-free-games';
const scraper = new SteamScraper(); // Default: USD
const result = await scraper.scrape();
console.log(`Found ${result.count} free games`);
result.games.forEach(game => {
console.log(`${game.title} - ${game.originalPrice} → FREE`);
});Multi-Currency Support
const scraperPLN = new SteamScraper('PLN'); // Polish Złoty
const scraperEUR = new SteamScraper('EUR'); // Euro
const scraperUSD = new SteamScraper('USD'); // US Dollar
const scraperGBP = new SteamScraper('GBP'); // British Pound
const scraperBRL = new SteamScraper('BRL'); // Brazilian RealNote: Prices vary by region due to Steam's regional pricing.
Game Data Structure
interface GameData {
appId: string;
title: string;
url: string;
originalPrice: string; // e.g., "$19.99", "8,99zł"
currency: string; // e.g., "USD", "PLN", "EUR"
currentPrice: string; // Always "0.00"
discountPercent: string; // "-100%"
description: string;
headerImage: string;
releaseTimestamp: string; // Unix timestamp or "Unknown"
promotionEndTimestamp: string; // Unix timestamp or "Unknown"
developer: string;
tags: string[]; // Max 10 tags
}Working with Timestamps
// Convert to Date
const endDate = new Date(parseInt(game.promotionEndTimestamp) * 1000);
console.log(endDate.toLocaleString());
// Check if active
const isActive = endDate.getTime() > Date.now();Features
- ✅ Finds temporarily free games (not free-to-play)
- ✅ Multi-currency support (PLN, EUR, USD, GBP, BRL)
- ✅ Extracts promotion end dates
- ✅ Full TypeScript support
Requirements
- Node.js >= 18.0.0
License
MIT
