Skip to main content
Skip table of contents

Upload Unreal App Using E3DS Automation Kit

The E3DS Automation Kit is a Node.js library designed to automate specific Eagle 3D Streaming (E3DS) operations, including uploading, registering, and testing streaming applications.

It’s ideal for:

  • CI/CD pipelines

  • Automated deployment scripts

  • Faster build upload from local development environments

This guide walks you through the installation, setup, and execution process step-by-step, with visuals to make it easy for new developers to follow along.

Follow the steps below:

Step 1. Install the Package

You can find the package here:
🔗 https://www.npmjs.com/package/e3ds-automation-kit

Run the following command in your terminal:

CODE
npm install e3ds-automation-kit
image-20251112-065255.png

Figure 1: Installing the E3DS Automation Kit via npm

After successful installation, you’ll see confirmation messages in your terminal.

image-20251112-065340.png

Figure 2. Installation completed successfully

Step 2. Copy & Paste the Example Code

Create a new JavaScript file (for example, index.js) and paste the following code:

JS
const { uploadStreamingApp } = require("e3ds-automation-kit");

(async () => {
  try {
    await uploadStreamingApp(
      "../../Downloads/tinyApp.zip", // Path to the local file
      "YOUR_EAGLE3D_API_KEY", // API key
      "MyStreamingApp" // App name
    );
    console.log("Upload completed successfully!");
  } catch (err) {
    console.error("Upload failed:", err.message);
  }
})();

image-20260421-054807.png

Figure 3. Example code snippet in your script file

Step 3. Provide the Path to Your .zip File

Update the file path to point to your packaged .zip file, not the project folder, but the actual .zip file.

image-20260421-055100.png

Figure 4. Provide the Path to Your .zip File

Example Setup

Below is an example setup for reference:

  • .zip file:
    C:/Users/USER/Downloads/tinyApp.zip

  • Script location:
    C:/Users/USER/Desktop/automatioKit/index.js

Valid Path Formats

Use the table below to determine the correct path format based on your setup:

Type

Example

Works?

Notes

Relative Path

"../../Downloads/tinyApp.zip"

Works on all systems if relative to where you run node index.js

Windows (Forward Slash)

"C:/Users/USER/Downloads/tinyApp.zip"

Recommended for Windows

Windows (Escaped Backslash)

"C:\\Users\\USER\\Downloads\\tinyApp.zip"

Works on Windows

Mac/Linux Path

"/Users/USER/Downloads/tinyApp.zip"

For macOS/Linux systems

Invalid Path Examples

Avoid the following incorrect path formats:

Example

Issue

Why It Fails

"C:\Users\USER\Downloads\tinyApp.zip"

Backslashes not escaped

JavaScript treats \ as escape characters

"C:/Users/USER/Downloads/"

Folder instead of file

Must point to .zip file

"./tinyApp.zip" (wrong location)

File not found

File not in same directory as script

"C:/Users/USER/Downloads/tinyapp.zip"

Wrong file name

Case or name mismatch

Step 4. Add Your API Key

You’ll need a valid E3DS API Key to authenticate your upload.
To find your API key, visit:
🔗 https://docs.eagle3dstreaming.com/wiki/api-key

image-20260421-055431.png

Figure 5. Add Your E3DS API key

Tip: For security, store your API key in an environment variable (e.g., .env file) rather than hardcoding it in the script.

Step 5. Set the App Name

Choose a name for your app. This name will appear in your Eagle 3D Streaming Control Panel once uploaded.

⚠️ Important:
The app name should not contain any spaces or special characters. Use only letters (A–Z, a–z), numbers (0–9), or underscores (_).

Correct Example

CODE
"MyStreamingApp"
"My_App_01"
"app123"

Incorrect Examples

CODE
"My Streaming App"   // contains spaces
"My-App"             // contains special character (-)
"My@App"             // contains special character (@)
"My.App"             // contains special character (.)

image-20260421-055525.png

Figure 6. Provide the App Name

Step 6. Run the Script

After saving the file, execute the script using Node.js.
If your file is named index.js, the command is:

CODE
node index.js
image-20260421-055627.png

Figure 7. Running your upload script

The automation kit will:

  • Validate the file path

  • Request a signed upload URL

  • Upload the build with progress tracking

  • Poll until the stream test completes

Step 7. Upload Successful

Once the upload is complete and validated, you’ll see a success message:

image-20260421-060025.png

Figure 8. Successful upload confirmation

Step 8. Verify in Control Panel

Go to your E3DS Control Panel to confirm that your Unreal app has been uploaded and registered correctly.

image-20260421-060247.png

Figure 9. App Uploaded Successfully

Video Tutorial

https://youtu.be/3LYuGKmMRMM?si=G6LDD75cWCuixm1f

Additional Notes

  • The tool automatically handles retries, progress bars, and upload verification.

  • The polling process for stream testing lasts up to 10 minutes.

  • Logging output is displayed in real time in your terminal.

Best Practices

Recommendation

Description

Use a valid API key

Ensure your API key has proper upload permissions.

Secure credentials

Use environment variables instead of embedding secrets in code.

Version control

Keep consistent app names and use semantic versioning.

Avoid interruptions

Don’t terminate the process while upload or stream test is running.

Monitor tests

Wait until stream test validation is done before triggering new uploads.


Troubleshooting


Issue

Likely Cause

Fix

[Uploader] Attempt 1 failed: Request failed with status code 401

Invalid or incorrect API key

Verify your API key from the E3DS Control Panel

Upload failed: File not found: C:\Users\USER\Downloads\tinyBpp.zip

File does not exist at the specified path

Confirm the .zip file exists at that location

Path points to a folder (e.g., C:/Users/USER/Downloads/)

Folder used instead of .zip file

Provide the full path to the .zip file (must end with .zip)

Relative path not working (e.g., ./tinyApp.zip)

File not in the expected directory

Ensure the .zip file is in the same folder as your script or adjust the relative path correctly

Wrong relative path (e.g., ../tinyApp.zip)

Incorrect directory level

Adjust the path based on your script location (e.g., ../../Downloads/tinyApp.zip)

Windows path with single backslash (e.g., C:\Users\USER\Downloads\tinyApp.zip)

JavaScript treats \ as escape characters

Use forward slashes (C:/Users/...) or double backslashes (C:\\Users\\...)

Upload fails or app name not accepted

App name contains spaces or special characters

Use only letters, numbers, or underscores (e.g., MyApp, My_App_01)

Cannot find module 'e3ds-automation-kit'

Package not installed

Run npm install e3ds-automation-kit

Cannot find module '...index.js'

Script file not found

Ensure index.js exists or run the correct file name

No output shown

Script not executed properly

Ensure Node.js is installed (node -v) and run node index.js

Upload retries continuously

Network instability

Check your internet connection (auto-retries up to 3 times)

Stream test timed out

Large build or slow network

Wait a few minutes and check the control panel

 


Need help?

If you need any assistance, feel free to reach out through any of the following channels:

🛠️ Support Portal: Contact Our Support Team

💬 Discord Community (Faster Support): Join Our Discord Community

📧 Email Support: support@eagle3dstreaming.com

🆓 Get Started for free

 

Follow us on:

Facebook | GitHub | LinkedIn | YouTube

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.