steam-publisher-parser
v1.0.6
Published
A TypeScript parser for Steam Store publisher pages
Maintainers
Readme
Steam Store Parser
A TypeScript-based parser for Steam Store publisher pages that extracts game information including titles, genres, tags, screenshots, and videos.
Features
- 🎮 Parse Steam publisher pages
- 📊 Extract game titles, genres, tags, screenshots, and videos
- 🖼️ Download original screenshots, videos, and thumbnails to organized folders
- 📁 Generate structured JSON output
- ⚡ Configurable concurrency and delays
- 🛡️ Error handling and logging
- 🎯 TypeScript support with full type safety
- 📦 Available via NPX (no installation required)
Installation
npm i steam-publisher-parserUsage
NPX Usage (No Installation Required)
# Using full URL
npx steam-publisher-parser https://store.steampowered.com/publisher/paradoxinteractive
# Using just publisher name (shorter!)
npx steam-publisher-parser paradoxinteractive
# URLs with trailing slashes, query strings, or hash fragments are handled gracefully
npx steam-publisher-parser https://store.steampowered.com/publisher/valve/?tab=all
npx steam-publisher-parser https://store.steampowered.com/publisher/paradoxinteractive/#gamesAdvanced Usage
# Skip downloading screenshots and videos
npx steam-publisher-parser paradoxinteractive --no-media
# Specify custom output directory
npx steam-publisher-parser valve --output ./my-output
# Adjust request delay (milliseconds)
npx steam-publisher-parser paradoxinteractive --delay 2000
# Set maximum concurrent downloads
npx steam-publisher-parser valve --max-downloads 3Build and Run
# Build the project
npm run build
# Run the built version
npm start https://store.steampowered.com/publisher/paradoxinteractiveOutput Structure
The parser creates the following structure:
output/
├── publisher_games.json # Main JSON file with all game data
└── media_publisher/ # Screenshots, videos, and thumbnails organized by game
├── Game_Title_1/
│ ├── screenshot_1.jpg
│ ├── screenshot_1_thumb.jpg
│ ├── screenshot_2.jpg
│ ├── screenshot_2_thumb.jpg
│ ├── video_1.mp4
│ ├── thumbnail_1_thumb.jpg
│ ├── video_2.mp4
│ └── thumbnail_2_thumb.jpg
└── Game_Title_2/
├── screenshot_1.jpg
└── screenshot_1_thumb.jpgJSON Output Format
{
"games": [
{
"appId": 949230,
"title": "Cities: Skylines II",
"description": "Create and manage your own city in the most realistic city builder ever. Cities: Skylines II offers deep simulation and a living world that reacts to your decisions.",
"shortDescription": "The ultimate city builder returns with deeper simulation and more creative freedom.",
"steamUrl": "https://store.steampowered.com/app/949230",
"tags": [
"City Builder",
"Simulation",
"Strategy"
],
"initialPrice": 49.99,
"finalPrice": 49.99,
"isFree": false,
"releaseDate": "Oct 24, 2023",
"releaseDateTimestamp": 1698105600,
"platforms": [
"win"
],
"card": "output/paradoxinteractive_media/Cities__Skylines_II/card.jpg",
"cover": "output/paradoxinteractive_media/Cities__Skylines_II/cover.jpg",
"background": "output/paradoxinteractive_media/Cities__Skylines_II/background.jpg",
"screenshots": [
{
"full": "output/paradoxinteractive_media/Cities__Skylines_II/screenshot_1.jpg",
"thumbnail": "output/paradoxinteractive_media/Cities__Skylines_II/screenshot_1_thumb.jpg"
}
],
"videos": [
{
"src": "output/paradoxinteractive_media/Cities__Skylines_II/video_1.mp4",
"name": "Gameplay Trailer",
"thumbnail": "output/paradoxinteractive_media/Cities__Skylines_II/video_1_thumb.jpg"
}
],
"systemRequirements": {
"win": {
"minimum": "Minimum: Windows 10 (64-bit), Intel Core i7-6700K or AMD Ryzen 5 2600X, 8 GB RAM, NVIDIA GeForce GTX 970 or AMD Radeon RX 470, 60 GB available space"
}
}
}
],
"totalGames": 1,
"parsedAt": 1704403500
}Configuration Options
| Option | Description | Default |
|--------|-------------|---------|
| --no-media | Skip downloading screenshots and videos | false |
| --output <dir> | Output directory | ./output |
| --delay <ms> | Delay between requests | 1500ms |
| --max-downloads <n> | Max concurrent downloads | 6 |
| --log-level <level> | Log level (info, debug, warn, error, none) | info |
Rate Limiting
The parser includes built-in rate limiting to be respectful to Steam's servers:
- Configurable delay between requests
- Concurrent download limits
- Request timeouts
Development
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Clean build directory
npm run cleanLicense
MIT License - feel free to use and modify as needed.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
