Skip to content

trinityhades/WallpaperExtractor

Repository files navigation

Back to top

Wallpaper Extractor Logo

Wallpaper Extractor

macOS Swift Xcode License GitHub release GitHub last commit

⭐ Star us on GitHub — your support motivates me a lot! 🙏

Share Share Share

A powerful macOS application for downloading and extracting Wallpaper Engine projects directly from the Steam Workshop.

📑 Table of Contents

🚀 About

Wallpaper Extractor is a native macOS application designed to seamlessly download and extract Wallpaper Engine content from Steam Workshop. Built with Swift and SwiftUI, it provides an intuitive interface for browsing package contents, converting textures, and extracting media files with professional-grade quality.

✨ Features

  • 🔍 Browse Package Contents: View the file tree of Wallpaper Engine .pkg files with hierarchical indentation
  • 🎨 Texture Conversion: Automatically converts .tex texture files to PNG format
    • Supports RGBA8888, DXT1, DXT3, DXT5, RG88, and R8 formats
    • Handles PNG-embedded textures from TEXB containers
  • 🎬 Video Extraction: Detects and extracts MP4 videos embedded in .tex files
  • 📦 Steam Workshop Integration: Download wallpapers directly from Steam Workshop
    • Automatic Steam Guard authentication support
    • Real-time download progress tracking
  • 💾 Export All: Extract entire packages with one click, automatically opens the export folder in Finder
  • 🖼️ Live Preview: Preview images directly in the app

📦 Installation

  1. Download the latest release
  2. Move to Applications folder
  3. Install SteamCMD for Workshop downloads (see below)

Building from Source

  1. Clone the repository:
git clone https://github.com/trinityhades/WallpaperExtractor.git
cd WallpaperExtractor
  1. Open the project in Xcode:
open WallpaperExtractor.xcodeproj
  1. Build and run:
    • Select your target device (Mac)
    • Press ⌘ + R to build and run
    • Or use ⌘ + B to build only

Requirements:

  • Xcode 15.0 or later
  • macOS 15.1 SDK or later
  • Swift 5.9+

Installing SteamCMD

  1. Create a directory for SteamCMD:
mkdir ~/Steam && cd ~/Steam
  1. Download and extract SteamCMD for macOS:
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz" | tar zxvf -
  1. Verify installation:
ls ~/Steam/steamcmd.sh

📚 Usage

Steam Workshop Downloads

  1. Click the Workshop button in the toolbar
  2. Log in with your Steam credentials (supports Steam Guard Mobile Authenticator)
  3. Paste a Steam Workshop URL (e.g., https://steamcommunity.com/sharedfiles/filedetails/?id=2360329512)
  4. Click Download & Extract
  5. Select which .pkg file to extract if multiple are found

Local PKG Files

  1. Click Open PKG... to browse for a local .pkg file
  2. Browse the file tree to explore contents
  3. Click Export All... to extract all files

🎯 Supported Formats

Input

  • .pkg - Wallpaper Engine package files
  • .tex - Wallpaper Engine texture files (various formats)

Output

  • .png - Converted texture images
  • .mp4 - Extracted video files
  • .json, .vert, .frag - Shader and configuration files (copied as-is)

🔧 Technical Details

Texture Formats

  • RGBA8888 (Format 0): 32-bit color with alpha
  • DXT1 (Format 7): BC1 compression
  • DXT3 (Format 6): BC2 compression with explicit alpha
  • DXT5 (Format 4): BC3 compression with interpolated alpha
  • RG88 (Format 8): 2-channel textures
  • R8 (Format 9): Single-channel grayscale

Container Versions

  • TEXB0001-0002: Basic containers
  • TEXB0003: With FreeImageFormat support
  • TEXB0004: Enhanced format with MP4 support

💖 Support

If you find this tool useful, consider supporting development:

Buy Me A Coffee

🙏 Credits

This project was inspired by RePKG by notscuffed, which provided invaluable insights into the Wallpaper Engine package format.

💻 Requirements

  • macOS 15.1 or later
  • SteamCMD (for Workshop downloads)
  • Xcode 15.0+ (for building from source)
  • Swift 5.9+

📃 License

Copyright 2025 Trinity Hades

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

See the LICENSE file for details.

⚠️ Disclaimer

This tool is not affiliated with or endorsed by Wallpaper Engine or Valve Corporation. Please respect content creators' rights and only extract content you have permission to use.


Back to top