Skip to content

holyarahippo06/PS4-CDN-Server-py

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PS4 CDN Server py

License: MIT

A powerful, self-hosted web server that turns your PC into a personal Content Delivery Network (CDN) for your PS4. This tool scans your collection of PKG files (games, updates, DLC, themes), organizes them into a browsable library, and serves them directly to your jailbroken PS4 through the Homebrew (HB) Store.

It features a user-friendly web interface to view your library, manage server settings, and even update the HB-Store's CDN address on your PS4 automatically via FTP.

Server Screenshot

Key Features

  • PKG Library Management: Recursively scans a designated folder for all your .pkg files.
  • Intelligent Metadata Extraction: Automatically reads param.sfo and icon0.png from each PKG to extract titles, Title IDs, content IDs, versions, and icons.
  • Smart Categorization: Automatically categorizes content into Apps, Games, Patches, DLC, and Themes.
  • Automatic Patch/DLC Enhancement: Intelligently associates patches and DLC with their base games, automatically applying the correct title and icon if they are missing.
  • Paired Theme Handling: Correctly processes paired theme files (_1.pkg and _2.pkg), cloning metadata and naming them appropriately.
  • Web-Based UI: A clean and modern control panel to view and filter your entire game library.
  • On-the-Fly Database Generation: Creates a store.db file compatible with the PS4 HB-Store.
  • PS4 FTP Integration: Remotely update the CDN URL in your PS4's HB-Store settings.ini to point to your server with a single click.
  • Automatic HB-Store Binary Updates: Keeps the required HB-Store server binaries (e.g., homebrew.elf) up-to-date by fetching the latest releases from the official GitHub repository.
  • Persistent Configuration: Saves your folder path and PS4 IP address settings locally, so you don't have to re-enter them every time.

How It Works

  1. Scan: The Python backend (powered by FastAPI) scans the directory you specify. It uses custom PKG parsers to read metadata and icons from each file.
  2. Process: It performs post-processing passes to clean up metadata, linking DLC/patches to their base games and handling special cases like themes.
  3. Format: The processed package list is formatted into a structure that the HB-Store can understand.
  4. Build Database: When you first access the web UI, the server builds a store.db SQLite database from your library.
  5. Serve: The server hosts the store.db, package icons, update binaries, and the PKG files themselves. When the HB-Store on your PS4 points to this server's IP, it will display and allow you to download from your local collection.

Getting Started

Prerequisites

  • A jailbroken PS4 with the HB-Store installed.
  • An FTP server running on the PS4 (usually included with HEN/GoldHEN).
  • Python 3.8+ installed on your PC.

Installation

  1. Clone the Repository:

    git clone https://github.com/holyarahippo06/PS4-CDN-Server-py.git
    cd PS4-CDN-Server-py
  2. Set up a Python Virtual Environment:

    • On Windows:
      python -m venv venv
      .\venv\Scripts\activate
    • On macOS/Linux:
      python3 -m venv venv
      source venv/bin/activate
  3. Install Dependencies:

    pip install -r requirements.txt

Running the Server

You can run the server using the provided startup scripts. These will activate the virtual environment and start the Uvicorn server.

  • On Windows:
    .\src\start_server.bat
  • On macOS/Linux:
    chmod +x ./src/start_server.sh
    ./src/start_server.sh

The server will be accessible at http://0.0.0.0:8000 by default. Open this address in your web browser.

Usage

  1. Initial Configuration:

    • Open your web browser and navigate to your PC's local IP address on port 8000 (e.g., http://192.168.1.10:8000).
    • In the "Server Configuration" panel, enter the full path to the folder containing your PKG files (e.g., D:\PS4\Games).
    • Click "Scan Folder". The server will process all your files. This may take some time on the first run.
    • Once the scan is complete, enter your PS4's IP address and FTP port (usually 2121) in the "HB-Store Management" panel.
    • Click "Save Settings" to store your configuration.
  2. Pointing Your PS4 to the Server:

    • With your PS4's IP entered, click the "Set My Server as CDN" button.
    • This will connect to your PS4 via FTP and automatically change the CDN URL in the HB-Store's settings.ini file.
    • You can use the "Restore Official CDN" button to revert this change at any time.
  3. Accessing Your Library on the PS4:

    • Launch the HB-Store on your PS4.
    • It should now load the library directly from your PC. You can browse and download your games and apps over your local network.

Contributing

Contributions are welcome! If you have ideas for new features, improvements, or bug fixes, please feel free to:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Acknowledgments

  • The developers of the PS4-Store for the Homebrew Store application.
  • The creators of the various PKG parsing libraries that inspired the internal tools.
  • The FastAPI and Uvicorn teams for the excellent web framework.

About

A powerful, self-hosted web server that scans your local PS4 PKG library, organizes it, and serves it to your console via the HB-Store. Features a user-friendly web interface to manage your collection, update CDN settings on your PS4, and keep HB-Store binaries current.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors