ApolloLauncherExport
Export Apollo apps to Pegasus, Daijishō or ES-DE frontend on Android
Install / Use
/learn @ClassicOldSong/ApolloLauncherExportREADME
ApolloLauncherExport
A Python script to generate launcher files for Pegasus Frontend, Daijishō (Android), ES-DE (EmulationStation Desktop Edition), and generic platforms to stream PC games via Apollo. Artemis is used as the client (referred to as Apollo/Artemis in this script's context for the client-side launchers it generates).
This script reads your Apollo server's application list and host details to create the necessary files for these frontends, enabling a seamless game launching experience. This script is specifically for Apollo and Artemis and does not support the original Sunshine and Moonlight.
Features
- Pegasus Frontend: Generates
.artfiles andmetadata.pegasus.txtwith app images and enhanced metadata support. - Daijishō: Generates
.artfiles and anArtemis.jsonplatform/player configuration file. - ES-DE: Generates
.artfiles, anApollo.uuid(host UUID file),es_systems.xml(system configuration), andes_find_rules.xml(emulator configuration). - Generic Platform: Generates basic launcher files for custom or unsupported frontends.
- Enhanced metadata and asset fetching (available for Pegasus, Daijishō, and ES-DE):
- Fetches game assets (logos, grid images, marquees, tiles) from SteamGridDB
- Fetches rich game metadata (summaries, descriptions, ratings, genres, release dates, developers, publishers) from IGDB.com
- Downloads and organizes media assets into appropriate directory structures for each frontend
- Enriches metadata files with detailed game information for better frontend presentation
- Parses Apollo server's
apps.jsonandsunshine_state.jsonfromsunshine.conffile. - Provides a graphical user interface (GUI) to select configuration files, choose target frontends, and configure scraping options.
- Smart asset management: Skips image fetching for existing ROM files while still updating metadata when "Skip existing" option is enabled.
- Outputs organized files into an
export/<frontend_name>/<host_name>/directory.
Requirements
- Download from Releases
or
- Python 3.8+
- Core dependencies (for basic functionality):
- Standard Python libraries only (tkinter, configparser, json, shutil, pathlib). No external packages are needed for basic launcher generation.
- Enhanced features dependencies (optional, for metadata and asset fetching):
requestslibrary:pip install requestsigdb-api-v4library:pip install igdb-api-v4- or simply
pip install -r requirements.txt
- Apollo server installed and configured on your host PC.
- Artemis installed on the device running Daijishō or ES-DE (if ES-DE is on Android).
API Setup (Optional - For Enhanced Features)
SteamGridDB API Key
SteamGridDB provides high-quality game assets including logos, grid images, and artwork.
- Create a SteamGridDB account: Visit steamgriddb.com and sign up for a free account.
- Navigate to API preferences: Go to SteamGridDB Preferences > API
- Generate an API key: Click "Generate API Key" to create your personal API key.
- Copy the API key: Save this key - you'll enter it in the application's GUI.
Features provided: Game logos, grid images (steam format), marquees, and tile artwork for better visual presentation in Pegasus Frontend.
IGDB API Credentials
IGDB (Internet Game Database) provides comprehensive game metadata including descriptions, ratings, and release information.
Note: IGDB uses Twitch's API infrastructure, so you'll need to create a Twitch application.
- Create a Twitch Developer account: Visit dev.twitch.tv and log in with your Twitch account (create one if needed).
- Navigate to Console: Go to Twitch Developer Console
- Create a new application:
- Click "Register Your Application"
- Name: Choose any name (e.g., "ApolloLauncherExport")
- OAuth Redirect URLs: Enter
http://localhost(required field, not used by this script) - Category: Select "Application Integration"
- Click "Create"
- Get your credentials:
- Client ID: Copy the "Client ID" from your application page
- Client Secret: Click "New Secret" to generate a client secret, then copy it
- Important: The script will automatically fetch and manage the App Access Token using your Client ID and Secret.
Features provided: Game summaries, detailed descriptions, ratings, genres, release dates, developer/publisher information, and additional game metadata for richer Pegasus collections.
API Documentation: For more details, see IGDB API Documentation
Setup
1. Prepare Apollo Configuration
This script needs to know where your Apollo server's apps.json and sunshine_state.json files are located. The script will prompt you to choose the sunshine.conf file to read the configs automatically.
2. Configure API Keys (Optional)
For enhanced metadata and asset fetching:
- Run the script:
python export.py - Set SteamGridDB API Key: Click the "Set" button next to "SteamGridDB API Key" and enter your API key from the setup above.
- Set IGDB Credentials: Click the "Set" button next to "IGDB Credentials" and enter your Client ID and Client Secret from the setup above.
Note: These steps are optional. The script works without API keys but will only generate basic launcher files without enhanced metadata or downloaded assets.
3. Run the Script
- Download or clone this project.
- Run the script:
python export.py- If you have a PyInstaller-compiled
.exeversion, simply run the executable.
- If you have a PyInstaller-compiled
- A GUI window titled "Apollo Launcher Export" will appear with your configured settings.
4. Generate Launcher Files
- Choose options (available for Pegasus, Daijishō, and ES-DE):
- Check "Download game assets from SteamGridDB" to fetch high-quality game images
- Check "Fetch game metadata from IGDB.com" to enrich your game collections with detailed information
- Check "Skip image fetching for existing ROM files" to speed up subsequent runs while still updating metadata
- Note: Generic platform generation does not support metadata and image fetching
- Select frontend: Click "Pegasus", "Daijishō", "ES-DE", or "Generic" button, depending on which frontend you want to generate files for.
- Select Apollo config: A file dialog will prompt you to "Select Apollo config file (sunshine.conf)". Select the helper
.conffile you created in Step 1. - The script will process your Apollo server data and create the launcher files.
- Output directory:
export/<frontend_name>/<your_apollo_host_name>/(e.g.,export/pegasus/My Gaming PC/where "My Gaming PC" is yoursunshine_namefrom the .conf) - A confirmation message will appear when complete.
- Output directory:
Frontend Configuration
Pegasus Frontend
- Run the script and select "Pegasus".
- Select your
sunshine.conffile. - A new folder will be created under
export/Pegasus/<Your Host Name>/. - This folder contains:
metadata.pegasus.txt: The main metadata file for Pegasus. It defines a collection for your streamed games, using your computer's name (fromsunshine.conf) as the collection title. Enhanced with rich metadata from IGDB including game summaries, descriptions, ratings, genres, release dates, and developer information when API access is configured.- A series of
.artfiles, one for each game, named with the game's name. Each file contains the game's name and its UUID. - Media assets (when SteamGridDB/IGDB is enabled): A
media/directory containing subdirectories for each game with high-quality images:steam- Grid images from SteamGridDBlogo- Game logos from SteamGridDBmarqee- Marquee images from SteamGridDBtile- Tile artwork from SteamGridDBboxFront- Cover art from IGDB (if not available from SteamGridDB)screenshot- Game screenshots from IGDBbackground- Background artwork from IGDB
- Setup in Pegasus Frontend:
- Copy the generated folder (e.g.,
<Your Host Name>) into one of your Pegasus game directories. - In Pegasus, go to
Settings->Set game directoriesand ensure the path to this folder (or its parent) is added. - Pegasus should now find your games with rich metadata and artwork. The launch command is configured to use
am startto launch Moonlight directly with the correct host and game UUIDs.
- Copy the generated folder (e.g.,
Daijishō
The script generates an Artemis.json platform file and multiple *.art files (one for each game). Enhanced with metadata and asset fetching support.
-
Transfer Files:
- Copy the generated
Artemis.jsonfile. - Copy all the
*.artfiles from the output directory (e.g.,export/Daijishō/My Gaming PC/) to a folder on your Android device (e.g.,/sdcard/Roms/Artemis/). - If scraping was enabled: Copy the
media/directory containing game assets to your device alongside the.artfiles.
- Copy the generated
-
Import Platform in Daijishō:
- Open Daijishō.
- Go to
Settings>Library>Import platform. - Navigate to and select the
Artemis.jsonfile you copied to your device. - This step is similar to adding a platform manually as described in the [
